ブルー/グリーンデプロイでの 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 にブルーインスタンスを追加することはできません。