このトピックでは、ApsaraDB RDS for MySQLのデータベースプロキシ機能を使用する前に、よく知っておく必要がある使用法に関する注意事項を示します。
汎用データベースプロキシは無料で使用できます。 専用データベースプロキシ、読み取り専用 ApsaraDB RDS for MySQL インスタンス、プライマリ RDS インスタンスは個別に課金されます。
データベースシステムのデータベースプロキシの永続接続機能が無効になっているときに、プライマリRDSインスタンスまたはその読み取り専用RDSインスタンスの仕様を変更すると、インスタンスの切り替えが発生する可能性があります。 インスタンスの切り替えの影響の詳細については、「インスタンスの切り替えの影響」をご参照ください。
新しく作成された読み取り専用RDSインスタンスをデータベースプロキシエンドポイントに接続するか、データベースプロキシエンドポイントに接続されている既存の読み取り専用RDSを再起動すると、データベースプロキシエンドポイントへの新しい接続が確立されます。 この場合、既存および新しい接続を介してデータベースプロキシエンドポイントに送信されたリクエストは、新しく作成または再起動された読み取り専用RDSインスタンスに転送されます。
読み取り専用RDSインスタンスをデータベースプロキシエンドポイントから切断すると、読み取り専用RDSインスタンスで実行されているステートメントのエラーが報告されます。 ワークロードに影響を与えずに読み取り専用RDSインスタンスを切断する場合は、データベースプロキシバージョンを2.8.41以降にアップグレードし、データベースプロキシエンドポイントの読み取りおよび書き込み属性がread /writeであることを確認する必要があります。 詳細については、「データベースプロキシバージョンのアップグレード」および「データベースプロキシエンドポイントの読み取りおよび書き込み属性と読み取り重みの設定」をご参照ください。
データベースプロキシエンドポイントは圧縮プロトコルをサポートしていません。
max_prepared_stmt_countパラメーターは、RDS High-availability Editionを実行するプライマリRDSインスタンスとその読み取り専用RDSインスタンスで同じ値に設定する必要があります。
データベースプロキシ機能は、1:N接続モデルを使用します。 アプリケーションが接続リクエストを開始すると、データベースプロキシは確立された接続をプライマリRDSインスタンスとすべての読み取り専用RDSインスタンスにレプリケートします。 データベースプロキシに許可される接続の最大数は無制限です。 接続の最大数は、プライマリRDSインスタンスとその読み取り専用RDSインスタンスの仕様によって異なります。 トランザクションレベルのコネクションプーリング機能を有効にしない場合、データベースプロキシは、各クライアントからプライマリRDSインスタンスおよび各読み取り専用RDSインスタンスへの個別の接続を確立します。 データベースプロキシ機能を有効にした後、プライマリRDSインスタンスとその読み取り専用RDSインスタンスに許可される最大接続数を指定することを推奨します。 プライマリRDSインスタンスとその読み取り専用RDSインスタンスで許可されている最大接続数が異なる場合、データベースプロキシで許可されている最大接続数は、これらのRDSインスタンス間で許可されている最小接続数の影響を受けます。
アプリケーションがデータベースプロキシエンドポイントを使用してデータベースシステムに接続し、トランザクション分割が無効になっている場合、トランザクションにカプセル化されたすべてのリクエストはプライマリRDSインスタンスに転送されます。
アプリケーションがデータベースプロキシエンドポイントを使用してデータベースシステムに接続し、読み書き分離を実装する場合、トランザクションにカプセル化されていない要求の読み取りの一貫性を確保できません。 これらのリクエストの読み取りの一貫性を確保するには、これらのリクエストをトランザクションにカプセル化するか、ヒントを追加する必要があります。 詳細については、「ヒントの実行」をご参照ください。
アプリケーションがデータベースプロキシエンドポイントを使用してデータベースシステムに接続する場合、
SHOW PROCESSLIST
ステートメントは各クエリの結果セットを返します。 結果セットは、プライマリRDSインスタンスと読み取り専用RDSインスタンスからのクエリ結果で構成されます。接続プールはデフォルトで有効になっています。 したがって、
SHOW PROCESSLIST
ステートメントはアイドル接続を返す可能性があります。 詳細については、「ApsaraDB RDS For MySQLインスタンスの接続プールタイプの設定」をご参照ください。マルチステートメントを実行するか、ストアドプロシージャを呼び出すと、現在の接続を介した後続のすべてのリクエストがプライマリRDSインスタンスに転送されます。 読み書き分離を再度使用するには、現在の接続を閉じて新しい接続を確立する必要があります。
MySQL CLIを使用してヒントが追加される接続を確立する場合は、ヒントに-cオプションを追加する必要があります。 ヒントにオプションを追加しない場合、MySQL CLIはヒントを除外します。 ヒント構文の詳細については、「ヒントの実行」をご参照ください。
プライマリRDSインスタンスがロックされている場合、プライマリRDSインスタンスに対して有効になっているデータベースプロキシはリリースされませんが、読み取り要求のみを処理できます。
プライマリRDSインスタンスがリリースされると、プライマリRDSインスタンスに対して有効になっているデータベースプロキシが自動的にリリースされます。 専用データベースプロキシに対して課金されなくなりました。
データベースプロキシの仮想プライベートクラウド (VPC) またはvSwitchを変更することはできません。 プライマリRDSインスタンスのVPCを変更した場合、データベースプロキシのVPCは変更されません。 この場合、データベースプロキシは引き続きプライマリRDSインスタンスと通信できますが、クライアントはプライマリRDSインスタンスの新しいVPCを使用してデータベースプロキシエンドポイントに接続することはできません。
RDSインスタンスの特権アカウントを使用して、RDSインスタンスがデプロイされているホストのCIDRブロックを設定する場合、CIDRブロックは
10.1.2.%
形式にすることができます。データベースプロキシのIPアドレスホワイトリストは、プライマリRDSインスタンスのIPアドレスホワイトリストと同じです。 プライマリRDSインスタンスのIPアドレスホワイトリストが更新されると、データベースプロキシのIPアドレスホワイトリストも更新されます。
高遅延ネットワーク環境では、データベースプロキシエンドポイントを使用してバイナリログをサブスクライブし、バイナリログダンプスレッドを使用してデータ転送を行うと、ネットワークスループットがパフォーマンスのボトルネックになる可能性があります。 これにより、ダウンストリームシステムで複製待ち時間が発生する可能性があります。 アプリケーションまたはサービスのデータベース接続設定を構成して、バイナリログをプルするための直接接続を有効にすることを推奨します。
クロスゾーン移行により、最も近いアクセス機能が無効になる場合があります。
クロスゾーン移行後、デフォルトで新しい最も近いゾーンにアクセスできます。 元の最も近いゾーンにアクセスできなくなりました。 プロキシエンドポイントのゾーンをデフォルトゾーンとは異なるゾーンに変更すると、新しいゾーンへの最も近いアクセスが失敗します。 次の表に、シナリオの例を示します。
シナリオ
元のプロキシノード情報
新しいプロキシノード情報
プロキシノードの現在のゾーン
プロキシエンドポイント
最寄りのアクセス
プロキシノードの新しいゾーン
プロキシエンドポイントのデフォルトゾーン
プロキシエンドポイントの新しいゾーン
最寄りのアクセス
シナリオ 1:
ゾーンA + ゾーンB
からゾーンA + ゾーンC
ゾーン A
プロキシエンドポイントa
ゾーン A
ゾーン A
ゾーン A
ゾーン A
ゾーン A
ゾーンC
異常
ゾーンB
プロキシエンドポイントb
ゾーンB
ゾーンC
ゾーンC
ゾーンC
ゾーンC
ゾーンD
異常
シナリオ 2:
ゾーンA + ゾーンB
からゾーンC + ゾーンD
ゾーン A
プロキシエンドポイントa
ゾーン A
ゾーンC
ゾーンC
ゾーンC
ゾーンC
ゾーンE
異常
ゾーンB
プロキシエンドポイントb
ゾーンB
ゾーンD
ゾーンD
ゾーンD
ゾーンD
ゾーンE
異常
最も近いアクセス機能は、2つのゾーンにある4つの専用データベースプロキシノードの展開モードでのみサポートされます。 展開モードを変更したり、プロキシの種類を専用から汎用に変更したりする場合は、最も近いアクセス機能を無効にする必要があります。 詳細については、「最も近いアクセス機能の使用」および「プロキシノードのデプロイアーキテクチャ」をご参照ください。
ホストに10.1.2.0/24
形式のCIDRブロックを設定することはできません。