データベースプロキシ接続アドレスの接続設定を構成して、プライマリインスタンスと読み取り専用インスタンス間で読み取りおよび書き込みトラフィックをどのようにルーティングするかを制御します。各エンドポイントは、読み書き分離や高同時実行の読み取りワークロードなどのシナリオに合わせて個別に調整できます。
前提条件
開始する前に、以下を確認してください:
データベースプロキシ機能が有効化されていること。詳細については、「データベースプロキシ機能の有効化」をご参照ください。
ご利用の RDS インスタンスに少なくとも 1 つの読み取り専用インスタンスがアタッチされていること。読み取り専用インスタンスがなくてもデータベースプロキシを有効にできますが、読み取り専用インスタンスが存在するまでエンドポイントの接続設定は構成できません。詳細については、「ApsaraDB RDS for PostgreSQL の読み取り専用インスタンスの作成」をご参照ください。
接続設定の構成
インスタンスページに移動します。上部のナビゲーションバーで、ご利用の RDS インスタンスが存在するリージョンを選択し、インスタンス ID をクリックします。
左側のナビゲーションウィンドウで、[データベースプロキシ] をクリックします。
[接続情報] セクションで、[プロキシエンドポイント (ターミナル) ID] 列で変更したいエンドポイントを見つけ、[操作] 列の [設定の変更] をクリックします。
表示されるダイアログボックスで、必要に応じて接続設定を更新します。
パラメーター 説明 接続の説明 エンドポイントのカスタム説明。最大 30 文字です。 読み書き属性 このエンドポイントが到達できるインスタンスタイプを制御します。ガイダンスについては、「読み書き属性の選択」をご参照ください。 レイテンシしきい値 プロキシが読み取り専用インスタンスへの読み取りの転送を停止する前に、プライマリ RDS インスタンスからその読み取り専用 RDS インスタンスへのデータレプリケーションで許容される最大レイテンシ (秒単位)。有効な値:0~3600。30 以上に設定してください。[読み書き属性] が [読み書き (読み書き分離)] に設定されている場合にのみ利用可能です。 トランザクション分割 有効に固定されています。トランザクション内で書き込み操作の前に発生する読み取りリクエストを読み取り専用インスタンスに転送し、プライマリインスタンスの負荷を軽減します。無効にはできません。 読み取り重みの割り当て 読み取りトラフィックの分散方法を決定します。詳細については、「読み取り重みの割り当て設定」をご参照ください。 [OK] をクリックします。
読み書き属性の選択
この表を使用して、ご利用のワークロードに適したモードを選択してください:
| シナリオ | 推奨オプション | 理由 |
|---|---|---|
| 一般的なアプリケーショントラフィック、OLTP、ETL ジョブ | 読み書き (読み書き分離) | エンドポイントはプライマリインスタンスとすべての読み取り専用インスタンスに接続し、読み取りと書き込みの両方のリクエストを受け付けます。これがデフォルト値です。 |
| レポートクエリ、分析、読み取り集中型のワークロード | 読み取り専用 (書き込みリクエストはプライマリインスタンスに接続しない) | エンドポイントは読み取り専用インスタンスにのみ接続し、書き込みリクエストを拒否することで、分析の負荷をプライマリインスタンスから分離します。 |
[読み書き属性] への変更は、新しい接続にのみ適用されます。既存の接続は影響を受けません。
読み取り重みの割り当て設定
[自動] — プロキシはインスタンスの仕様に基づいて読み取り重みを割り当てます。新しい読み取り専用インスタンスは、手動での設定なしで自動的に読み書き分離リンクに追加されます。デフォルトの重み値については、「デフォルトの読み取り重み」をご参照ください。
[カスタム] — 各読み取り専用インスタンスの読み取り重みを指定します。有効な値:0~10000。新しい読み取り専用インスタンスのデフォルトの重みは 0 であり、手動で更新する必要があります。
重みが高いほど、そのインスタンスに送信される読み取りリクエストが多くなります。たとえば、プライマリインスタンスの読み取り重みが 0 で、3 つの読み取り専用インスタンスの重みがそれぞれ 100、200、200 の場合、プライマリインスタンスは書き込みリクエストのみを処理し、読み取りリクエストは 1:2:2 の比率で分散されます。
設定された重みに関係なく、特定のリクエストを特定のインスタンスタイプに強制的にルーティングするには、SQL ヒントを追加します:
プライマリインスタンスへのルーティング:
/*FORCE_MASTER*/ SELECT * FROM table_name;読み取り専用インスタンスへのルーティング:
/*FORCE_SLAVE*/ SELECT * FROM table_name;
変更が有効になるタイミング
| パラメーター | 新しい接続 | 既存の接続 |
|---|---|---|
| 読み書き属性 | すぐに有効になります | 影響を受けません。既存の接続は以前の設定を保持します |
| 読み取り重みの割り当て | すぐに有効になります。一時的な接続切断はありません | 再接続されるまで以前の重みを使い続けます |
読み取り専用 RDS インスタンスがリリースされると、読み取り重みは自動的に無効になります。
ご利用の RDS インスタンスでエラーが発生した場合、またはデータレプリケーションのレイテンシが指定されたしきい値を超えた場合、読み取り重みは自動的に無効になります。ご利用の RDS インスタンスが正常に実行されると、読み取り重みは再び有効になります。
次のステップ
API リファレンス
| 操作 | 説明 |
|---|---|
| DescribeDBProxy | データベースプロキシの詳細を照会します。 |
| DescribeDBProxyEndpoint | データベースプロキシのエンドポイントを照会します。 |
| ModifyDBProxyEndpoint | データベースプロキシ接続アドレスの接続設定を変更します。 |