最近、RDSのブルーグリーンデプロイを使う機会がありました。
切り替え前には、レプリケーションがちゃんとできているかを確認する必要があり、
その際に SHOW REPLICA STATUS\G
コマンドを使って状態をチェックしていました。
そのときに確認していたポイントをまとめていこうと思います。
レプリケーション確認時に見ていたポイント
前提として、今回は Aurora MySQLを使用していて、8.0.mysql_aurora.3.08.2 → 8.0.mysql_aurora.3.09.0への切り替えというシンプルなものとなっています。
bg-deployment-1
(ブルーグリーンデプロイ構成のトップ)- Blue(現行環境)
- クラスター:`dg-deploy-database-1`
- バージョン:8.0.mysql_aurora.3.08.2
- インスタンス:`dg-deploy-database-1-instance-1`
- クラスター:`dg-deploy-database-1`
- Green(新環境)
- クラスター:`dg-deploy-database-1-green`
- バージョン:8.0.mysql_aurora.3.09.0
- インスタンス:`dg-deploy-database-1-instance-1-green`
- クラスター:`dg-deploy-database-1-green`
- Blue(現行環境)
ブルーグリーンデプロイ環境を作成したあと、本番とちゃんと同期しているか気になったので、
SHOW REPLICA STATUS\G
コマンドでレプリケーションの状態を確認していました。
具体的に見ていたのは、以下のあたりです:
- Replica_IO_State
: "Waiting for source to send event"
になっていれば、ソース(本番側)からのイベント待機中で、接続が安定している状態。
- Seconds_Behind_Source
: 0 に近い(または 0)なら、同期がほぼリアルタイムで進んでいると判断。
- Replica_IO_Running
/ Replica_SQL_Running
: 両方とも Yes
であること。
- Last_IO_Error
や Last_SQL_Error
: 空や0であればエラーなし。
このあたりを確認して、
「これなら切り替えても大丈夫そうだな」と判断できるかを見ていました。
まとめ
ブルーグリーンデプロイでの切り替え前に、あらかじめレプリケーションの状態を確認しておくことで切り替え可否の判断材料の1つになると思いました。
以上、ありがとうございました!