Aurora MySQLのバージョンアップ時にIncompatible-parametersエラーが発生して詰んだ話(最後は解決)
先にまとめ
Aurora MySQLのパラメーターグループで、innodb_buffer_pool_sizeをインスタンスのメモリサイズ以上の値を指定して起動するとIncompatible-parametersエラーが発生。
停止も削除もできなくなるが、サポートとのやり取りで復旧した(無償のBasicプランでOK)
停止も削除もできなくなるが、サポートとのやり取りで復旧した(無償のBasicプランでOK)
経緯など
Aurora MySQLのサポート期限切れが迫っているため、バージョンアップの検証を進めました。
その際、以下の手順で進めました。
その際、以下の手順で進めました。
- 本番のDBスナップショットを取得。本番のインスタンスサイズはdb.r5.4xlarge。
- スナップショットから検証用のクラスター・インスタンスを作成。インスタンスサイズはdb.t4g.mediumを指定。
- DBが利用可能にならず、Incompatible-parametersというステータスが表示されてエラーになった
- クラスターの停止・削除を試みたが失敗。
調査のため、Auroraのログ出力を有効化したところ、以下のエラーログが確認できました。
Message : Database instance put into incompatible-parameters. Your Aurora MySql memory setting is inappropriate for the usages
また、AWSのサポートケースが自動でオープンしました。
親愛なるオーロラMySQLのお客様へ
東京 (AP-NORTHEAST-1) リージョンの Aurora MySQL クラスターでは初期化が失敗しました。
調査の結果、この問題の根本原因はパラメーター innodb_buffer_pool_size [1] の設定が高いことが原因であることがわかりました。
この問題が今後発生しないようにするには、innodb_buffer_pool_size [1] をインスタンスメモリに比例するようにスケールダウンしてください。ガイドラインとして、innodb_buffer_pool_size パラメーターはデフォルトでインスタンスメモリーの約 75% を使用するように設定されています。
さらに質問がある場合やガイダンスが必要な場合は、遠慮なく AWS サポートチームにお問い合わせください。AWS 開発者コミュニティ [2] でお問い合わせいただくか、AWS プレミアムサポート [3] にお問い合わせください。
サポートケースに返信したところ、しばらくしてパラメーター変更可能な状態にしたと返信があり、パラメーターグループを変更できる状態になりました。
innodb_buffer_pool_sizeの値を下げて、無事に解決しました。
innodb_buffer_pool_sizeの値を下げて、無事に解決しました。
結論
本番DBだったらやばかった