マイナーバージョンアップグレードの実行
DB クラスターのマイナーバージョンをアップグレードしたり、DB クラスターにパッチを適用したりするには、次の方法を使用できます。
マイナーバージョンアップグレードを実行する前に
マイナーバージョンのアップグレード中のダウンタイムを低減するには、次のアクションを実行することをお勧めします。
Aurora DB クラスターのメンテナンスは、トラフィックが少ない時間帯に実行する必要があります。メンテナンスウィンドウを適切に設定するには、Performance Insights を使用してこのような時間帯を特定します。Performance Insights については、「Amazon RDS での Performance Insights を使用した DB 負荷のモニタリング」を参照してください。DB クラスターのメンテナンスウィンドウの詳細については、「DB クラスターの適切なメンテナンスウィンドウの調整」を参照してください。
-
エクスポネンシャルバックオフとジッターをサポートする AWS SDK を使用することが、ベストプラクティスです。詳細については、 ブログ投稿、「エクスポネンシャルバックオフとジッター
」を参照してください。
マイナーバージョンのアップグレードとパッチの適用方法
マイナーバージョンのアップグレードとパッチは、厳格なテストの後にのみ AWS リージョン で利用可能となります。アップグレードとパッチをリリースする前に、Aurora PostgreSQL は、マイナーコミュニティバージョンのリリース後に発生する既知のセキュリティ問題、バグ、およびその他の問題により Aurora PostgreSQL フリートの全体的な安定性が損なわれないことをテストします。
Aurora PostgreSQL で新しいマイナーバージョンが利用できるようになるため、Aurora PostgreSQL DB クラスターを構成するインスタンスは、指定したメンテナンス期間中に自動的にアップグレードできます。これを行うには、Aurora PostgreSQL DB クラスターで [マイナーバージョン自動アップグレードの有効化] オプションがオンになっている必要があります。Aurora PostgreSQL DB クラスターを構成するすべての DB インスタンスで、マイナーアップグレードがクラスター全体に適用されるように、自動マイナーバージョンアップグレード (AmVU) オプションをオンにする必要があります。
ヒント
Aurora PostgreSQL DB クラスターを構成するすべての PostgreSQL DB インスタンスに対して、[マイナーバージョン自動アップグレードの有効化] オプションが、オンになっていることを確認します。DB クラスター内のすべてのインスタンスを動作させるには、このオプションをオンにする必要があります。[マイナーバージョン自動アップグレード] の設定方法、およびクラスターレベルとインスタンスレベルで適用した場合にどのように機能するかについては、 Aurora DB クラスターのマイナーバージョン自動アップグレード を参照してください。
次のクエリに describe-db-instances AWS CLIコマンドを使用することで、すべての Aurora PostgreSQL DB クラスターに対して、[マイナーバージョン自動アップグレードの有効化] オプションの値をチェックできます。
aws rds describe-db-instances \ --query '*[].{DBClusterIdentifier:DBClusterIdentifier,DBInstanceIdentifier:DBInstanceIdentifier,AutoMinorVersionUpgrade:AutoMinorVersionUpgrade}'
このクエリにより、AutoMinorVersionUpgrade
設定のステータスに対して true
または false
値を持つすべての Aurora DB クラスターとそのインスタンスのリストが返されます。表示されるコマンドは、AWS CLI がデフォルトの AWS リージョン に設定されていると仮定したものです。
[AmVU] オプションと Aurora DB クラスターを使用できるように変更する方法については、「 Aurora DB クラスターのマイナーバージョン自動アップグレード」を参照してください。
Aurora PostgreSQL DB クラスターを新しいマイナーバージョンにアップグレードするには、メンテナンスタスクに応答するか、新しいバージョンを使用するようにクラスターを変更します。
RDS コンソールを使用して、レコメンデーションメニューを開くことにより、Aurora PostgreSQL DB クラスターで使用可能なアップグレードまたはパッチを特定することができます。そこには、古いマイナーバージョンなど、さまざまなメンテナンスの問題のリストを確認できます。本番環境に応じて、アップグレードをスケジュールするか、[今すぐ適用] を選択することですぐにアクションを実行することを選択できます。
パッチやマイナーバージョンアップグレードを手動で適用する方法など、Aurora DB クラスターのメンテナンス方法の詳細については、「Amazon Aurora DB クラスターのメンテナンス」を参照してください。
マイナーリリースのアップグレードとダウンタイムなしのパッチ適用プロセス
Aurora PostgreSQL DB クラスターのアップグレードには、停止の可能性が伴います。アップグレードプロセス中には、データベースがシャットダウンされます。データベースがビジー状態のときにアップグレードをスタートすると、DB クラスターが処理しているすべての接続とトランザクションが失われます。アップグレードを実行するためにデータベースがアイドル状態になるまで待機する場合は、長時間待機しなければならない場合があります。
ダウンタイムなしのパッチ適用 (ZDP) 機能により、アップグレードプロセスが改善されます。ZDP では、Aurora PostgreSQL DB クラスターへの影響を最小限に抑えながら、マイナーバージョンのアップグレードとパッチの両方を適用できます。ZDP は、Aurora PostgreSQL バージョンおよびこれらのマイナーバージョンおよび新しいメジャーバージョンのその他のリリースに、パッチまたは新しいマイナーバージョンアップグレードを適用する際に使用されます。つまり、これらのリリースのいずれかから新しいマイナーバージョンにアップグレードすると、ZDP が使用されます。
次の表に、ZDP が使用可能な Aurora PostgreSQL バージョンと DB インスタンスクラスを示します。
Version | db.r* インスタンスクラス | db.t* インスタンスクラス | db.x* インスタンスクラス | db.serverless インスタンスクラス |
---|---|---|---|---|
10.21.0 以降の 10.21 バージョン | あり | はい | はい | 該当なし |
11.16.0 以降の 11.16 バージョン | はい | はい | はい | 該当なし |
11.17 以降のバージョン | はい | はい | はい | 該当なし |
12.11.0 以降の 12.11 バージョン | はい | はい | はい | 該当なし |
12.12 以降のバージョン | はい | はい | はい | 該当なし |
13.7.0 以降の 13.7 バージョン | はい | はい | はい | 該当なし |
13.8 以降のバージョン | はい | はい | はい | はい |
14.3.1 以降の 14.3 バージョン | はい | はい | はい | 該当なし |
14.4.0 以降の 14.4 バージョン | はい | はい | はい | 該当なし |
14.5 以降のバージョン | はい | はい | はい | はい |
15.3 以降のバージョン | はい | はい | はい | はい |
ZDP は、Aurora PostgreSQL のアップグレードプロセス全体で、Aurora PostgreSQL DB クラスターへの現在のクライアント接続を維持することで機能します。ただし、以下の場合、ZDP が完了するまで接続は切断されます。
長期実行クエリまたはトランザクションが進行中である。
データ定義言語 (DDL) ステートメントが実行中である。
一時テーブルまたはテーブルロックが使用中である。
すべてのセッションが通知チャネルでリッスン中である。
「WITH HOLD」ステータスのカーソルが使用中である。
TLSv1.3 または TLSv1.1 接続が使用中である。
ZDP によるアップグレードプロセス中、データベースエンジンはすべての新規トランザクションを一時停止するためのクワイエットポイントを探します。このアクションにより、パッチおよびアップグレードの際にデータベースが保護されます。トランザクションを一時停止してもアプリケーションがスムーズに実行されるように、コードに再試行ロジックを組み込むことをお勧めします。このアプローチにより、システムは短時間のダウンタイムを問題なく管理でき、アップグレード後に新しいトランザクションを再試行できます。
ZDP が正常に完了すると、接続停止のセッションを除いたアプリケーションセッションが保持され、アップグレードがまだ進行している間にデータベースエンジンが再起動します。データベースエンジンの再起動により、スループットが一時的に低下する可能性がありますが、これは通常数秒から約 1 分間程度で済みます。
場合によっては、ダウンタイムなしのパッチ適用 (ZDP) が成功しないこともあります。例えば、Aurora PostgreSQL DB クラスターまたはそのインスタンスが pending
状態にあるときにパラメータを変更すると、ZDP を中断する原因となります。
ZDP オペレーションのメトリックとイベントについては、コンソールの「イベント」ページを参照してください。イベントには、ZDP アップグレードの開始とアップグレードの完了が含まれます。このイベントでは、プロセスに要した時間、および再起動中に保持およびドロップされた接続の数を確認できます。詳細は、データベースのエラーログに表示されます。
Aurora PostgreSQL エンジンを新しいマイナーバージョンにアップグレードする
AWS CLI、または RDS API を使用することにより、Aurora PostgreSQL DB クラスターを新しいマイナーバージョンにアップグレードできます。アップグレードを実行する前に、メジャーバージョンのアップグレードする際に推奨する内容と同じベストプラクティスを実行することをお勧めします。新しいメジャーバージョンと同様に、新しいマイナーバージョンでも、クエリ計画のリグレッションの原因となる修正などのオプティマイザの改善が行われている可能性があります。計画の安定性を確保するには、「メジャーバージョンのアップグレード後の計画の安定性の確保」で説明されているように、クエリ計画管理 (QPM) 拡張機能を使用することをお勧めします。
Aurora PostgreSQL DB クラスターのエンジンバージョンをアップグレードするには
-
AWS Management Console にサインインし、Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 -
ナビゲーションペインで、[データベース] を選択して、アップグレードする DB クラスターを選択します。
-
[Modify] を選択します。[DB クラスターの変更] ページが表示されます。
-
[Engine version] (エンジンバージョン) で、新しいバージョンを選択します。
-
[続行] を選択して、変更の概要を確認します。
-
変更をすぐに反映させるには、[Apply immediately] を選択します。このオプションを選択すると、停止状態になる場合があります。詳細については、「Amazon Aurora DB クラスターの変更」を参照してください。
-
確認ページで、変更内容を確認します。正しい場合は、[クラスターの変更] を選択して変更を保存します。
または、[戻る] を選択して変更を編集するか、[キャンセル] を選択して変更をキャンセルします。
DB クラスターのバージョンをアップグレードするには、次のパラメータに modify-db-cluster AWS CLI コマンドを使用します。
-
--db-cluster-identifier
— Aurora PostgreSQL DB クラスターの名前。 -
--engine-version
- アップグレード先のデータベースエンジンのバージョン番号です。有効なエンジンバージョンの詳細については、AWS CLI の describe-db-engine-versions コマンドを参照してください。 -
--no-apply-immediately
- 次のメンテナンス時間中に変更を適用します。今すぐ変更を適用するには、代わりに--apply-immediately
を使用します。
Linux、macOS、Unix の場合:
aws rds modify-db-cluster \ --db-cluster-identifier
mydbcluster
\ --engine-versionnew_version
\ --no-apply-immediately
Windows の場合:
aws rds modify-db-cluster ^ --db-cluster-identifier
mydbcluster
^ --engine-versionnew_version
^ --no-apply-immediately
DB クラスターのエンジンのバージョンをアップグレードするには、ModifyDBCluster オペレーションを使用します。以下のパラメータを指定します。
-
DBClusterIdentifier
- DB クラスターの名前、例えば
です。mydbcluster
-
EngineVersion
- アップグレード先のデータベースエンジンのバージョン番号です。有効なエンジンバージョンについては、DescribeDBEngineVersions オペレーションを使用します。 -
ApplyImmediately
- 変更をすぐに適用するか、次のメンテナンスウィンドウ中に適用するかを指定します。今すぐ変更を適用するには、値をtrue
に設定します。次のメンテナンスウィンドウ中に変更を適用するには、値をfalse
に設定します。