

# マイナーバージョンアップグレードの実行
<a name="USER_UpgradeDBInstance.PostgreSQL.MinorUpgrade"></a>

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

**Topics**
+ [マイナーバージョンアップグレードを実行する前に](#USER_UpgradeDBInstance.PostgreSQL.BeforeMinor)
+ [マイナーバージョンのアップグレードとパッチの適用方法](#USER_UpgradeDBInstance.PostgreSQL.Minor)
+ [マイナーリリースのアップグレードとダウンタイムなしのパッチ適用プロセス](#USER_UpgradeDBInstance.PostgreSQL.Minor.zdp)
+ [ダウンタイムのないパッチ適用の制限](#USER_UpgradeDBInstance.PostgreSQL.Minor.zdp.limitations)
+ [Aurora PostgreSQL エンジンを新しいマイナーバージョンにアップグレードする](#USER_UpgradeDBInstance.MinorUpgrade)

## マイナーバージョンアップグレードを実行する前に
<a name="USER_UpgradeDBInstance.PostgreSQL.BeforeMinor"></a>

マイナーバージョンのアップグレード中のダウンタイムを低減するには、次のアクションを実行することをお勧めします。
+ Aurora DB クラスターのメンテナンスは、トラフィックが少ない時間帯に実行する必要があります。メンテナンスウィンドウを適切に設定するには、Performance Insights を使用してこのような時間帯を特定します。Performance Insights については、「[Amazon RDS での Performance Insights を使用した DB 負荷のモニタリング](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html)」を参照してください。DB クラスターのメンテナンスウィンドウの詳細については、「[DB クラスターの適切なメンテナンスウィンドウの調整](USER_UpgradeDBInstance.Maintenance.md#AdjustingTheMaintenanceWindow.Aurora)」を参照してください。
+ エクスポネンシャルバックオフとジッターをサポートする AWS SDK を使用することが、ベストプラクティスです。詳細については、 ブログ投稿、「[エクスポネンシャルバックオフとジッター](https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/)」を参照してください。

## マイナーバージョンのアップグレードとパッチの適用方法
<a name="USER_UpgradeDBInstance.PostgreSQL.Minor"></a>

マイナーバージョンのアップグレードとパッチは、厳格なテストの後にのみ AWS リージョン で利用可能となります。アップグレードとパッチをリリースする前に、Aurora PostgreSQL は、マイナーコミュニティバージョンのリリース後に発生する既知のセキュリティ問題、バグ、およびその他の問題により Aurora PostgreSQL フリートの安定性が損なわれないことをテストします。

**[マイナーバージョン自動アップグレードの有効化]** がオンになっている場合、Aurora PostgreSQL は指定したメンテナンス期間中に DB クラスターを定期的にアップグレードします。Aurora PostgreSQL DB クラスターのすべてのインスタンスに対して、**[マイナーバージョン自動アップグレードの有効化]** オプションがオンになっていることを確認します。**[マイナーバージョン自動アップグレード]** の設定方法、およびクラスターレベルとインスタンスレベルで適用した場合にどのように機能するかについては、[Aurora DB クラスターのマイナーバージョン自動アップグレード](USER_UpgradeDBInstance.Maintenance.md#Aurora.Maintenance.AMVU) を参照してください。

次のクエリに [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) 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 クラスターのマイナーバージョン自動アップグレード](USER_UpgradeDBInstance.Maintenance.md#Aurora.Maintenance.AMVU)」を参照してください。

Aurora PostgreSQL DB クラスターを新しいマイナーバージョンにアップグレードするには、メンテナンスタスクに応答するか、新しいバージョンを使用するようにクラスターを変更します。

RDS コンソールを使用して、**レコメンデーション**メニューを開くことにより、Aurora PostgreSQL DB クラスターで使用可能なアップグレードまたはパッチを特定することができます。そこには、**古いマイナーバージョン**など、さまざまなメンテナンスの問題のリストを確認できます。本番環境に応じて、アップグレードを**スケジュール**するか、[**今すぐ適用**] を選択することですぐにアクションを実行することを選択できます。

![\[新しいマイナーバージョンへのアップグレードを推奨するコンソール画像。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/images/apg-maintenance-upgrade-minor.png)


パッチやマイナーバージョンアップグレードを手動で適用する方法など、Aurora DB クラスターのメンテナンス方法の詳細については、「[Amazon Aurora DB クラスターのメンテナンス](USER_UpgradeDBInstance.Maintenance.md)」を参照してください。

## マイナーリリースのアップグレードとダウンタイムなしのパッチ適用プロセス
<a name="USER_UpgradeDBInstance.PostgreSQL.Minor.zdp"></a>

Aurora PostgreSQL DB クラスターのアップグレードには、停止の可能性が伴います。アップグレードプロセス中には、データベースがシャットダウンされます。データベースがビジー状態のときにアップグレードをスタートすると、DB クラスターが処理しているすべての接続とトランザクションが失われます。アップグレードを実行するためにデータベースがアイドル状態になるまで待機する場合は、長時間待機しなければならない場合があります。

ダウンタイムなしのパッチ適用 (ZDP) 機能により、アップグレードプロセスが改善されます。ZDP では、Aurora PostgreSQL DB クラスターへの影響を最小限に抑えながら、マイナーバージョンのアップグレードとパッチの両方を適用できます。ZDP は、Aurora PostgreSQL バージョンおよびこれらのマイナーバージョンおよび新しいメジャーバージョンのその他のリリースに、パッチまたは新しいマイナーバージョンアップグレードを適用する際に使用されます。つまり、これらのリリースのいずれかから新しいマイナーバージョンにアップグレードすると、ZDP が使用されます。

次の表に、ZDP が使用可能な Aurora PostgreSQL バージョンと DB インスタンスクラスを示します。


| バージョン | db.r\$1 インスタンスクラス | db.t\$1 インスタンスクラス | db.x\$1 インスタンスクラス | db.serverless インスタンスクラス | 
| --- | --- | --- | --- | --- | 
| 10.21 以降のバージョン | 可能 | はい | はい | 該当なし | 
| 11.16 以降のバージョン | 可能 | はい | はい | 該当なし | 
| 11.17 以降のバージョン | 可能 | はい | はい | 該当なし | 
| 12.11 以降のバージョン | 可能 | はい | はい | 該当なし | 
| 12.12 以降のバージョン | 可能 | はい | はい | 該当なし | 
| 13.7 以降のバージョン | 可能 | はい | はい | 該当なし | 
| 13.8 以降のバージョン | 可能 | はい | はい | はい | 
| 14.3 以降のバージョン | 可能 | はい | はい | 該当なし | 
| 14.4 以降のバージョン | 可能 | はい | はい | 該当なし | 
| 14.5 以降のバージョン | 可能 | はい | はい | はい | 
| 15.3 以降のバージョン | 可能 | はい | はい | はい | 
| 16.1 以降のバージョン | 可能 | はい | はい | はい | 

ZDP によるアップグレードプロセス中、データベースエンジンはすべての新規トランザクションを一時停止するためのクワイエットポイントを探します。このアクションにより、パッチおよびアップグレードの際にデータベースが保護されます。トランザクションを一時停止してもアプリケーションがスムーズに実行されるように、コードに再試行ロジックを組み込むことをお勧めします。このアプローチにより、システムは短時間のダウンタイムを問題なく管理でき、アップグレード後に新しいトランザクションを再試行できます。

ZDP が正常に完了すると、接続停止のセッションを除いたアプリケーションセッションが保持され、アップグレードがまだ進行している間にデータベースエンジンが再起動します。データベースエンジンの再起動により、スループットが一時的に低下する可能性がありますが、これは通常数秒から約 1 分間程度で済みます。

場合によっては、ダウンタイムなしのパッチ適用 (ZDP) が成功しないこともあります。例えば、Aurora PostgreSQL DB クラスターまたはそのインスタンスが `pending` 状態にあるときにパラメータを変更すると、ZDP を中断する原因となります。

ZDP オペレーションのメトリックとイベントについては、コンソールの「**イベント**」ページを参照してください。イベントには、ZDP アップグレードの開始とアップグレードの完了が含まれます。このイベントでは、プロセスに要した時間、および再起動中に保持およびドロップされた接続の数を確認できます。詳細は、データベースのエラーログに表示されます。

## ダウンタイムのないパッチ適用の制限
<a name="USER_UpgradeDBInstance.PostgreSQL.Minor.zdp.limitations"></a>

ダウンタイムのないパッチ適用には、次の制限が適用されます。
+ ZDP は、Aurora PostgreSQL のアップグレードプロセス全体で、Aurora PostgreSQL ライターインスタンスへの現在のクライアント接続を維持しようとします。ただし、以下の場合、ZDP が完了するまで接続は切断されます。
  + 長期実行クエリまたはトランザクションが進行中である。
  + データ定義言語 (DDL) ステートメントが実行中である。
  + 一時テーブルまたはテーブルロックが使用中である。
  + すべてのセッションが通知チャネルでリッスン中である。
  + 「WITH HOLD」ステータスのカーソルが使用中である。
  + TLSv1.1 接続が使用中である。Aurora PostgreSQL バージョン 16.1、15.3、14.8、13.11、12.15、11.20 以降の場合、ZDP は TLSv1.3 接続でサポートされています。
+ ZDP は、次の場合サポートされていません。
  + Aurora PostgreSQL DB クラスターが Aurora Serverless v1 に設定されている場合。
  + Aurora リーダーインスタンスのアップグレード中。
  + セカンダリリージョンの Aurora Global Database クラスターの一部である Aurora リーダーインスタンスのアップグレード中。
  + OS パッチおよび OS アップグレード中。

## Aurora PostgreSQL エンジンを新しいマイナーバージョンにアップグレードする
<a name="USER_UpgradeDBInstance.MinorUpgrade"></a>

 AWS CLI、または RDS API を使用することにより、Aurora PostgreSQL DB クラスターを新しいマイナーバージョンにアップグレードできます。アップグレードを実行する前に、メジャーバージョンのアップグレードする際に推奨する内容と同じベストプラクティスを実行することをお勧めします。新しいメジャーバージョンと同様に、新しいマイナーバージョンでも、クエリ計画のリグレッションの原因となる修正などのオプティマイザの改善が行われている可能性があります。計画の安定性を確保するには、「[メジャーバージョンのアップグレード後の計画の安定性の確保](AuroraPostgreSQL.Optimize.BestPractice.md#AuroraPostgreSQL.Optimize.BestPractice.MajorVersionUpgrade)」で説明されているように、クエリ計画管理 (QPM) 拡張機能を使用することをお勧めします。

### コンソール
<a name="USER_UpgradeDBInstance.MinorUpgrade.Console"></a>

**Aurora PostgreSQL DB クラスターのエンジンバージョンをアップグレードするには**

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、[**データベース**] を選択して、アップグレードする DB クラスターを選択します。

1. [**Modify**] を選択します。[**DB クラスターの変更**] ページが表示されます。

1. [**Engine version**] (エンジンバージョン) で、新しいバージョンを選択します。

1. [**続行**] を選択して、変更の概要を確認します。

1. 変更をすぐに反映させるには、[**Apply immediately**] を選択します。このオプションを選択すると、停止状態になる場合があります。詳細については、「[Amazon Aurora DB クラスターの変更](Aurora.Modifying.md)」を参照してください。

1. 確認ページで、変更内容を確認します。正しい場合は、[**クラスターの変更**] を選択して変更を保存します。

   または、[**戻る**] を選択して変更を編集するか、[**キャンセル**] を選択して変更をキャンセルします。

### AWS CLI
<a name="USER_UpgradeDBInstance.MinorUpgrade.CLI"></a>

[ DB クラスターのバージョンをアップグレードするには、次のパラメータに modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) AWS CLI コマンドを使用します。
+ `--db-cluster-identifier` — Aurora PostgreSQL DB クラスターの名前。
+ `--engine-version` - アップグレード先のデータベースエンジンのバージョン番号です。有効なエンジンバージョンの詳細については、AWS CLI の [describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) コマンドを参照してください。
+ `--no-apply-immediately` ​- 次のメンテナンス時間中に変更を適用します。今すぐ変更を適用するには、代わりに `--apply-immediately` を使用します。

Linux、macOS、Unix の場合:

```
aws rds modify-db-cluster \
    --db-cluster-identifier mydbcluster \
    --engine-version new_version \
    --no-apply-immediately
```

Windows の場合:

```
aws rds modify-db-cluster ^
    --db-cluster-identifier mydbcluster ^
    --engine-version new_version ^
    --no-apply-immediately
```

### RDS API
<a name="USER_UpgradeDBInstance.MinorUpgrade.API"></a>

DB クラスターのエンジンのバージョンをアップグレードするには、[ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html) オペレーションを使用します。以下のパラメータを指定します。
+ `DBClusterIdentifier` - DB クラスターの名前、例えば *`mydbcluster`* です。
+ `EngineVersion` - アップグレード先のデータベースエンジンのバージョン番号です。有効なエンジンバージョンについては、[DescribeDBEngineVersions](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBEngineVersions.html) オペレーションを使用します。
+ `ApplyImmediately` - 変更をすぐに適用するか、次のメンテナンスウィンドウ中に適用するかを指定します。今すぐ変更を適用するには、値を `true` に設定します。次のメンテナンスウィンドウ中に変更を適用するには、値を `false` に設定します。