

# ブルー/グリーンデプロイでの RDS Proxy の使用
<a name="rds-proxy-blue-green"></a>

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

## RDS Proxy を使用する場合のスイッチオーバー
<a name="rds-proxy-blue-green-switchover"></a>

ブルークラスターが RDS Proxy にアタッチされると、スイッチオーバー中に次のプロセスが発生します。
+ スイッチオーバーガードレール
  + Amazon RDS は追加のガードレールチェックを実行して、プロキシがブルー環境とグリーン環境の両方に正常に到達でき、スイッチオーバーの準備が整っていることを検証します。
+ スイッチオーバー中のアプリケーショントラフィックルーティング

  スイッチオーバーアクションのリストについては、「[スイッチオーバーアクション](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/blue-green-deployments-switching.html#blue-green-deployments-switching-actions)」を参照してください。RDS Proxy を介してスイッチオーバーを行う場合は、次の考慮事項に注意してください。
  + スイッチオーバー中、ブルーデータベースは、グリーン環境が昇格する前に読み取り専用モードになります。RDS Proxy は、この移行期間中もブルーデータベースへの接続のルーティングを続行します。
  + この期間中の Aurora MySQL の書き込みオペレーションは、読み取り専用エラーを返す可能性があります。例: `1290 (HY000): The MySQL server is running with the —read-only option` このステートメントを実行することはできません。Aurora PostgreSQL の読み取りクエリと書き込みクエリでは、管理者コマンドにより接続が終了しているため、AdminShutdown が返されます。
  + スイッチオーバーが検出されると、プロキシは新しく昇格されたグリーン環境にトラフィックを自動的にルーティングします。
  + グリーン環境が新しいライターとして昇格されると、プロキシへの既存の接続は削除されます。アプリケーションは、昇格の完了後に接続を再確立する必要があります。
  + RDS Proxy の CloudWatch ログを確認して、この移行動作がいつ発生したかを確認できます。
+ RDS Proxy API の動作
  + `describe-db-proxy-targets` などのプロキシ API は、トラフィックルーティングが以前に発生した場合でも、スイッチオーバーが完全に完了した後にのみ、更新されたターゲットを反映します。

## 制限事項
<a name="rds-proxy-blue-green-limitations"></a>
+ ブルー/グリーンデプロイを作成する前に、ブルークラスターがプロキシのターゲットになっている必要があります。そのクラスターのブルー/グリーンデプロイが作成された後、RDS Proxy にブルークラスターを追加することはできません。
+ Aurora Global Databases では、ブルー/グリーンデプロイの RDS Proxy はサポートされていません。