1
0

Aurora MySQL 2 → 3 へのアップグレード

Last updated at Posted at 2024-07-06

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文で更新しておきます。

そして改めてアップグレード実行。

カスタムパラメータグループの反映

アップグレード完了後に再度クラスターを再起動する必要があります

image.png

以上で、インプレースアップグレード完了です。

まずは検証

手順も含めて、検証環境等で事前にしっかり確認することが肝要です。

  • インプレースアップグレードの検証
  • アプリケーションの動作確認
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0