View a markdown version of this page

ブルー/グリーンデプロイでの RDS Proxy の使用 - Amazon Relational Database Service

ブルー/グリーンデプロイでの RDS Proxy の使用

Amazon RDS Proxy は、ブルー/グリーンデプロイとともに使用することで、スイッチオーバーのダウンタイムを短縮できます。RDS Proxy は、スイッチオーバープロセスを把握し、グリーン環境がアクティブな本番環境になるとグリーン環境への接続を自動的にリダイレクトすることで、データベース移行中に通常発生する DNS 伝播の遅延を排除します。RDS Proxy は、RDS for PostgreSQL、RDS for MySQL、RDS for MariaDB のブルー/グリーンデプロイをサポートしています。アプリケーションコードの変更やカスタムクライアントドライバーは必要ありません。

RDS Proxy を使用する場合のスイッチオーバー

ブルーインスタンスが RDS Proxy にアタッチされると、スイッチオーバー中に次のプロセスが発生します。

  • スイッチオーバーガードレール

    • Amazon RDS は追加のガードレールチェックを実行して、プロキシがブルー環境とグリーン環境の両方に正常に到達でき、スイッチオーバーの準備が整っていることを検証します。

  • スイッチオーバー中のアプリケーショントラフィックルーティング

    スイッチオーバーアクションのリストについては、「スイッチオーバーアクション」を参照してください。RDS Proxy を介してスイッチオーバーを行う場合は、次の考慮事項に注意してください。

    • スイッチオーバー中、ブルーデータベースは、グリーン環境が昇格する前に読み取り専用モードになります。RDS Proxy は、この移行期間中もブルーデータベースへの接続のルーティングを続行します。

    • この期間中の RDS for MySQL の書き込みオペレーションは、読み取り専用エラーを返す可能性があります。例: 1290 (HY000): The MySQL server is running with the —read-only option このステートメントを実行することはできません。RDS for PostgreSQL の読み取りクエリと書き込みクエリでは、管理者コマンドにより接続が終了しているため、AdminShutdown が返されます。

    • スイッチオーバーが検出されると、プロキシは新しく昇格されたグリーン環境にトラフィックを自動的にルーティングします。

    • グリーン環境が新しいライターとして昇格されると、プロキシへの既存の接続は削除されます。アプリケーションは、昇格の完了後に接続を再確立する必要があります。

    • RDS Proxy の CloudWatch ログを確認して、この移行動作がいつ発生したかを確認できます。

  • RDS Proxy API の動作

    • describe-db-proxy-targets などのプロキシ API は、トラフィックルーティングが以前に発生した場合でも、スイッチオーバーが完全に完了した後にのみ、更新されたターゲットを反映します。

制限事項

  • ブルー/グリーンデプロイを作成する前に、ブルーインスタンスがプロキシのターゲットになっている必要があります。そのインスタンスのブルー/グリーンデプロイが作成された後、RDS Proxy にブルーインスタンスを追加することはできません。