kouzyun.dev

RDSのブルーグリーンデプロイ前にレプリケーション状態を確認する

2025/07/24
Default Thumbnail

最近、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`

ブルーグリーンデプロイ環境を作成したあと、本番とちゃんと同期しているか気になったので、

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_ErrorLast_SQL_Error: 空や0であればエラーなし。

このあたりを確認して、

「これなら切り替えても大丈夫そうだな」と判断できるかを見ていました。

まとめ

ブルーグリーンデプロイでの切り替え前に、あらかじめレプリケーションの状態を確認しておくことで切り替え可否の判断材料の1つになると思いました。

以上、ありがとうございました!

参考

13.7.7.35 SHOW REPLICA | SLAVE STATUS ステートメント

Information

公開日:2025/07/24