Aurora MySQLバージョンが3.04.*または2.12.*以降の場合、Aurora MySQLグローバルデータベースのマイナーバージョンアップグレードの手順が変更されています

Aurora MySQLバージョンが3.04.*または2.12.*以降の場合、Aurora MySQLグローバルデータベースのマイナーバージョンアップグレードの手順が変更されています

Aurora MySQL バージョン 3.04.*または2.12.*以降のマイナーバージョンアップグレードに関しては、セカンダリークラスターをグローバルデータベースからデタッチし、プライマリークラスターの方でマイナーバージョンアップグレードを実施する必要があります。変更後の手順について解説しております。
2025.11.15

こんにちは!クラウド事業本部の吉田です。

Aurora MySQLグローバルデータベースのマイナーバージョンアップグレードを実施したことがありますか?

従来のマイナーバージョンアップグレードは、下記の手順で行います。

  • (セカンダリークラスターがヘッドレスクラスターの場合)セカンダリークラスターにインスタンスを作成
    • クラスターのマイナーバージョンアップグレードするには、最低でも1つ以上のインスタンスが必要となるため
  • セカンダリークラスターのマイナーバージョンアップグレード
  • プライマリークラスターのマイナーバージョンアップグレード
  • (セカンダリークラスターがヘッドレスクラスターの場合)セカンダリークラスターに作成したインスタンスを削除

直近では、過去のLTSバージョンである3.04.0から、2025年11月現在最新のLTSバージョンである3.10.0へのマイナーバージョンアップグレードを検討されている方も多いのではないでしょうか?

3.04.0から3.10.0へのアップグレードするにあたって、従来の手順に沿ってセカンダリークラスターからマイナーバージョンアップグレードしようとすると下記のエラーが発生します。

In-place minor version upgrade of Aurora MySQL global database cluster 'test-globaldatabase-secondary-cluster' to Aurora MySQL engine version 8.0.mysql_aurora.3.10.0 isn't supported. The selected target version 8.0.mysql_aurora.3.10.0 supports a higher version of community MySQL that introduces changes incompatible with previous minor versions of Aurora MySQL. See the Aurora documentation for how to perform a minor version upgrade on global database clusters.

vscode-drop-1763189077958-07i8r0gju9eh.png

エラーメッセージを読みますと、Aurora MySQL 3.10.0へのインプレースマイナーバージョンアップグレードがサポートされていないとあります。
理由としては、アップグレード先のエンジンバージョン(3.10.0)は、以前のAurora MySQLマイナーバージョンと互換性のない変更を導入したコミュニティMySQLをサポートしているからとあります。

では、どのようにして対応すればいいのでしょうか?

結論

はい。結論です。

バージョン間の互換性の観点で、Aurora MySQL バージョン 3.04.*または2.12.*以降のマイナーバージョンアップグレードに関しては、セカンダリークラスターをグローバルデータベースからデタッチし、プライマリークラスターの方でマイナーバージョンアップグレードを実施する必要があります。

Aurora MySQLのマイナーバージョンアップグレードの公式ドキュメントのページに、注記として下記の記載があります。

Aurora MySQL バージョン 3.04.* 以上またはバージョン 2.12.* へのマイナーバージョンアップグレードを実行するには、次のプロセスを使用します。

1. グローバルクラスターからすべてのセカンダリリージョンを削除します。「[Amazon Aurora Global Database からのクラスターの削除](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-detaching.html)」のステップを実行してください。

2. 必要に応じて、プライマリリージョンのエンジンバージョンをバージョン 3.04.* 以上、またはバージョン 2.12.* にアップグレードします。「[To modify the engine version of a DB cluster](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.Patching.ModifyEngineVersion.html#modify-db-cluster-engine-version)」のステップを実行してください。

3. グローバルクラスターにセカンダリリージョンを追加します。「[AWS リージョン の Amazon Aurora Global Database への追加](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-attaching.html)」のステップを実行してください。

引用元:エンジンのバージョンを変更して Aurora MySQL アップグレードする - Amazon Aurora

従来のマイナーバージョンアップグレード手順では、一時的ではありますが、「セカンダリークラスターは新しいマイナーバージョン、プライマリークラスターは古いマイナーバージョン」という、マイナーバージョンが異なるクラスターが同じグローバルデータベースに同居する構成になります。
エラー文から推察しますと、MySQLの互換性がないマイナーバージョンのクラスターが、同じグローバルデータベース内に同居するという状況が許されなくなったということだと思われます。

手順解説

大まかな流れ

変更後の手順の大まかな流れをまとめます

  • セカンダリークラスターをグローバルデータベースからデタッチ
  • セカンダリークラスターを削除
    • インスタンスがある場合は、最初にインスタンスを削除する
    • グローバルデータベースからデタッチされているため、後続のプライマリークラスターの作業は並行して実施可能
  • プライマリークラスターのマイナーバージョンアップグレード
    • グローバルデータベースのマイナーバージョンも併せてアップグレードされます
  • グローバルデータベースにリージョンを追加(セカンダリークラスターを作成)
  • (セカンダリークラスターをヘッドレスクラスターとして利用していた場合)セカンダリークラスターのインスタンスを削除

詳細手順

では作業を見ていきましょう。

なおアップグレードに関する部分をピックアップして解説します。
クラスター作成時の細かいパラメーター設定方法などは省略しております。

事前作業

新しいマイナーバージョンアップグレードは削除手順が含まれています。
グローバルデータベースやクラスターに削除保護を有効化している場合は、一時的に無効化していただくようお願いします。

①セカンダリークラスターをグローバルデータベースからデタッチ

セカンダリークラスターをグローバルデータベースをデタッチします。
いきなりセカンダリークラスターを削除してしまいたいですが、まずセカンダリークラスターをデタッチしなければ削除することができません。

セカンダリークラスターを選択し、「アクション」→「グローバルデータベースから削除」をクリックします。

vscode-drop-1763189125264-ztcjnlrnrvn.png

削除されますと、プライマリーリージョンからセカンダリーリージョン上にあるセカンダリークラスターが見えなくなります。
グローバルデータベースの設定も確認すると、「AWSリージョン」からセカンダリーリージョンが消えていることがわかります。

vscode-drop-1763189229786-2r0583834ct.png

セカンダリーリージョンから見えますと、グローバルデータベースの入れ子から外れていることもわかります。

vscode-drop-1763189240312-0rgn328ivlq.png

②セカンダリークラスターを削除

グローバルデータベースからデタッチされたら、セカンダリークラスターを削除します。
インスタンスがある場合は、まずはインスタンスを削除してからクラスターを削除します。

vscode-drop-1763189283578-dnfqxziy9mi.png

vscode-drop-1763189290392-egh5lrbskq.png

既存のクラスターをグローバルデータベースに組み込むことができればいいのですが、仕様上不可能なため、既存のセカンダリークラスターを削除します。

③プライマリークラスターのマイナーバージョンアップグレード

プライマリークラスターのマイナーバージョンアップグレードをします。
ここは単純なクラスター設定更新となります。
バージョンアップ先のエンジンバージョンを指定して、更新します。

vscode-drop-1763189331759-geo75nu3qse.png

セカンダリークラスターからマイナーアップグレードしようとした時と違って、無事変更が通りましたね。

vscode-drop-1763189336778-cinj193m7aq.png

グローバルデータベースのエンジンバージョンを確認しますと、プライマリークラスター更新時に指定したエンジンバージョンに更新されていることがわかります。
(プライマリークラスターも確認すべきですが、キャプチャをとることを失念しておりました。。。)

vscode-drop-1763189430830-07qgzeug400q.png

④グローバルデータベースにリージョンを追加

グローバルデータベースにリージョンを追加します。
「リージョンを追加」=「セカンダリークラスターを作成」です。

グローバルデータベースを選択し、「アクション」→「AWSリージョンを追加」をクリックします。

vscode-drop-1763189463144-43lgr2n9ikm.png

セカンダリーリージョンは、元々のセカンダリークラスターがあったリージョンを指定します。

vscode-drop-1763189485047-mzmmewxcc1.png

後は、既存のセカンダリークラスターと同じ設定でパラメーターを設定していきます。
このクラスターの作成画面ではバックアップウィンドウは設定できないため、クラスターが作成された後に設定してください。
また、セカンダリークラスターをヘッドレスクラスターにする場合は、後ほどインスタンスを削除するので削除保護は有効化しないでおきます。

セカンダリークラスターが作成されましたら、念の為エンジンバージョンを確認します。
グローバルデータベース・プライマリークラスターと同じエンジンバージョンであることを確認できます。

vscode-drop-1763189548258-vhxm72wrn7b.png

vscode-drop-1763189554713-580qewnr3al.png

セカンダリークラスターをヘッドレスクラスターにする場合は、クラスター作成時に作成されたインスタンスを削除します。

マイナーバージョンアップグレード作業完了後の作業

作業のために削除保護を無効化していた場合は、削除保護を有効化してください。

その他の注意点

マイナーバージョンアップグレードに関することで、もう一点注意点があります
グローバルデータベースはマイナーバージョン自動アップグレードに対応していない点です。

マイナーバージョンの自動アップグレードは、次の種類の Aurora MySQL クラスターには適用されません。

  • Aurora グローバルデータベースの一部であるクラスター
  • クロスリージョンレプリカを持つクラスター

引用:Aurora MySQL マイナーバージョン間の自動アップグレードの有効化 - Amazon Aurora

この仕様によって、以下の構成・設定の場合、本番環境と非本番環境でエンジンバージョンの差異が発生する可能性があります。

  • 本番環境はDRのためグローバルデータベースで作成し、非本番環境はリージョナルデータベースで作成
  • 全ての環境でマイナーバージョン自動アップグレードを有効化している

そのため、本番環境でグローバルデータベースを利用する場合は、全環境でマイナーバージョン自動アップグレードを無効化することを推奨します。

さいごに

従来の手順でAurora MySQLグローバルデータベースをマイナーバージョンを更新しようとしたらエラーが発生して困った方は一定数いるのではないでしょうか?
そのような方々やこれからマイナーバージョンを更新しようとしている方々に、この記事が参考になりましたら嬉しいです。

以上、クラウド事業本部の吉田でした!

この記事をシェアする

FacebookHatena blogX

関連記事