Aurora MySQL 2 のサポート終了
2024/10/31 を以って Aurora MySQL 2(MySQL 5.7互換)のサポートが終了します。
次Verの Aurora MySQL 3(MySQL 8.0互換)へのアップグレードを実施していきます。
以下、基本的にAWSコンソール上からの操作です。
なお、Serverless v1 も同様に期限が迫っています。以下ご参考まで。
準備
パラメータグループ
Aurora 3用のパラメータグループを作成後、Aurora 2のパラメータグループと比較して、必要な箇所を変更します。
- 「アクション」→「比較」 から
※変更不可の項目もあります。
少なくともcharacter_set_
群・collation_
群・time_zone
は変更することになるかと。
MySQL 8.0ではdefault_authentication_plugin
の変更がありますが、Aurora 3では引き続きmysql_native_password
で固定です。
インスタンスタイプ
-
t2
シリーズおよびt3.small
以下は使えなくなりました
-
t4g.medium
が最も廉価な選択肢です
アップグレード作業
インプレースアップグレード
ブルー&グリーンデプロイでも停止期間がゼロにはならないことから、ある程度サービス停止(メンテナンス時間)が許容されるサービスならインプレースアップグレードも可能です。
メンテナンス中の表示などはアプリケーションないしELB固定レスポンスなどで実施
インスタンスタイプが Aurora 3 のサポート外の場合は、まずインスタンスタイプの変更を先に実施する必要があります。
インスタンスの「変更」 から以下を更新します。
-
インスタンスタイプ
→t4g.medium
などを指定 -
CA認証機関が古ければ、このタイミングで変更
→rds-ca-rsa2048-g1
などを指定
上記の変更内容を確認し、「すぐに適用する」 で実行。
インスタンスの変更完了後、 クラスターの「変更」 から以下を更新します。
-
エンジンバージョン
→Aurora MySQL 3
の任意のマイナーバージョンを指定 -
カスタムパラメータグループ
→準備段階で作成したAurora 3用のパラメータグループ
上記の変更内容を確認し、「すぐに適用する」 で実行。
→自動でAurora 2時点のスナップショットが作成されます。
クラスターの 「ログとイベント」 から進捗が確認できます。
エラーが出た場合
クラスターの「ログとイベント」に以下のようなメッセージが出ているとアップグレード失敗です。
Database cluster is in a state that cannot be upgraded: Engine bootstrap failed with no mysqld process running
インスタンス の「ログとイベント」タブからエラーログをDLして確認すると、例えばこんなエラーが出ていたりします。
[ERROR] [MY-013140] [Server] Comment for table '{SCHEMA}.{TABLE}' contains an invalid utf8mb3 character string: '\x**\x**\x**'.
この場合は、既存のテーブル・カラムのコメントの文字コードが怪しかった模様。
あらかじめALTER文で更新しておきます。
そして改めてアップグレード実行。
カスタムパラメータグループの反映
アップグレード完了後に再度クラスターを再起動する必要があります
以上で、インプレースアップグレード完了です。
まずは検証
手順も含めて、検証環境等で事前にしっかり確認することが肝要です。
- インプレースアップグレードの検証
- アプリケーションの動作確認