

# Amazon Aurora PostgreSQL DB クラスターのアップグレード
<a name="USER_UpgradeDBInstance.PostgreSQL"></a><a name="pgsql_upgrade"></a>

Amazon Aurora では、広範なテストの後にのみ AWS リージョン で PostgreSQL データベースエンジンの新しいバージョンが利用可能となります。Aurora PostgreSQL DB クラスターは、リージョンで利用可能になった時点で新しいバージョンにアップグレードできます。

DB クラスターが現在実行されている Aurora PostgreSQL のバージョンに応じて、新しいリリースへのアップグレードは、マイナーアップグレードまたはメジャーアップグレードのいずれかになります。例えば、Aurora PostgreSQL 11.15 DB クラスターを Aurora PostgreSQL 13.6 にアップグレードした場合は、*メジャーバージョンアップグレード*です。Aurora PostgreSQL 13.3 DB クラスターを Aurora PostgreSQL 13.7 にアップグレードした場合は、*マイナーバージョンアップグレード*です。次のトピックでは、両方のタイプのアップグレードを実行する方法について説明します。

**Contents**
+ [Aurora PostgreSQL のアップグレードプロセスの概要](#USER_UpgradeDBInstance.PostgreSQL.Overview)
+ [AWS リージョン で使用可能なバージョンのリストを取得します。](USER_UpgradeDBInstance.PostgreSQL.UpgradeVersion.md)
+ [メジャーバージョンアップグレードの実行](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md)
  + [本番稼働用の DB クラスターの新しいメジャーバージョンへのアップグレードをテストする](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md#USER_UpgradeDBInstance.PostgreSQL.MajorVersion.Upgrade.preliminary)
  + [アップグレード後の推奨事項](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md#USER_UpgradeDBInstance.PostgreSQL.MajorVersion.Upgrade.postupgrade)
  + [Aurora PostgreSQL エンジンを新しいメジャーバージョンにアップグレードする](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md#USER_UpgradeDBInstance.Upgrading.Manual)
    + [グローバルデータベースのメジャーアップグレード](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md#USER_UpgradeDBInstance.PostgreSQL.GlobalDB)
+ [マイナーバージョンアップグレードの実行](USER_UpgradeDBInstance.PostgreSQL.MinorUpgrade.md)
  + [マイナーバージョンアップグレードを実行する前に](USER_UpgradeDBInstance.PostgreSQL.MinorUpgrade.md#USER_UpgradeDBInstance.PostgreSQL.BeforeMinor)
  + [マイナーバージョンのアップグレードとパッチの適用方法](USER_UpgradeDBInstance.PostgreSQL.MinorUpgrade.md#USER_UpgradeDBInstance.PostgreSQL.Minor)
  + [マイナーリリースのアップグレードとダウンタイムなしのパッチ適用プロセス](USER_UpgradeDBInstance.PostgreSQL.MinorUpgrade.md#USER_UpgradeDBInstance.PostgreSQL.Minor.zdp)
  + [ダウンタイムのないパッチ適用の制限](USER_UpgradeDBInstance.PostgreSQL.MinorUpgrade.md#USER_UpgradeDBInstance.PostgreSQL.Minor.zdp.limitations)
  + [Aurora PostgreSQL エンジンを新しいマイナーバージョンにアップグレードする](USER_UpgradeDBInstance.PostgreSQL.MinorUpgrade.md#USER_UpgradeDBInstance.MinorUpgrade)
+ [PostgreSQL 拡張機能のアップグレード](USER_UpgradeDBInstance.Upgrading.ExtensionUpgrades.md)
+ [代替のブルー/グリーンのアップグレードテクニック](#USER_UpgradeDBInstance.Upgrading.BlueGreen)

## Aurora PostgreSQL のアップグレードプロセスの概要
<a name="USER_UpgradeDBInstance.PostgreSQL.Overview"></a>

メジャーバージョンとマイナーバージョンのアップグレードの違いは、次のとおりです。

**マイナーバージョンのアップグレードとパッチ**  
マイナーバージョンアップグレードおよびパッチには、既存のアプリケーションとの下位互換性がある変更のみが含まれます。マイナーバージョンのアップグレードとパッチは、Aurora PostgreSQL がテストして承認した後にのみ利用可能になります。  
Aurora は、マイナーバージョンのアップグレードを自動的に適用できます。新しい Aurora PostgreSQL DB クラスターを作成すると、**[マイナーバージョンアップグレードの有効化]** オプションはデフォルトで有効になっています。このオプションをオフにしない限り、スケジュールされたメンテナンス期間中に、マイナーバージョンのアップグレードが Aurora によって自動的に適用されます。自動マイナーバージョンアップグレード (AMVU) オプションと Aurora DB クラスターを使用できるように変更する方法については、「[Aurora DB クラスターのマイナーバージョン自動アップグレード](USER_UpgradeDBInstance.Maintenance.md#Aurora.Maintenance.AMVU)」を参照してください。  
自動マイナーバージョンアップグレードが Aurora PostgreSQL DB クラスターに対して有効になっていない場合、Aurora PostgreSQL は新しいマイナーバージョンに自動的にアップグレードされません。代わりに、AWS リージョン で新しいマイナーバージョンがリリースされ、Aurora PostgreSQL DB クラスターが古いマイナーバージョンを実行している場合、Aurora はアップグレードを要求します。そのためには、クラスターのメンテナンスタスクにレコメンデーションを追加します。  
パッチはアップグレードとはみなされず、自動的には適用されません。Aurora PostgreSQL では、Aurora PostgreSQL DB クラスターのメンテナンスタスクに推奨事項を追加して、パッチを適用するように求められます。詳細については、「[マイナーバージョンのアップグレードとパッチの適用方法](USER_UpgradeDBInstance.PostgreSQL.MinorUpgrade.md#USER_UpgradeDBInstance.PostgreSQL.Minor)」を参照してください。  
セキュリティやその他の重要な問題を解決するパッチも、メンテナンスタスクとして追加されます。ただし、これらのパッチは必須です。保留中のメンテナンスタスクでセキュリティパッチが使用可能になったら、Aurora PostgreSQL DB クラスターにセキュリティパッチを適用してください。  
マイナーバージョンの自動アップグレードは、デフォルトのマイナーバージョンについて実行されます。
アップグレードプロセスでは、クラスター内の各インスタンスが新しいバージョンにアップグレードされる際に、短時間停止する可能性があります。ただし、Aurora PostgreSQL バージョン 14.3.3、13.7.3、12.11.3、11.16.3、10.21.3、およびこれらのマイナーバージョンやより新しいメジャーバージョンのその他のリリース以降では、アップグレードプロセスではゼロダウンタイムパッチ適用 (ZDP) 機能が使用されます。この機能は停止を最小限に抑え、ほとんどの場合は完全に排除します。詳細については、「[マイナーリリースのアップグレードとダウンタイムなしのパッチ適用プロセス](USER_UpgradeDBInstance.PostgreSQL.MinorUpgrade.md#USER_UpgradeDBInstance.PostgreSQL.Minor.zdp)」を参照してください。ZDP でのサポートされている機能と制限の詳細については、「[ダウンタイムのないパッチ適用の制限](USER_UpgradeDBInstance.PostgreSQL.MinorUpgrade.md#USER_UpgradeDBInstance.PostgreSQL.Minor.zdp.limitations)」を参照してください。

**メジャーバージョンのアップグレード**  
マイナーバージョンのアップグレードやパッチとは異なり、Aurora PostgreSQL には自動メジャーバージョンアップグレードオプションはありません。新しいメジャー PostgreSQL バージョンのアップグレードには、既存のアプリケーションとの下位互換性のないデータベースの変更が含まれる場合があります。新しい機能により、既存のアプリケーションが適切に動作しなくなることがあります。  
Aurora PostgreSQL DB クラスター内の DB インスタンスをアップグレードする前に、問題を予防するため、「[本番稼働用の DB クラスターの新しいメジャーバージョンへのアップグレードをテストする](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md#USER_UpgradeDBInstance.PostgreSQL.MajorVersion.Upgrade.preliminary)」で説明している手順に従うことを強くお勧めします。まず、以下の手順に従って、アプリケーションを新しいバージョンで実行できることを確認します。その後、Aurora PostgreSQL DB クラスターを新しいバージョンに手動でアップグレードできます。  
アップグレードプロセスでは、クラスター内のすべてのインスタンスが新しいバージョンにアップグレードされる際に、短時間停止する可能性があります。事前計画プロセスにも時間がかかります。アップグレードタスクは、必ずクラスターのメンテナンス期間中、または運用が最小限のタイミングで実行することをお勧めします。詳細については、「[メジャーバージョンアップグレードの実行](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md)」を参照してください。

**注記**  
マイナーバージョンのアップグレードとメジャーバージョンのアップグレードの両方で、短期間の停止を伴う可能性があります。そのため、メンテナンス期間中、または使用率の低い時間帯にアップグレードを実行またはスケジュールすることを強くお勧めします。

Aurora PostgreSQL DB クラスターでは、オペレーティングシステムの更新が必要になる場合があります。これらのアップデートには glibc ライブラリの新しいバージョンが含まれることがあります。このような更新の際は、「[Aurora PostgreSQL でサポートされる照合。](PostgreSQL-Collations.md)」で説明されているガイドラインに従うことをお勧めします。

# AWS リージョン で使用可能なバージョンのリストを取得します。
<a name="USER_UpgradeDBInstance.PostgreSQL.UpgradeVersion"></a>

次のように、[describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) AWS CLI コマンドを使用して AWS リージョン をクエリすることにより、Aurora PostgreSQL DB クラスターのアップグレードターゲットとして利用可能なすべてのエンジンバージョンのリストを取得できます。

Linux、macOS、Unix の場合:

```
aws rds describe-db-engine-versions \
  --engine aurora-postgresql \
  --engine-version version-number \
  --query 'DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}' \
  --output text
```

Windows の場合:

```
aws rds describe-db-engine-versions ^
  --engine aurora-postgresql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" ^
  --output text
```

例えば、Aurora PostgreSQL バージョン 12.10 DB クラスターの有効なアップグレードターゲットを特定するには、次の AWS CLI のコマンドを実行します。

Linux、macOS、Unix の場合:

```
aws rds describe-db-engine-versions \
  --engine aurora-postgresql \
  --engine-version 12.10 \
  --query 'DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}' \
  --output text
```

Windows の場合:

```
aws rds describe-db-engine-versions ^
  --engine aurora-postgresql ^
  --engine-version 12.10 ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" ^
  --output text
```

以下の表で、さまざまな Aurora PostgreSQL DB バージョンのメジャーバージョンとマイナーバージョンの両方のアップグレードターゲットを確認できます。互換性を維持するために、すべてのバージョンがアップグレードターゲットとして提供されているわけではありません。Aurora PostgreSQL では、四半期ごとのマイナーバージョンリリースごとに新機能とバグ修正が導入されています。Aurora PostgreSQL マイナー リリースの詳細については、「[https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/Welcome.html](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/Welcome.html)」を参照してください。


| 現在のソースバージョン | アップグレードターゲット | 
| --- | --- | 
| 17.7 |  なし  | 
| 17.6 |  [17.7](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version177x)  | 
| 17.5 |  [17.7](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version177x)、1[7.6](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version176x)  | 
| 17.4 |  [17.7](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version177x)、1[7.6、](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version176x)17[.5](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version175x)  | 
| 16.11 |  なし  | 
| 16.10 |  [17.7](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version177x) [16.11](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1611x)  | 
| 16.9 |  [17.7](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version177x) [16.11](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1611x)、1[7.6、](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version176x)16[.10、1](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1610x)7.[5](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version175x)  | 
| 16.8 |  [17.7](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version177x) [16.11](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1611x)、1[7.6、](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version176x)16[.10、1](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1610x)7.[5、17](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version175x).4[、16.](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version174x)9[16.9](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version169x)  | 
| 16.6 |  [17.7](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version177x) [16.11](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1611x)、1[7.6、](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version176x)16[.10、1](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1610x)7.[5、17](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version175x).4[、16.](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version174x)9、[16.8](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version169x), [16.8](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version168x)  | 
| 16.4 |  [17.7](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version177x) [16.11](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1611x)、1[7.6、](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version176x)16[.10、1](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1610x)7.[5、17](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version175x).4[、16.](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version174x)9、[16.8](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version169x)、1[6.6](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version168x), [16.6](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version166x)  | 
| 16.3 |  [17.7](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version177x) [16.11](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1611x)、1[7.6、](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version176x)16[.10、1](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1610x)7.[5、17](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version175x).4[、16.](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version174x)9、[16.8](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version169x)、1[6.6、](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version168x)16[.4](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version166x), [16.4](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version164x)  | 
| 16.2 |  [17.7](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version177x) [16.11](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1611x)、[17.6](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version176x)、[16.10](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1610x)、[17.5](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version175x)、[17.4](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version174x)、[16.9](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version169x)、[16.8](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version168x)、[16.6](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version166x)、[16.4](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version164x)、[16.3](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version163x)  | 
| 16.1 |  [17.7](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version177x) [16.11](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1611x)、[17.6](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version176x)、[16.10](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1610x)、[17.5](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version175x)、[17.4](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version174x)、[16.9](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version169x)、[16.8](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version168x)、[16.6](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version166x)、[16.4](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version164x)、[16.3](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version163x)、[16.2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#AuroraPostgreSQL.Updates.20180305.162X)  | 
| 15.15 |  なし  | 
| 15.14 |  [17.7](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version177x) [16.11](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1611x) [15.15](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1515x)  | 
| 15.13 |  [17.7](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version177x) [16.11](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1611x)、1[5.15、](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1515x)17[.6、1](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version176x)6.[10、15](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1610x).1[4、17.](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1514x)5、[16.9](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version175x), [16.9](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version169x)  | 
| 15.12 |  [17.7](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version177x) [16.11](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1611x)、1[5.15、](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1515x)17[.6、1](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version176x)6.[10、15](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1610x).1[4、15.](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1514x)13[15.13](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1513x)  | 
| 15.10 |  [17.7](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version177x) [16.11](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1611x)、[15.15](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1515x)、[17.6](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version176x)、[16.10](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1610x)、[15.14](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1514x)、[17.5](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version175x)、[17.4](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version174x)、[16.9](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version169x)、[16.8](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version168x)、[15.13](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1513x)  | 
| 15.11 |  [17.7](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version177x) [16.11](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1611x)、[15.15](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1515x)、[17.6](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version176x)、[16.10](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1610x)、[15.14](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1514x)、[17.5](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version175x)、[17.4](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version174x)、[16.9](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version169x)、[16.8](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version168x)、[16.6](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version166x)、[15.13](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1513x)、[15.12](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1512x)  | 
| 14.20 |  なし  | 

検討しているバージョンについて、クラスターの DB インスタンスクラスの可用性を常に確認してください。例えば、`db.r4` は、Aurora PostgreSQL 13 ではサポートされていません。現在、Aurora PostgreSQL DB クラスターで db.r4 インスタンスクラスを使用している場合は、Aurora PostgreSQL 13 にアップグレードする前に、サポートされている DB インスタンスクラスを使用するように変更する必要があります。利用可能な Aurora PostgreSQL DB インスタンスクラス (どれが Graviton2 ベースで、どれが Intel ベースであるかを含む) の詳細については、「[Amazon Aurora DB インスタンスクラス](Concepts.DBInstanceClass.md)」を参照してください。

# メジャーバージョンアップグレードの実行
<a name="USER_UpgradeDBInstance.PostgreSQL.MajorVersion"></a>

メジャーバージョンのアップグレードには、以前のバージョンのデータベースと下位互換性のないデータベースの変更が含まれる可能性があります。新しいバージョンの新機能により、既存のアプリケーションが適切に動作しなくなることがあります。問題を回避するため、Amazon Aurora では、メジャーバージョンアップグレードは自動的に適用されません。むしろ、次の手順を実行して、メジャーバージョンのアップグレードを慎重に計画することをお勧めします。

1. 使用可能なターゲットのリストから必要なメジャーバージョンを、テーブル内のバージョンにリストされているターゲットから選択します。AWS CLI を使うことにより現在のバージョンの AWS リージョン で利用可能なバージョンの正確なリストを入手できます。詳細については、「[AWS リージョン で使用可能なバージョンのリストを取得します。](USER_UpgradeDBInstance.PostgreSQL.UpgradeVersion.md)」を参照してください。

1. 新しいバージョンのトライアルデプロイで、アプリケーションが正常に動作することを確認します。完全なプロセスの詳細については、「[本番稼働用の DB クラスターの新しいメジャーバージョンへのアップグレードをテストする](#USER_UpgradeDBInstance.PostgreSQL.MajorVersion.Upgrade.preliminary)」を参照してください。

1. トライアルデプロイでアプリケーションが正常に動作することを確認したら、クラスターをアップグレードできます。詳細については、「[Aurora PostgreSQL エンジンを新しいメジャーバージョンにアップグレードする](#USER_UpgradeDBInstance.Upgrading.Manual)」を参照してください。

**注記**  
13.6 以降の Babelfish for Aurora PostgreSQL 13 ベースのバージョンから 14.6 以降の Aurora PostgreSQL 14 ベースのバージョンへのメジャーバージョンアップグレードを実行できます。Babelfish for Aurora PostgreSQL 13.4 と 13.5 は、メジャーバージョンアップグレードをサポートしていません。

次のように、[describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) AWS CLI コマンドを使用して AWS リージョン をクエリすることにより、Aurora PostgreSQL DB クラスターのメジャーバージョンアップグレードターゲットとして利用可能なエンジンバージョンのリストを取得できます。

Linux、macOS、Unix の場合:

```
aws rds describe-db-engine-versions \
  --engine aurora-postgresql \
  --engine-version version-number \
  --query 'DBEngineVersions[].ValidUpgradeTarget[?IsMajorVersionUpgrade == `true`].{EngineVersion:EngineVersion}' \
  --output text
```

Windows の場合:

```
aws rds describe-db-engine-versions ^
  --engine aurora-postgresql ^
  --engine-version version-number ^
  --query "DBEngineVersions[].ValidUpgradeTarget[?IsMajorVersionUpgrade == `true`].{EngineVersion:EngineVersion}" ^
  --output text
```

場合によっては、アップグレードするバージョンが現行のバージョンのターゲットではない場合があります。そのような場合は、[versions table](USER_UpgradeDBInstance.PostgreSQL.UpgradeVersion.md#versions-table) の情報を使用して、クラスターがターゲットの行に選択したターゲットを持つバージョンになるまで、マイナーバージョンのアップグレードを実行します。

## 本番稼働用の DB クラスターの新しいメジャーバージョンへのアップグレードをテストする
<a name="USER_UpgradeDBInstance.PostgreSQL.MajorVersion.Upgrade.preliminary"></a>

各新しいメジャーバージョンには、パフォーマンスを向上させるために設計されたクエリオプティマイザの機能強化が含まれています。ただし、ワークロードには、新しいバージョンでプランの実行を低下させるクエリが含まれる場合があります。そのため、本番環境でアップグレードする前に、パフォーマンスをテストして確認することをお勧めします。[メジャーバージョンのアップグレード後の計画の安定性の確保](AuroraPostgreSQL.Optimize.BestPractice.md#AuroraPostgreSQL.Optimize.BestPractice.MajorVersionUpgrade) で説明されているように、クエリプラン管理 (QPM) 拡張機能を使用して、バージョン間でクエリプランの安定性を管理できます。

本番稼働用の Aurora PostgreSQL DB クラスターを新しいメジャーバージョンにアップグレードする前に、アップグレードをテストして、アプリケーションが正常に動作することを確認することを強く推奨します。

1. バージョン互換のパラメータグループを準備します。

   カスタム DB インスタンスまたは DB クラスターパラメータグループを使用している場合は、2 つのオプションから選択できます。

   1. 新しい DB エンジンバージョンのデフォルト DB インスタンス、DB クラスターパラメータグループ、またはその両方を指定します。

   1. 新しい DB エンジンバージョンの独自のカスタムパラメータグループを作成します。

1. 無効なデータベースがないか確認し、存在するデータベースをすべて削除します。

   `pg_database` カタログの `datconnlimit` 列には、`DROP DATABASE` オペレーション中に中断されたデータベースを無効としてマークする `-2` という値が含まれています。次のクエリを使用して、無効なデータベースがあるかどうかをチェックします。

   ```
   SELECT
       datname
   FROM
       pg_database
   WHERE
       datconnlimit = - 2;
   ```

   クエリがデータベース名を返す場合、これらのデータベースは無効です。`DROP DATABASE invalid_db_name` ステートメントを使用して、無効なデータベースを削除します。次の動的ステートメントを使用して、無効なデータベースをすべて削除できます。

   ```
   SELECT
       'DROP DATABASE ' || quote_ident(datname) || ';'
   FROM
       pg_database
   WHERE
       datconnlimit = -2 \gexec
   ```

1. サポートされていない使用の確認
   + アップグレードを試みる前に、すべての準備済みのトランザクションをコミットまたはロールバックします。次のクエリを使用して、開いている準備済みのトランザクションがインスタンスにないことを確認します。

     ```
     SELECT count(*) FROM pg_catalog.pg_prepared_xacts;
     ```
   + アップグレードを試みる前に、使用されているすべての *reg\$1* データ型を削除します。`regtype` と `regclass` を除き、*reg\$1* データ型をアップグレードすることはできません。このデータ型は、pg\$1upgrade ユーティリティ (Amazon Aurora でアップグレードに使用される) で保持することはできません。このユーティリティの詳細については、PostgreSQL のドキュメントの「[pg\$1upgrade](https://www.postgresql.org/docs/current/pgupgrade.html)」を参照してください。

     サポートされていない *reg\$1* データ型が使用されていないことを確認するには、データベースごとに次のクエリを使用します。

     ```
     SELECT count(*) FROM pg_catalog.pg_class c, pg_catalog.pg_namespace n, pg_catalog.pg_attribute a 
       WHERE c.oid = a.attrelid 
           AND NOT a.attisdropped 
           AND a.atttypid IN ('pg_catalog.regproc'::pg_catalog.regtype, 
                              'pg_catalog.regprocedure'::pg_catalog.regtype, 
                              'pg_catalog.regoper'::pg_catalog.regtype, 
                              'pg_catalog.regoperator'::pg_catalog.regtype, 
                              'pg_catalog.regconfig'::pg_catalog.regtype, 
                              'pg_catalog.regdictionary'::pg_catalog.regtype) 
           AND c.relnamespace = n.oid 
           AND n.nspname NOT IN ('pg_catalog', 'information_schema');
     ```
   + `pgRouting` 拡張機能がインストールされている Aurora PostgreSQL バージョン 10.18 以上の DB クラスターをアップグレードする場合には、バージョン 12.4 以上にアップグレードする前に拡張機能を削除してください。

     拡張子 `pg_repack` バージョン 1.4.3 がインストールされている Aurora PostgreSQL 10.x バージョンをアップグレードする場合には、より高いバージョンにアップグレードする前に拡張子を削除してください。

1. template1 と template0 のデータベースを確認してください。

   アップグレードを成功させるには、テンプレート 1 とテンプレート 0 のデータベースが存在し、テンプレートとしてリストされている必要があります。これをチェックするには、次のコマンドを使用します。

   ```
   SELECT datname, datistemplate FROM pg_database; 
                           
   datname    | datistemplate
   -----------+---------------
   template0  | t
   rdsadmin   | f
   template1  | t
   postgres   | f
   ```

   コマンド出力では、template1 データベースと template0  データベースの `datistemplate` 値は、`t` でなければなりません。

1. 論理的なレプリケーションスロットを削除します。

   Aurora PostgreSQL DB クラスターがいずれかの論理レプリケーションスロットを使用している場合は、アップグレードプロセスを続行できません。論理レプリケーションスロットは通常、AWS DMS を使用したデータの移行、またはデータベースからデータレイク、BI ツール、およびその他のターゲットへのテーブルのレプリケートなどの短期のデータの移行タスクに使用されます。アップグレードする前に、既存の論理レプリケーションスロットの目的を確認し、削除しても問題ないことを確認してください。次のクエリを使用して論理レプリケーションスロットを確認できます。

   ```
   SELECT * FROM pg_replication_slots;
   ```

   論理レプリケーションスロットがまだ使用されている場合は、それらを削除しないでください。また、その場合、アップグレードを続行することはできません。ただし、論理レプリケーションスロットが不要な場合は、次の SQL を使用して削除できます。

   ```
   SELECT pg_drop_replication_slot(slot_name);
   ```

   `pglogical` 拡張機能を使用するロジカルレプリケーションシナリオでも、パブリッシャーノードでメジャーバージョンアップグレードを正常に行うには、パブリッシャーノードからスロットを削除する必要があります。ただし、アップグレード後にサブスクライバーノードからレプリケーションプロセスを再開できます。詳細については、「[メジャーアップグレード後の論理レプリケーションの再確立](Appendix.PostgreSQL.CommonDBATasks.pglogical.recover-replication-after-upgrade.md)」を参照してください。

1. バックアップを実行します。

   アップグレードプロセスでは、アップグレード中に DB クラスターのスナップショットが作成されます。アップグレードプロセスの前に手動でもバックアップを行う場合の詳細については、「[DB クラスタースナップショットの作成](USER_CreateSnapshotCluster.md)」を参照してください。

1. メジャーバージョンアップグレードを実行する前に、特定の拡張機能を、利用可能な最新バージョンにアップグレードします。更新する拡張機能は以下のとおりです。
   + `pgRouting`
   + `postgis_raster`
   + `postgis_tiger_geocoder`
   + `postgis_topology`
   + `address_standardizer`
   + `address_standardizer_data_us`

   現在インストールされている拡張機能ごとに以下のコマンドを実行します。

   ```
   ALTER EXTENSION PostgreSQL-extension UPDATE TO 'new-version';
   ```

   詳細については、「[PostgreSQL 拡張機能のアップグレード](USER_UpgradeDBInstance.Upgrading.ExtensionUpgrades.md)」を参照してください。PostGIS のアップグレードの詳細については、「[ステップ 6: PostGIS 拡張機能を更新する](Appendix.PostgreSQL.CommonDBATasks.PostGIS.md#Appendix.PostgreSQL.CommonDBATasks.PostGIS.Update)」を参照してください。

1. バージョン 11.x にアップグレードする場合は、メジャーバージョンアップグレードを実行する前に、サポートされていない拡張機能を削除してください。削除する拡張機能は以下のとおりです。
   + `chkpass`
   + `tsearch2` 

1. ターゲットバージョンに応じて、`unknown` データ型を削除します。

   PostgreSQL バージョン 10 では、`unknown` データ型をサポートしていません。バージョン 9.6 のデータベースで `unknown` データ型を使用している場合、バージョン 10 にアップグレードすると次のようなエラーメッセージが表示されます。

   ```
   Database instance is in a state that cannot be upgraded: PreUpgrade checks failed: 
   The instance could not be upgraded because the 'unknown' data type is used in user tables. 
   Please remove all usages of the 'unknown' data type and try again."
   ```

   データベース内の `unknown` データ型を検索して、対象の列を削除したり、サポートされているデータ型に変更したりするには、各データベースに次の SQL コードを使用します。

   ```
   SELECT n.nspname, c.relname, a.attname
       FROM pg_catalog.pg_class c,
       pg_catalog.pg_namespace n,
       pg_catalog.pg_attribute a
       WHERE c.oid = a.attrelid AND NOT a.attisdropped AND
       a.atttypid = 'pg_catalog.unknown'::pg_catalog.regtype AND
       c.relkind IN ('r','m','c') AND
       c.relnamespace = n.oid AND
       n.nspname !~ '^pg_temp_' AND
       n.nspname !~ '^pg_toast_temp_' AND n.nspname NOT IN ('pg_catalog', 'information_schema');
   ```

1. リハーサルのアップグレードを実行します。

   プロダクションデータベースのアップグレードを試みる前に、プロダクションデータベースの複製でメジャーバージョンアップグレードをテストすることを強くお勧めします。複製されたテストインスタンスの実行計画を監視して、実行計画のリグレッションが発生していないかどうかを確認し、そのパフォーマンスを評価できます。テスト用の複製のインスタンスを作成するには、最新のスナップショットからデータベースを復元するか、データベースのクローンを作成します。詳細については、「[スナップショットからの復元](aurora-restore-snapshot.md#aurora-restore-snapshot.Restoring)」または「[Amazon Aurora DB クラスターのボリュームのクローン作成](Aurora.Managing.Clone.md)」を参照してください。

   詳細については、「[Aurora PostgreSQL エンジンを新しいメジャーバージョンにアップグレードする](#USER_UpgradeDBInstance.Upgrading.Manual)」を参照してください。

1. プロダクションインスタンスをアップグレードします。

   リハーサルのメジャーバージョンアップグレードが成功したら、安心してプロダクションデータベースをアップグレードできます。詳細については、「[Aurora PostgreSQL エンジンを新しいメジャーバージョンにアップグレードする](#USER_UpgradeDBInstance.Upgrading.Manual)」を参照してください。

   
**注記**  
Aurora PostgreSQL は、アップグレードプロセス中に DB クラスターのスナップショットを取得します。このプロセス中、クラスターのポイントインタイム復元を実行することはできません。アップグレードのスタート前およびインスタンスの自動スナップショットの完了後に、後からポイントインタイムの復元を実行できます。ただし、以前のマイナーバージョンのポイントインタイム復元を実行することはできません。

   進行中のアップグレードについては、Amazon RDS を使用して、pg\$1upgrade ユーティリティで生成される 2 つのログを表示することができます。表示できるのは `pg_upgrade_internal.log` および `pg_upgrade_server.log` です。これらのログのファイル名には、Amazon Aurora によりタイムスタンプが追加されます。これらのログも、他のログと同様、表示できます。詳細については、「[Amazon Aurora ログファイルのモニタリング](USER_LogAccess.md)」を参照してください。

1. PostgreSQL の拡張機能をアップグレードします。PostgreSQL のアップグレードプロセスでは、PostgreSQL の拡張機能はアップグレードされません。詳細については、「[PostgreSQL 拡張機能のアップグレード](USER_UpgradeDBInstance.Upgrading.ExtensionUpgrades.md)」を参照してください。

## アップグレード後の推奨事項
<a name="USER_UpgradeDBInstance.PostgreSQL.MajorVersion.Upgrade.postupgrade"></a>

メジャーバージョンアップグレードが完了したら、以下のことをお勧めします。
+ `ANALYZE` 操作を実行して `pg_statistic` テーブルを更新します。これは、すべての PostgreSQL DB インスタンスのすべてのデータベースに対して行う必要があります。Optimizer の統計情報はメジャーバージョンのアップグレード中には転送されないため、パフォーマンスの問題を回避するためにすべての統計情報を再生成する必要があります。次のようにパラメータを指定せずにコマンドを実行して、現在のデータベース内のすべての標準テーブルの統計情報を生成します。

  ```
  ANALYZE VERBOSE;
  ```

  `VERBOSE` フラグはオプションですが、使用することで進行状況を表示できます。詳細については、「PostgreSQL ドキュメント」の「[ANALYZE](https://www.postgresql.org/docs/10/sql-analyze.html)」を参照してください。

  ANALYZE VERBOSE を使用する代わりに特定のテーブルを分析する場合は、次のようにテーブルごとに ANALYZE コマンドを実行します。

  ```
  ANALYZE table_name;
  ```

  パーティションテーブルの場合は、常に親テーブルを分析します。このプロセスでは、以下の操作を行います。
  + すべてのパーティションにわたって行を自動的にサンプリングする
  + パーティションごとに統計を再帰的に更新する
  + 重要な計画統計を親レベルで維持する

  親テーブルには実際のデータは保存されませんが、クエリの最適化には親テーブルの分析が不可欠です。個々のパーティションに対してのみ ANALYZE を実行すると、効率的なパーティション間計画に必要な包括的な統計をオプティマイザで利用できないため、クエリパフォーマンスが低下する可能性があります。
**注記**  
パフォーマンスの問題を回避するため、アップグレード後にシステムで ANALYZE を実行してください。
+ PostgreSQL バージョン 10 にアップグレードした場合は、使用しているハッシュインデックスで `REINDEX` を実行してください。ハッシュインデックスはバージョン 10 で変更されたため、再構築する必要があります。無効なハッシュインデックスを見つけるには、ハッシュインデックスを含む各データベースに対して次の SQL を実行します。

  ```
  SELECT idx.indrelid::regclass AS table_name, 
     idx.indexrelid::regclass AS index_name 
  FROM pg_catalog.pg_index idx
     JOIN pg_catalog.pg_class cls ON cls.oid = idx.indexrelid 
     JOIN pg_catalog.pg_am am ON am.oid = cls.relam 
  WHERE am.amname = 'hash' 
  AND NOT idx.indisvalid;
  ```
+ アップグレードしたデータベースで同様のワークロードでアプリケーションをテストして、すべてが期待どおりに機能することを確認することをお勧めします。アップグレードが確認されたら、このテストインスタンスを削除できます。

## Aurora PostgreSQL エンジンを新しいメジャーバージョンにアップグレードする
<a name="USER_UpgradeDBInstance.Upgrading.Manual"></a>

新しいメジャーバージョンへのアップグレードプロセスを開始するとき、Aurora PostgreSQL はクラスターに変更を加える前に Aurora DB クラスターのスナップショットを取得します。このスナップショットは、メジャーバージョンのアップグレード用にのみ作成され、マイナーバージョンのアップグレードでは作成されません。アップグレードプロセスが完了すると、このスナップショットは、RDS コンソールの**スナップショット**にリストされている手動スナップショットの中に表示されています。次の例のように、スナップショット名には、プレフィックス、Aurora PostgreSQL DB クラスターの名前、ソースバージョン、ターゲットバージョン、日付とタイムスタンプとして `preupgrade` が含まれます。

```
preupgrade-docs-lab-apg-global-db-12-8-to-13-6-2022-05-19-00-19
```

アップグレードの完了後、Aurora が作成して手動スナップショットリストに保存したスナップショットを使用して、必要に応じて DB クラスターを以前のバージョンに復元できます。

**ヒント**  
一般に、スナップショットは Aurora DB クラスターをさまざまな時点に復元するためのさまざまな方法を提供します。詳細については、「[DB クラスタースナップショットからの復元](aurora-restore-snapshot.md)」および「[DB クラスターを指定の時点の状態に復元する](aurora-pitr.md)」を参照してください。ただし、Aurora PostgreSQL は、以前のマイナーバージョンに復元するためのスナップショットを使用をサポートしていません。

メジャーバージョンのアップグレードプロセス中には、Aurora によってボリュームが割り当てられ、ソース Aurora PostgreSQL DB クラスターのクローンが作成されます。アップグレードが何らかの理由で失敗した場合、Aurora PostgreSQL はクローンを使用してアップグレードをロールバックします。ソースのボリュームのクローンが 15 個より多く割り当てられた後、後続のクローンはフルコピーになり、時間がかかります。これにより、アップグレードプロセスにかかる時間が延びる場合があります。Aurora PostgreSQL でアップグレードがロールバックされる場合は、次の点に注意してください。
+ アップグレード中に割り当てられたクローンボリューム、およびその元となったボリュームの両方について、請求情報とメトリクスが表示される可能性があります。クラスターのバックアップ保持期間がアップグレードの時間を超えた時点で、Aurora PostgreSQL は余分なボリュームをクリーンアップします。
+ そのクラスターの次のクロスリージョンスナップショットコピーは、増分コピーではなく、フルコピーになります。

クラスターを構成する DB インスタンスを安全にアップグレードするために、Aurora PostgreSQL では pg\$1upgrade ユーティリティを使用します。ライターのアップグレードが完了すると、各リーダーインスタンスは新しいメジャーバージョンにアップグレードされている間、短時間停止します。この PostgreSQL ユーティリティの詳細については、PostgreSQL のドキュメントの「[pg\$1upgrade](https://www.postgresql.org/docs/current/pgupgrade.html)」を参照してください。

AWS マネジメントコンソール、AWS CLI、または RDS API を使用することにより、Aurora PostgreSQL DB クラスターを新しいバージョンにアップグレードできます。

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

**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.Upgrading.Manual.CLI"></a>

DB クラスターのエンジンバージョンをアップグレードするには、CLI の [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) AWS CLI コマンドを使用します。以下のパラメータを指定します。
+ `--db-cluster-identifier` - DB クラスターの名前。
+ `--engine-version` - アップグレード先のデータベースエンジンのバージョン番号です。有効なエンジンバージョンの詳細については、AWS CLI の [describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) コマンドを参照してください。
+ `--allow-major-version-upgrade` - `--engine-version` パラメータが DB クラスターの現在のメジャーバージョンとは異なるメジャーバージョンである場合に必須のフラグです。
+ `--no-apply-immediately` ​- 次のメンテナンス時間中に変更を適用します。今すぐ変更を適用するには、`--apply-immediately` を使用します。

**Example**  
Linux、macOS、Unix の場合:  

```
1. aws rds modify-db-cluster \
2.     --db-cluster-identifier mydbcluster \
3.     --engine-version new_version \
4.     --allow-major-version-upgrade \
5.     --no-apply-immediately
```
Windows の場合:  

```
1. aws rds modify-db-cluster ^
2.     --db-cluster-identifier mydbcluster ^
3.     --engine-version new_version ^
4.     --allow-major-version-upgrade ^
5.     --no-apply-immediately
```

### RDS API
<a name="USER_UpgradeDBInstance.Upgrading.Manual.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) オペレーションを使用します。
+ `AllowMajorVersionUpgrade` - `EngineVersion` パラメータが DB クラスターの現在のメジャーバージョンとは異なるメジャーバージョンである場合に必須のフラグです。
+ `ApplyImmediately` - 変更をすぐに適用するか、次のメンテナンスウィンドウ中に適用するかを指定します。今すぐ変更を適用するには、値を `true` に設定します。次のメンテナンスウィンドウ中に変更を適用するには、値を `false` に設定します。

### グローバルデータベースのメジャーアップグレード
<a name="USER_UpgradeDBInstance.PostgreSQL.GlobalDB"></a>

Aurora グローバルデータベースクラスターの場合、アップグレードプロセスは Aurora グローバルデータベースを構成するすべての DB クラスターを同時にアップグレードします。これは、それぞれが同じ Aurora PostgreSQL バージョンを実行するようにするためです。また、システムテーブル、データファイル形式などの変更が、すべてのセカンダリクラスターに自動的にレプリケートされます。

グローバルデータベースクラスターを Aurora PostgreSQL の新しいメジャーバージョンにアップグレードするには、「[本番稼働用の DB クラスターの新しいメジャーバージョンへのアップグレードをテストする](#USER_UpgradeDBInstance.PostgreSQL.MajorVersion.Upgrade.preliminary)」で説明されているように、アップグレードされたバージョンでアプリケーションをテストすることをお勧めします。[本番稼働用の DB クラスターの新しいメジャーバージョンへのアップグレードをテストする](#USER_UpgradeDBInstance.PostgreSQL.MajorVersion.Upgrade.preliminary) の [step 1.](#step-1) に詳述されているとおり、アップグレードの前に、Aurora グローバルデータベースの各 AWS リージョン に対して DB クラスターパラメータグループと DB パラメータグループの設定を必ず準備してください。

Aurora PostgreSQL グローバルデータベースクラスターに、`rds.global_db_rpo` パラメータに目標復旧時点 (RPO) が設定されている場合、アップグレードする前にパラメータをリセットしてください。RPO がオンになっている場合、メジャーバージョンのアップグレードプロセスは機能しません。デフォルトでは、このパラメータがオフになっています。Aurora PostgreSQL グローバルデータベースおよび RPO の詳細については、「[Aurora PostgreSQL- ベースのグローバルデータベースの RPO (目標復旧時点) 管理](aurora-global-database-disaster-recovery.md#aurora-global-database-manage-recovery)」を参照してください。

新しいバージョンの試用版デプロイでアプリケーションが正常に実行できることを確認した場合は、アップグレードプロセスを開始できます。これを行うには、「[Aurora PostgreSQL エンジンを新しいメジャーバージョンにアップグレードする](#USER_UpgradeDBInstance.Upgrading.Manual)」を参照してください。次の画像のように、RDS コンソールの **[Databases]** (データベース) リストから最上位の項目 **[Global database]** (グローバルデータベース) を必ず選択してください。

![\[Aurora グローバルデータベース、Aurora Serverless DB クラスターおよび別の Aurora PostgreSQL DB クラスターを示すコンソール画像\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/images/aurora-global-database-plus-other.png)


他の変更と同様に、プロンプトが表示されたらプロセスの続行を確認できます。

![\[Aurora PostgreSQL DB クラスターのアップグレードプロセスを確認するためのプロンプトを示すコンソール画像\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/images/aurora-global-db-apg-upgrade-2.png)


アップグレードプロセスの開始には、コンソールの代わりに AWS CLI または RDS API を使用できます。コンソールと同様、次のように、Aurora グローバルデータベースクラスターの構成要素ではなく、Aurora グローバルデータベースクラスターを操作します。
+ [modify-global-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-global-cluster.html) AWS CLI コマンドを使用し、AWS CLI を使うことにより、Aurora グローバルデータベースのアップグレードを開始します。
+ [ModifyGlobalCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyGlobalCluster.html) API を使用して、アップグレードを開始します。

# マイナーバージョンアップグレードの実行
<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` に設定します。

# PostgreSQL 拡張機能のアップグレード
<a name="USER_UpgradeDBInstance.Upgrading.ExtensionUpgrades"></a>

Aurora PostgreSQL DB クラスターを新しいメジャーバージョンまたはマイナーバージョンにアップグレードしても、PostgreSQL 拡張機能が同時にアップグレードされるわけではありません。ほとんどの拡張機能については、メジャーバージョンまたはマイナーバージョンのアップグレード完了後にアップグレードします。ただし、場合によっては、Aurora PostgreSQL DB エンジンをアップグレードする前に拡張機能をアップグレードすることもあります。詳細については、[本番稼働用の DB クラスターの新しいメジャーバージョンへのアップグレードをテストする](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md#USER_UpgradeDBInstance.PostgreSQL.MajorVersion.Upgrade.preliminary)の「[list of extensions to update](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md#upgrade-extensions)」を参照してください。

PostgreSQL 拡張機能をインストールするには、`rds_superuser` 権限が必要です。通常、特定の拡張機能の管理を容易にするために、`rds_superuser` が特定の拡張機能に対する権限を関連するユーザー (ロール) に委任します。つまり、Aurora PostgreSQL DB クラスター内のすべての拡張機能をアップグレードするタスクには、さまざまなユーザー (ロール) が含まれる可能性があります。スクリプトを使用してアップグレードプロセスを自動化する場合も、この点に注意してください。PostgreSQL の権限とロールの詳細については、「[Amazon Aurora PostgreSQL でのセキュリティ](AuroraPostgreSQL.Security.md)」を参照してください。

**注記**  
PostGIS 拡張機能の更新については、「[PostGIS 拡張機能を使用した空間データの管理](Appendix.PostgreSQL.CommonDBATasks.PostGIS.md) ([ステップ 6: PostGIS 拡張機能を更新する](Appendix.PostgreSQL.CommonDBATasks.PostGIS.md#Appendix.PostgreSQL.CommonDBATasks.PostGIS.Update))」を参照してください。  
`pg_repack` 拡張機能を更新する場合、拡張機能をドロップしてアップグレードされた DB インスタンスに新しいバージョンを作成します。詳細については、「`pg_repack` ドキュメント」の「[pg\$1repack installation](https://reorg.github.io/pg_repack/)」(pg\$1repack のインストール) を参照してください。

エンジンのアップグレード後に拡張機能を更新するには、`ALTER EXTENSION UPDATE` コマンドを使用します。

```
ALTER EXTENSION extension_name UPDATE TO 'new_version';
```

現在インストールされている拡張機能を一覧表示するには、次のコマンドで PostgreSQL の [pg\$1extension](https://www.postgresql.org/docs/current/catalog-pg-extension.html) カタログを使用します。

```
SELECT * FROM pg_extension;
```

インストールで使用可能な特定の拡張機能バージョンのリストを表示するには、次のコマンドで PostgreSQL の [pg\$1available\$1extension\$1versions](https://www.postgresql.org/docs/current/view-pg-available-extension-versions.html) ビューを使用します。

```
SELECT * FROM pg_available_extension_versions;
```

## 代替のブルー/グリーンのアップグレードテクニック
<a name="USER_UpgradeDBInstance.Upgrading.BlueGreen"></a>

状況によっては、古いクラスターからアップグレードされたクラスターへの即時の切り替えが最優先事項です。このような場合、古いクラスターと新しいクラスターを並べて実行するマルチステッププロセスを使用できます。ここでは、新しいクラスターが引き継ぐ準備ができるまで、古いクラスターから新しいクラスターにデータをレプリケートします。詳細については、[データベース更新のために Amazon Aurora ブルー/グリーンデプロイを使用する](blue-green-deployments.md) を参照してください