Aurora グローバルデータベースで RDS Proxy を使用する - Amazon Aurora

Aurora グローバルデータベースで RDS Proxy を使用する

Aurora グローバルデータベースは、低レイテンシーでグローバルな読み取り機能と、リージョン全域の機能停止時のディザスタリカバリを備えた、複数の AWS リージョン にまたがる単一のデータベースです。DB インスタンスは、単一の AWS リージョン ではなく、複数のリージョンおよび異なるアベイラビリティーゾーンに依存しているので、デプロイには耐障害性が組み込まれています。詳細については、「Amazon Aurora Global Database の使用」を参照してください。

Aurora グローバルデータベースの任意の DB クラスターで RDS Proxy を使用できます。これらの機能を一緒に使用する前に、次の情報を理解しておくことをお勧めします。

重要

DB クラスターが、書き込み転送が有効になっているグローバルデータベースの一部である場合は、プロキシの MaxConnectionsPercent 値を書き込み転送に割り当てられたクォータだけ減らします。書き込み転送クォータは DB クラスターパラメータ aurora_fwd_writer_max_connections_pct で設定されます。書き込み転送の詳細については、「Amazon Aurora Global Database の書き込み転送を使用する」を参照してください。

グローバル データベースを使用した RDS Proxy の制約事項

Aurora DB クラスターで書き込み転送が有効になっている場合、RDS Proxy は aurora_replica_read_consistency 変数の SESSION 値をサポートしません。この値を設定すると、予期しない動作が発生する可能性があります。

RDS Proxy エンドポイントとグローバルデータベースの連携について

RDS Proxy エンドポイントがグローバルデータベースとどのように連携するかを理解すると、これら両方の機能で、Aurora データベースを使用するアプリケーションをより適切に管理できます。

グローバルデータベースのプライマリクラスターを登録ターゲットとするプロキシの場合、プロキシエンドポイントは他の Aurora DB クラスターと同じように機能します。プロキシの読み取り/書き込みエンドポイントでは、すべてのリクエストをクラスターのライターインスタンスに送信します。プロキシの読み取り専用エンドポイントは、すべてのリクエストをリーダーインスタンスに送信します。接続中にリーダーが使用できなくなった場合、RDS プロキシは接続に関する後続のクエリを別のリーダーインスタンスにリダイレクトします。セカンダリクラスターを登録ターゲットとするプロキシの場合、プロキシの読み取り専用エンドポイントに送信されたリクエストはリーダーインスタンスにも送信されます。クラスターにはライターインスタンスがないため、読み取り/書き込みエンドポイントに送信されたリクエストはエラー「The target group doesn't have any associated read/write instances」で失敗します。

グローバルデータベーススイッチオーバーおよびフェイルオーバーオペレーションの両方で、プライマリ DB クラスターとセカンダリ DB クラスターのロールを切り替える必要があります。選択したセカンダリクラスターが新しいプライマリクラスターになると、そのリーダーインスタンスの 1 つがライターに昇格します。この DB インスタンスは、グローバルクラスターの新しいライターインスタンスになりました。アプリケーションの書き込みオペレーションを、新しいプライマリクラスターに関連付けられているプロキシの適切な読み取り/書き込みエンドポイントにリダイレクトします。このプロキシエンドポイントは、デフォルトのエンドポイントでも、カスタムの読み取り/書き込みエンドポイントでもかまいません。

RDS プロキシは、読み取り/書き込みエンドポイントを介してすべてのリクエストをキューに入れ、利用可能になり次第、新しいプライマリクラスターのライターインスタンスに送信します。これは、スイッチオーバーまたはフェイルオーバーオペレーションが完了したかどうかに関係なく実行されます。スイッチオーバーまたはフェイルオーバー中も、古いプライマリクラスターのプロキシのデフォルトエンドポイントは引き続き書き込みオペレーションを受け付けます。ただし、そのクラスターがセカンダリクラスターになると、すべての書き込みオペレーションは失敗します。特定のグローバルスイッチオーバーまたはフェイルオーバータスクをいつどのように実行するかについては、以下のトピックを参照してください。