インプレースアップグレードの実行手順
メジャーバージョンの Aurora MySQL インプレースアップグレードの仕組み の背景のマテリアルを確認することをお勧めします。
「Aurora MySQL クラスターのメジャーバージョンアップグレードの計画」の説明に従い、アップグレード前の計画とテストを行います。
次の例では、mydbcluster-cluster DB クラスターを Aurora MySQL バージョン 3.04.1 にアップグレードします。
Aurora MySQL DB クラスターのメジャーバージョンをアップグレードするには
-
AWS マネジメントコンソール にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
元の DB クラスターでカスタムパラメータグループを使用した場合は、新しいメジャーバージョン互換のパラメータグループを作成します。新しいパラメータグループの設定パラメータに必要な調整を行います。詳細については、「インプレースアップグレードはクラスターのパラメータグループにどのような影響を与えるか」を参照してください。
-
ナビゲーションペインで、[データベース] を選択します。
-
リストから、変更する DB クラスターを選択します。
-
[Modify] を選択します。
-
[Version] (バージョン) で、新しい Aurora MySQL のメジャーバージョンを選択します。
通常、メジャーバージョンの最新のマイナーバージョンを使用することをお勧めします。ここでは、現在のデフォルトバージョンを選択します。
-
[Continue] を選択します。
-
次のページで、アップグレードを実行するタイミングを指定します。[次の定期メンテナンス期間中] または [今すぐ] を選択します。
-
(オプション) アップグレード中、RDS コンソールの [イベント] ページを定期的に確認します。これにより、アップグレードの進行状況をモニタリングし、問題を特定することができます。アップグレードで問題が発生した場合は、Aurora MySQL インプレースアップグレードのトラブルシューティング を参照してステップを実行してください。
-
この手順のスタート時に、新しいパラメータグループを作成した場合は、アップグレードしたクラスターにカスタムパラメータグループを関連付けます。詳細については、「インプレースアップグレードはクラスターのパラメータグループにどのような影響を与えるか」を参照してください。
注記
このステップを実行するには、クラスターを再起動して新しいパラメータグループを適用する必要があります。
-
(オプション) アップグレード後のテストが完了したら、アップグレードのスタート時に Aurora によって作成された手動スナップショットを削除します。
Aurora MySQL DB クラスターのメジャーバージョンをアップグレードするには、次の必須パラメータを指定しながら、AWS CLI の modify-db-cluster コマンドを実行します。
-
--db-cluster-identifier -
--engine-version -
--allow-major-version-upgrade -
--apply-immediatelyまたは--no-apply-immediately
クラスターでカスタムパラメータグループを使用する場合は、次のオプションの 1 つ、または両方を含めます。
-
--db-cluster-parameter-group-name、クラスターがカスタムクラスターのパラメータグループを使用している場合 -
--db-instance-parameter-group-name、クラスター内のインスタンスがカスタム DB のパラメータグループを使用している場合
次の例では、sample-cluster DB クラスターを Aurora MySQL バージョン 3.04.1 にアップグレードします。アップグレードは、次のメンテナンスウィンドウを待つことなく、すぐに実行されます。
例
Linux、macOS、Unix の場合:
aws rds modify-db-cluster \ --db-cluster-identifier sample-cluster \ --engine-version 8.0.mysql_aurora.3.04.1 \ --allow-major-version-upgrade \ --apply-immediately
Windows の場合:
aws rds modify-db-cluster ^ --db-cluster-identifier sample-cluster ^ --engine-version 8.0.mysql_aurora.3.04.1 ^ --allow-major-version-upgrade ^ --apply-immediately
他の CLI modify-db-cluster コマンドをと組み合わせて、アップグレードを実行および検証するための自動化されたエンドツーエンドのプロセスを作成できます。詳細な説明と例については、「Aurora MySQL インプレースアップグレードのチュートリアル」を参照してください。
注記
クラスターが Aurora Global Database の一部である場合、インプレースアップグレードの手順は若干異なります。modify-db-cluster の代わりに、modify-global-cluster コマンドオペレーションを呼び出します。詳細については、「グローバルデータベースのインプレースメジャーアップグレード」を参照してください。
Aurora MySQL DB クラスターのメジャーバージョンをアップグレードするには、次の必須パラメータを指定して RDS API の ModifyDBCluster オペレーションを使用します。
-
DBClusterIdentifier -
Engine -
EngineVersion -
AllowMajorVersionUpgrade -
ApplyImmediately(true、またはfalseに設定)
注記
クラスターが Aurora Global Database の一部である場合、インプレースアップグレードの手順は若干異なります。 ModifyDBCluster の代わりに、 modifyGlobalCluster オペレーションを呼び出します。詳細については、「グローバルデータベースのインプレースメジャーアップグレード」を参照してください。
インプレースアップグレードはクラスターのパラメータグループにどのような影響を与えるか
Aurora パラメータグループには、異なる MySQL バージョンと互換性のあるクラスター向けに、異なる構成設定のセットがあります。インプレースアップグレードを実行する際、アップグレードされたクラスターとそのすべてのインスタンスで、新しいメジャーバージョンと互換性のある対応するクラスターおよびインスタンスのパラメータグループを使用する必要があります。
クラスターとインスタンスがソースバージョンのデフォルトのパラメータグループを使用する場合、アップグレードされたクラスターとインスタンスはターゲットバージョンのデフォルトのパラメータグループで自動的に開始されます。クラスターとインスタンスでカスタムパラメータグループを使用する場合は、ターゲットバージョンと互換性のある対応するパラメータグループを作成してください。また、アップグレード処理中に必ずそれらを指定してください。
次の表は、各アップグレードパスのデフォルトのパラメータグループのマッピングを示しています。
| アップグレードパス | ソースのデフォルトのパラメータグループ | ターゲットのデフォルトのパラメータグループ |
|---|---|---|
| Aurora MySQL バージョン 2 からバージョン 3 | default.aurora-mysql5.7 |
default.aurora-mysql8.0 |
| Aurora MySQL バージョン 3 からバージョン 8.4 | default.aurora-mysql8.0 |
default.aurora-mysql8.4 |
注記
ほとんどのパラメータ設定では、2 つのポイントでカスタムパラメータグループを選択できます。これらは、クラスターの作成時や、パラメータグループをクラスターに関連付ける場合です。
ただし、デフォルト以外の設定を lower_case_table_names パラメータに使用する場合は、事前にこの設定を使用してカスタム パラメータグループを設定する必要があります。その後、スナップショット復元を実行してクラスターを作成する際、パラメータグループを指定します。クラスター作成後のlower_case_table_names パラメータへの変更は、影響がありません。
メジャーバージョンのアップグレードを実行するときは、lower_case_table_names にも同じ設定を使用することをお勧めします。
Aurora MySQL に基づく Aurora グローバルデータベースでは、lower_case_table_names パラメータをデフォルトに設定してグローバルデータベースを再起動した場合のみ、インプレースのメジャーバージョンアップグレードを実行できます。使用できる方法の詳細については、「メジャーバージョンのアップグレード」を参照してください。
Aurora MySQL バージョン間のクラスターのプロパティの変更
メジャーバージョンアップグレードを実行する場合は、Aurora MySQL クラスターと DB インスタンスのセットアップと管理に使用するアプリケーションやスクリプトを確認してください。
また、デフォルトのパラメータグループ名がメジャーバージョンごとに異なることを考慮して、パラメータグループを操作するコードを変更します。
Aurora MySQL バージョン 2 からバージョン 3
例えば、アップグレード前にクラスターに適用される次のようなコードがあるとします。
# Check the default parameter values for MySQL 5.7–compatible clusters. aws rds describe-db-parameters--db-parameter-group-name default.aurora-mysql5.7--region us-east-1
クラスターのメジャーバージョンをアップグレードした後、そのコードを次のように変更します。
# Check the default parameter values for MySQL 8.0–compatible clusters. aws rds describe-db-parameters--db-parameter-group-name default.aurora-mysql8.0--region us-east-1
Aurora MySQL バージョン 3 からバージョン 8.4
同様に、バージョン 3 のデフォルトパラメータグループを参照するコードがある場合は、アップグレード後に更新します。
# Before upgrade: Check the default parameter values for MySQL 8.0–compatible clusters. aws rds describe-db-parameters--db-parameter-group-name default.aurora-mysql8.0--region us-east-1
# After upgrade: Check the default parameter values for MySQL 8.4–compatible clusters. aws rds describe-db-parameters--db-parameter-group-name default.aurora-mysql8.4--region us-east-1
グローバルデータベースのインプレースメジャーアップグレード
Aurora Global Database の場合は、グローバルデータベースクラスターをアップグレードします。Aurora は、すべてのクラスターを同時かつ自動的にアップグレードし、すべてのクラスターで、同じエンジンバージョンが実行されることを保証します。これは、システムテーブルやデータファイル形式などの変更が、すべてのセカンダリクラスターに自動的にレプリケートされるためです。
「メジャーバージョンの Aurora MySQL インプレースアップグレードの仕組み」の手順に従います。アップグレードする対象を指定するときは、そのデータベースに含まれるクラスターの 1 つではなく、グローバルデータベースクラスターを選択してください。
AWS マネジメントコンソール を使用する場合、[Global database] (グローバルデータベース) のロールを持つアイテムを選択します。
AWS CLI または RDS API を使用する場合は、modify-global-cluster コマンドまたは ModifyGlobalCluster オペレーションを呼び出して、アップグレードプロセスをスタートします。modify-db-cluster または ModifyDBCluster の代わりにこれらのいずれかを使用します。
注記
Aurora グローバルデータベースのメジャーバージョンアップグレードを実行している間、グローバルデータベースクラスターのカスタムパラメータグループを指定することはできません。グローバルクラスターの各リージョンにカスタムパラメータグループを作成します。次に、アップグレード後に手動でリージョンクラスターに適用します。
AWS CLI を使用して Aurora MySQL グローバルデータベースクラスターのメジャーバージョンをアップグレードするには、以下の必須パラメータを指定して、modify-global-cluster コマンドを使用します。
-
--global-cluster-identifier -
--engine aurora-mysql -
--engine-version -
--allow-major-version-upgrade
次の例では、Global Database クラスターを Aurora MySQL バージョン 3.04.2 にアップグレードします。
例
Linux、macOS、Unix の場合:
aws rds modify-global-cluster \ --global-cluster-identifierglobal_cluster_identifier\ --engine aurora-mysql \ --engine-version 8.0.mysql_aurora.3.04.2 \ --allow-major-version-upgrade
Windows の場合:
aws rds modify-global-cluster ^ --global-cluster-identifierglobal_cluster_identifier^ --engine aurora-mysql ^ --engine-version 8.0.mysql_aurora.3.04.2 ^ --allow-major-version-upgrade
クロスリージョンリードレプリカを持つ DB クラスターのインプレースアップグレード
クロスリージョンリードレプリカを持つ Aurora DB クラスターは、インプレースアップグレード手順を使用してアップグレードできますが、いくつかの考慮事項があります。
-
まずリードレプリカ DB クラスターをアップグレードする必要があります。最初にプライマリクラスターをアップグレードしようとすると、次のようなエラーメッセージが表示されます。
関連付けられた Aurora クロスリージョンレプリカ test-xr-replica-cluster にまだパッチが適用されていないため、DB クラスター test-xr-primary-cluster をアップグレードできません。Aurora クロスリージョンレプリカをアップグレードして、もう一度試してください。これは、プライマリ DB クラスターは、レプリカクラスターよりも高い DB エンジンバージョンを持つことはできないことを意味します。
-
プライマリ DB クラスターをアップグレードする前に、書き込みワークロードを停止し、プライマリクラスターのライター DB インスタンスへの新しい接続リクエストをすべて無効にします。
-
プライマリクラスターをアップグレードするときは、
binlog_formatパラメータがバイナリログ記録レプリケーションをサポートする値 (MIXEDなど) に設定されているカスタム DB クラスターパラメータグループを選択します。Aurora MySQL でバイナリログ記録を使用する方法の詳細については、「Aurora と MySQL との間、または Aurora と別の Aurora DB クラスターとの間のレプリケーション (バイナリログレプリケーション)」を参照してください。Aurora MySQL 設定パラメータの変更の詳細については、「Aurora MySQL 設定パラメータ」および「Amazon Aurora のパラメータグループ」を参照してください。
-
レプリカクラスターをアップグレードした後は、長い時間待たずにプライマリ DB クラスターをアップグレードしてください。次のメンテナンスウィンドウより長く待たないことをお勧めします。
-
プライマリ DB クラスターをアップグレードしたら、ライター DB インスタンスを再起動します。バイナリログレプリケーションを有効にするカスタム DB クラスターパラメータグループは、ライター DB インスタンスが再起動されるまで有効になりません。
-
クロスリージョンレプリケーションが再開され、セカンダリの AWS リージョンのレプリカラグが 0 であることを確認するまで、書き込みワークロードを再開したり、ライター DB インスタンスへの接続を有効にしたりしないでください。