🚀
RDSのブルーグリーンデプロイ前にレプリケーション状態を確認する
最近、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
- クラスター:
-
Green(新環境)
- クラスター:
dg-deploy-database-1-green
- バージョン:8.0.mysql_aurora.3.09.0
- インスタンス:
dg-deploy-database-1-instance-1-green
- クラスター:
-
Blue(現行環境)
ブルーグリーンデプロイ環境を作成したあと、本番とちゃんと同期しているか気になったので、
SHOW REPLICA STATUS\G
コマンドでレプリケーションの状態を確認していました。
$ mysql -h [Endpoint] -P 3306 -u [User] -p
mysql> 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つになると思いました。
以上、ありがとうございました!
Discussion