Aurora MySQL DB クラスターのマイナーバージョンまたはパッチレベルのアップグレード - Amazon Aurora

Aurora MySQL DB クラスターのマイナーバージョンまたはパッチレベルのアップグレード

DB クラスターのマイナーバージョンをアップグレードしたり、DB クラスターにパッチを適用したりするには、次の方法を使用できます。

ダウンタイムなしのパッチ適用によってアップグレードプロセス中の中断を減らす方法については、「ダウンタイムのないパッチ適用の使用」を参照してください。

エンジンのバージョンを変更して Aurora MySQL アップグレードする

Aurora MySQL クラスターのマイナーバージョンをアップグレードすると、既存のクラスターに追加の修正と新しい機能が適用されます。この種のアップグレードは、Amazon Aurora MySQL バージョン 1.19.0 以降または 2.03.2 以降を実行しているクラスターに対して実行できます。

この種のアップグレードは、元のバージョンとアップグレードされたバージョンの両方が Aurora MySQL 1.x シリーズであるか、両方が Aurora MySQL 2.x シリーズである Aurora MySQL クラスターに適用されます。このプロセスは、Aurora MySQL メタデータの変換やテーブルデータの再編成を必要としないため、迅速で単純明快です。

この種のアップグレードを実行するには、AWS マネジメントコンソール、AWS CLI、RDS API のいずれかを使用して DB クラスターのエンジンバージョンを変更します。クラスターで Aurora MySQL 1.x が実行されている場合は、より高い 1.x バージョンを選択します。クラスターで Aurora MySQL 2.x が実行されている場合は、より高い 2.x バージョンを選択します。

DB クラスターのエンジンバージョンを変更するには

  • コンソールを使用する場合 –クラスターのプロパティを変更します。[DB クラスターの変更] ウィンドウの [DB エンジンバージョン] ボックスで、Aurora MySQL エンジンバージョンを変更します。クラスターを変更するための一般的な手順に慣れていない場合は、「コンソール、CLI、API を使用した DB クラスターの変更」の手順に従ってください。

  • AWS CLI を使用する場合modify-db-cluster AWS CLI コマンドを呼び出し、DB クラスターの名前を --db-cluster-identifier オプションで指定して、エンジンバージョンを --engine-version オプションで指定します。

    たとえば、Aurora MySQL バージョン 2.03.2 にアップグレードするには、--engine-version オプションを 5.7.mysql_aurora.2.03.2 に設定します。DB クラスターのエンジンバージョンをすぐに更新するには、--apply-immediately オプションを指定します。

  • RDS API を使用する場合ModifyDBCluster API オペレーションを呼び出し、DBClusterIdentifier で DB クラスターの名前を指定して EngineVersion パラメータでエンジンバージョンを指定します。DB クラスターのエンジンバージョンをすぐに更新するには、ApplyImmediately パラメータを true に設定します。

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

Amazon Aurora MySQL DB クラスターの場合、新しいマイナーバージョンがリリースされたときに Aurora で DB クラスターを自動的に新しいマイナーバージョンにアップグレードするように指定できます。これを行うには、AWS マネジメントコンソール、AWS CLI、RDS API のいずれかを使用して DB クラスターのマイナーバージョン自動アップグレードプロパティを有効にします。

自動アップグレードは、データベースのメンテナンス期間中に実行されます。

重要

2020 年 8 月までは、Aurora MySQL DB クラスターの一部であった DB インスタンスに対して、この設定を指定できましたが、設定は効果がありませんでした。現在、設定は Aurora MySQL に適用されます。2020 年 8 月より前に作成されたクラスターがある場合は、クラスター内の DB インスタンスで [Enable auto minor version upgrade (マイナーバージョン自動アップグレードの有効化)] の設定が有効になっているかどうかを確認してください。有効になっている場合は、この設定が依然として適切であることを確認し、そうでない場合は変更します。Aurora は、クラスター内のすべての DB インスタンスでこの設定が有効になっている場合にのみ、自動アップグレードを実行します。

マイナーバージョンの自動アップグレードは、Aurora MySQL 1.x または 2.x の LTS バージョンを実行しているクラスターには適用されません。Aurora は、2.07.*、1.22.*、これらのマイナーバージョンのパッチレベルを実行しているクラスターのいずれも自動的にはアップグレードしません。

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

  • マルチマスタークラスター。

  • Aurora グローバルデータベースの一部であるクラスター。

  • クロスリージョンレプリカを持つクラスター。

クラスター内のいずれかの DB インスタンスでマイナーバージョン自動アップグレードの設定がオンになっていない場合、Aurora はそのクラスター内のいずれのインスタンスも自動的にはアップグレードしません。クラスター内のすべての DB インスタンスで設定が一貫していることを確認してください。

停止時間は、ワークロード、クラスターサイズ、バイナリログデータの量、および Aurora でダウンタイムなしのパッチ適用 (ZDP) 機能を使用できるかどうかによって異なります。Aurora はデータベースクラスターを再起動するため、クラスターの使用を再開するまでに短時間使用不能になることがあります。特に、バイナリログデータの量が復旧時間に影響を与えます。DB インスタンスは、復旧中にバイナリログデータを処理します。したがって、バイナリログデータが大量である場合、復旧時間が長くなります。

Aurora MySQL DB クラスターのマイナーバージョン自動アップグレードを有効にするには

  1. DB クラスター内の DB インスタンスの変更」で説明しているように、一般的な手順に従ってクラスター内の DB インスタンスを変更します。クラスター内の DB インスタンスごとに、この手順を繰り返します。

  2. クラスターのマイナーバージョン自動アップグレードを有効化するには、以下の手順を実行します。

  • コンソールを使用する場合 – 以下の手順を実行します。

    1. Amazon RDS コンソールにサインインして [Databases (データベース)] を選択し、マイナーバージョン自動アップグレードを有効化または無効化する DB クラスターを探します。

    2. 変更する DB クラスター内の各 DB インスタンスを選択します。各 DB インスタンスに順番に次の変更を適用します。

      1. [Modify] を選択します。

      2. [マイナーバージョン自動アップグレードの有効化] 設定を選択します。この設定は、[メンテナンス] セクションの一部です。

      3. [Continue] を選択して、変更の概要を確認します。

      4. (省略可能) 変更をすぐに適用するには、[すぐに適用] を選択します。

      5. 確認ページで、[DB インスタンスの変更] を選択します。

  • AWS CLI を使用する場合modify-db-instance AWS CLI コマンドを呼び出します。--db-instance-identifier オプションで DB インスタンスの名前を指定し、--auto-minor-version-upgrade オプションで true を指定します。必要に応じて、この設定を DB インスタンスですぐに有効にするための --apply-immediately オプションを指定します。クラスター内の DB インスタンスごとに modify-db-instance コマンドを別個に実行します。

  • RDS API を使用する場合ModifyDBInstance API オペレーションを呼び出して、DBInstanceIdentifier パラメータで DB クラスターの名前を指定し、AutoMinorVersionUpgrade パラメータで true を指定します。必要に応じて、ApplyImmediately パラメータを true に設定し、この設定を DB インスタンスですぐに有効にします。クラスター内の各 DB インスタンスで ModifyDBInstance オペレーションを個別に呼び出します。

次のような CLI コマンドを使用すると、Aurora MySQL クラスター内のすべての DB インスタンスで [Enable auto minor version upgrade (マイナーバージョン自動アップグレードの有効化)] のステータスを確認できます。

aws rds describe-db-instances \ --query '*[].{DBClusterIdentifier:DBClusterIdentifier,DBInstanceIdentifier:DBInstanceIdentifier,AutoMinorVersionUpgrade:AutoMinorVersionUpgrade}'

このコマンドでは、次のような出力が生成されます。

[ { "DBInstanceIdentifier": "db-t2-medium-instance", "DBClusterIdentifier": "cluster-57-2020-06-03-6411", "AutoMinorVersionUpgrade": true }, { "DBInstanceIdentifier": "db-t2-small-original-size", "DBClusterIdentifier": "cluster-57-2020-06-03-6411", "AutoMinorVersionUpgrade": false }, { "DBInstanceIdentifier": "instance-2020-05-01-2332", "DBClusterIdentifier": "cluster-57-2020-05-01-4615", "AutoMinorVersionUpgrade": true }, ... output omitted ...

Aurora MySQL DB クラスターに保留中のメンテナンスを適用して Aurora MySQL をアップグレードする

Aurora MySQL バージョン 1.x のバージョンにアップグレードする場合、新しいデータベースエンジンのマイナーバージョンとパッチは、DB クラスターの使用可能なメンテナンスアップグレードとして表示されます。使用可能なメンテナンスアクションを適用することで、DB クラスターのデータベースバージョンをアップグレードまたは修正できます。新しいバージョンの変更がインスタンスやアプリケーションに及ぼす影響を確認するために、最初に本番稼働用以外の DB クラスターに更新を適用することをお勧めします。

保留中のメンテナンスアクションを適用するには

  • コンソールを使用する場合 – 以下の手順を実行します。

    1. Amazon RDS コンソールにサインインして [Databases (データベース)] をクリックし、利用可能なメンテナンスのアップグレードを示す DB クラスターを選択します。

    2. [アクション] で、[今すぐアップグレード] を選択して DB クラスターのデータベースバージョンをすぐに更新するか、[次のウィンドウでアップグレード] を選択して DB クラスターの次のメンテナンスウィンドウ中にデータベースバージョンを更新します。

  • AWS CLI を使用apply-pending-maintenance-action AWS CLI コマンドを呼び出して、--resource-id オプションで DB クラスターの Amazon リソースネーム (ARN) を指定し、--apply-action オプションで system-update を指定します。--opt-in-type オプションを immediate に設定して DB インスタンスのデータベースバージョンをすぐに更新するか、next-maintenance に設定して DB クラスターの次のメンテナンスウィンドウ中にデータベースバージョンを更新します。

  • RDS API を使用する場合ApplyPendingMaintenanceAction API オペレーションを呼び出して、ResourceId パラメータに DB クラスターの ARN を指定し、ApplyAction パラメータに system-update を指定します。OptInType パラメータを immediate に設定して DB クラスターのデータベースバージョンをすぐに更新するか、next-maintenance に設定して クラスターの次のメンテナンスウィンドウ中にインスタンスのデータベースバージョンを更新します。

Amazon RDS がデータベースとオペレーティングシステムの更新を管理する方法の詳細については、「Amazon AuroraDB クラスターのメンテナンス」を参照してください。

注記

現在お使いの Aurora MySQL バージョンが 1.14.x で、1.14.4 より前のバージョンの場合は、1.14.4 (db.r4 インスタンスクラスをサポート) にのみアップグレードできます。また、Aurora MySQL を 1.14.x からより高いマイナーバージョン (例: 1.17) にアップグレードするには、1.14.x バージョンが 1.14.4 であることが必要です。

ダウンタイムのないパッチ適用の使用

ダウンタイムのないパッチ適用 (ZDP) 機能では、ベストエフォートに基づいて、エンジンパッチ中のクライアント接続を維持するよう試みます。ZDP が正常に完了されると、アプリケーションのセッションが保持され、パッチ適用中にデータベースエンジンが再起動します。データベースエンジンを再起動すると、約 5 秒間、スループットが低下することがあります。

ZDP は、Aurora MySQL 1.13 以降(MySQL 5.6 と互換性あり)で使用できます。Aurora MySQL 2.07 以降(MySQL 5.7 と互換性あり)でも使用できます。

ZDP は、以下の状態では正常に完了されない場合があります。

  • 長期実行クエリまたはトランザクションが進行中である。この場合、Aurora が ZDP を実行すると、未処理のトランザクションはすべてキャンセルされます。

  • バイナリログが有効になっているか、バイナリログのレプリケーションが進行中である。

  • Open Secure Socket Layer (SSL) 接続が存在します。

  • データ定義言語 (DDL) ステートメントの実行中などは、一時テーブルまたはテーブルロックが使用中です。この場合、Aurora が ZDP を実行すると、未処理のトランザクションはすべてキャンセルされます。

  • パラメータの変更が保留中である。

Aurora MySQL 1.19 および 2.07 以降、ZDP メカニズムは向上しました。こうした機能向上によって、長期実行トランザクション、バイナリログ、テーブルロック、または一時テーブルがあるときに ZDP の成功する可能性が高まります。

上記の状態のいずれかにより、ZDP を実行するための適切な時間枠が確保されない場合、パッチ適用は標準の動作に戻ります。

注記

ZDP は クラスターのプライマリ DB インスタンスにのみ適用されます。ZDP は Aurora レプリカには適用できません。

準備済みステートメントは、ZDP の実行を妨げませんが、ZDP が完了された後は保持されません。

代替の Blue/Green のアップグレードテクニック

ブログ記事「最小限のダウンタイムで Aurora MySQL のメジャーバージョンアップグレードを実行する」を参照してください。