ApsaraDB RDS for PostgreSQL のデータベースプロキシ機能は、アプリケーションと RDS インスタンスの間に位置し、読み書き分離とトランザクション分割を提供します。 これを使用して、プライマリインスタンスからリクエストをオフロードし、大量の接続を処理し、ワークロードを読み取り専用インスタンスに分散させます。
前提条件
開始する前に、次の条件を満たしていることを確認してください。
-
RDS インスタンスが PostgreSQL 10 以降を実行していること
-
RDS インスタンスがクラウドディスクを使用していること
-
RDS インスタンスが RDS High-availability Edition を実行していること
-
RDS インスタンスがプライマリ RDS インスタンスであること
-
RDS インスタンスは、杭州ゾーン C または杭州ゾーン D に配置されていてはなりません。 配置されている場合は、データベースプロキシを有効にする前にインスタンスを別のゾーンに移行してください。
課金
| プロキシタイプ | コスト |
|---|---|
| 汎用 | 無料 |
| 専用 | 従量課金。 詳細については、「データベースプロキシの課金ルール」をご参照ください。 |
プロキシタイプ
ApsaraDB RDS for PostgreSQL は 2 種類のプロキシタイプを提供します。 詳細な比較については、「データベースプロキシとは」をご参照ください。
| 項目 | 汎用 | 専用 |
|---|---|---|
| コスト | 無料 | 従量課金 |
| 最大仕様 | 16 CPU コア | 32 CPU コア |
| 有効化時の仕様 | システム推奨 (後で調整可能) | ユーザー設定可能 |
サイジングのガイダンス
プロキシの仕様は次のように計算されます。
仕様 = 推奨プロキシ数 x 2 CPU コア
各データベースプロキシのユニット仕様は 2 CPU コアに固定されています。 推奨されるプロキシ数は、プロキシタイプによって異なります。
| プロキシタイプ | 推奨数の数式 |
|---|---|
| 汎用 | (プライマリインスタンスの CPU コア数 + すべての読み取り専用インスタンスの CPU コア数) / 4、小数点以下切り上げ |
| 専用 | (プライマリインスタンスの CPU コア数 + すべての読み取り専用インスタンスの CPU コア数) / 8、小数点以下切り上げ |
例: 8 CPU コアのプライマリ RDS インスタンス (RDS High-availability Edition) と 4 CPU コアの読み取り専用インスタンスがある場合、専用プロキシの数は ceil((8 + 4) / 8) = 2 となります。 推奨される仕様は 2 x 2 = 4 CPU コアです。
データベースプロキシの有効化
-
[インスタンス] ページに移動します。 上部のナビゲーションバーで、RDS インスタンスのリージョンを選択し、インスタンス ID をクリックします。
-
左側のナビゲーションウィンドウで、[データベースプロキシ] をクリックします。
-
プロキシタイプ (汎用 または 専用) を選択し、[今すぐ有効にする] をクリックします。
-
汎用 -- システムが自動的に推奨仕様を割り当てます。 有効化後に調整できます。
-
専用 -- 有効化時にプロキシの仕様を設定します。
説明サービスリンクロール (SLR) の権限付与が不完全であるというプロンプトが表示された場合は、[権限付与] をクリックし、ダイアログボックスで [OK] をクリックします。 Alibaba Cloud は、AliyunServiceRoleForRdsProxyOnEcs という名前のサービスリンクロールを作成します。これにより、データベースプロキシは Elastic Network Interface (ENI) をバインドし、ネットワーク接続を確立できます。
-
-
[OK] をクリックします。
有効化の確認
データベースプロキシが有効になると、[データベースプロキシ] ページにプロキシの基本情報、ノード詳細、接続エンドポイントが表示されます。
基本情報
| パラメーター | 説明 |
|---|---|
| プライマリインスタンス | RDS インスタンスの ID。 |
| プロキシインスタンスのステータス | データベースプロキシインスタンスの現在のステータス。 |
| プロキシタイプ | 汎用 または 専用。 違いについては、「データベースプロキシとは |
| ゾーン | データベースプロキシインスタンスのゾーン。 デフォルトでは、プライマリ RDS インスタンスのゾーンと一致します。 |
| プロキシ仕様 | データベースプロキシの合計仕様。ユニット仕様 (2 CPU コア) x プロキシ数 として計算されます。 たとえば、3 つのプロキシの場合、仕様は 2 x 3 = 6 CPU コアになります。 |
| プロキシバージョン | データベースプロキシのバージョン。 |
| プロキシインスタンス ID | プロキシインスタンスの ID。 |
プロキシノード
| パラメーター | 説明 |
|---|---|
| ノード ID | プロキシノードの ID。 |
| ゾーン | プロキシノードのゾーン。 |
| プロキシノードの CPU コア | 単一プロキシノードの仕様。 |
接続情報
| パラメーター | 説明 |
|---|---|
| プロキシエンドポイント (ターミナル) ID | プロキシ接続アドレスの ID です。各 RDS インスタンスは、最大 7 つのプロキシ接続アドレスをサポートします。各エンドポイントは、1 つの内部エンドポイントと 1 つのパブリックエンドポイントを持つことができます。エンドポイント ID にポインターを合わせると、その[読み書き属性]と[読み取りウェイト情報]を表示できます。構成の詳細については、「プロキシ接続アドレスの接続設定を構成する」および「プロキシ接続アドレスを使用して ApsaraDB RDS for PostgreSQL インスタンスに接続する」をご参照ください。 |
| 読み書き属性 | プロキシエンドポイントの読み書きモード:読み書き または 読み取り専用。 詳細については、「データベースプロキシの読み書き属性と読み取り重みの設定」をご参照ください。 |
| 内部エンドポイント/ポート | データベースプロキシを介して内部ネットワーク経由で RDS インスタンスに接続するための内部エンドポイントとポート。 内部エンドポイントはプロキシエンドポイント ID にバインドされます。 エンドポイントの横にある |
| パブリックエンドポイント/ポート | データベースプロキシを介してインターネット経由で RDS インスタンスに接続するためのパブリックエンドポイントとポート。 内部エンドポイントはデフォルトで提供されます。パブリックエンドポイントは別途申請してください。 申請後、エンドポイントの横にある |
注意事項
-
データベースプロキシ機能を有効にした後、プライマリ RDS インスタンスをゾーン間で移行しないことを推奨します。 プライマリ RDS インスタンスをゾーン間で移行すると、プライマリ RDS インスタンスとそのプロキシインスタンスが異なるゾーンに配置されます。 これにより、アクセスレイテンシーが増加し、応答が遅くなります。
説明サービスの障害によってプライマリ/セカンダリ スイッチオーバーがトリガーされた場合、プライマリ RDS インスタンスとそのデータベースプロキシインスタンスが異なるゾーンに配置されることがあります。 レイテンシーを削減するには、再度プライマリ/セカンダリ スイッチオーバーを実行して、同じゾーンに戻してください。 詳細については、「プライマリとセカンダリの ApsaraDB RDS for PostgreSQL インスタンス間のワークロードの切り替え」をご参照ください。
-
プロキシ接続アドレスの接続設定を行うには、プライマリインスタンスに読み取り専用 RDS インスタンスが存在している必要があります。読み取り専用インスタンスがない場合、データベースプロキシ機能を有効にできますが、接続設定はできません。作成するには、「読み取り専用 ApsaraDB RDS for PostgreSQL インスタンスの作成」をご参照ください。
次のステップ
-
プロキシ接続アドレスの接続設定 — プロキシエンドポイントの読み書き分離ルール、接続制限、およびアクセスポリシーを設定します。
-
データベースプロキシの読み書き属性と読み取り重みの設定 -- 読み取りトラフィックがプライマリインスタンスと読み取り専用インスタンスにどのように分散されるかを制御します。
-
データベースプロキシエンドポイントの管理 -- パブリックエンドポイントの申請、エンドポイントプレフィックスの変更、またはポートの変更を行います。
API リファレンス
| API | 説明 |
|---|---|
| ModifyDBProxy | インスタンスのデータベースプロキシ機能を有効化または無効化します。 |
| DescribeDBProxy | データベースプロキシの詳細を照会します。 |