🔁

【AWS Aurora MySQL Blue/Green Deploy】Read Replica Replication Error

2023/06/16に公開

はじめに

AWSさんから届いたAurora MySQLのバージョンアップグレードのメールに基づいて、ブルー/グリーンデプロイを使用してAurora MySQLのバージョンを上げようとしたところ、下記のエラーメッセージが表示されました。このエラーに苦戦したので、解決方法を記録しておきます。

エラーメッセージ

Read Replica Replication Error - IOError: 1236, reason: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'

なぜこのエラーが表示されるのか?

このエラーメッセージは、ブルー/グリーンデプロイを作成する際に、ブルー側のDBインスタンスにバイナリログが存在しない場合に表示されるものです。

バイナリログは、Aurora MySQL サーバーインスタンスで行われたデータ変更に関する情報を含む、一連のログファイルです。ブルー側のDBインスタンスにバイナリログがない場合、アップグレード先のバージョンへのデプロイが正常に行われない可能性があります。

  • 参考)Aurora MySQL バイナリログの設定

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/USER_LogAccess.MySQL.BinaryFormat.html

対応方法

  1. ブルー/グリーンデプロイを作成する前にDBクラスターのパラメータグループbinlog_format パラメータの設定値を MIXED に変更する
  2. Blue側のDBインスタンスで書き込み処理(INSERTなど)を行い、バイナリログを作成する
  3. バイナリログが存在するか確認する

バイナリログ確認

# `binlog_format` パラメータの設定値を `MIXED` に変更されていることを確認する
SHOW variables LIKE "binlog_format";

# 保存されているバイナリログを確認する
show binary logs;

# 指定したバイナリログの内容を確認する
show binlog events in '<log name>';

Discussion