

# DB インスタンスのエンジンバージョンのアップグレード
<a name="USER_UpgradeDBInstance.Upgrading"></a>

Amazon RDS では、サポート対象の各データベースエンジンの新しいバージョンを提供しているため、DB インスタンスを最新の状態に維持することができます。新しいバージョンには、データベースエンジンのバグ修正、セキュリティの強化、およびその他の改善が含まれます。Amazon RDS がデータベースエンジンの新しいバージョンをサポートすると、DB インスタンスをアップグレードする方法とタイミングを選択できます。

アップグレードには、メジャーバージョンのアップグレードとマイナーバージョンのアップグレードの 2 種類があります。一般的に、*メジャーエンジンバージョンのアップグレード*は、既存のアプリケーションと互換性のない変更を導入する場合があります。それに対して、*マイナーバージョンのアップグレード*には、既存のアプリケーションとの下位互換性がある変更のみが含まれます。

マルチ AZ DB クラスターの場合、RDS for PostgreSQL のみがサポートされています。マイナーバージョンアップグレードは、マルチ AZ DB クラスターをサポートするすべてのエンジンでサポートされています。詳細については、「[Amazon RDS のマルチ AZ DB クラスターのエンジンバージョンのアップグレード](multi-az-db-clusters-upgrading.md)」を参照してください。

バージョン番号付けの順序は、各データベースエンジンに固有です。例えば、RDS for MySQL 5.7 および 8.0 は、メジャーエンジンバージョンで、5.7 から 8.0 バージョンへのアップグレードは、メジャーバージョンのアップグレードです。RDS for MySQL 5.7.22 および 5.7.23 は、マイナーエンジンバージョンで、5.7.22 から 5.7.23 へのアップグレードは、マイナーバージョンのアップグレードです。

**重要**  
DB インスタンスをアップグレードしているときは、変更できません。アップグレード中、DB インスタンスのステータスは `upgrading` です。

特定の DB エンジンのメジャーバージョンおよびマイナーバージョンのアップグレードの詳細については、以下の DB エンジンに関するドキュメントを参照してください。
+ [MariaDB DB エンジンのアップグレード](USER_UpgradeDBInstance.MariaDB.md)
+ [Microsoft SQL Server DB エンジンのアップグレード](USER_UpgradeDBInstance.SQLServer.md)
+ [RDS for MySQL DB エンジンのアップグレード](USER_UpgradeDBInstance.MySQL.md)
+ [RDS for Oracle DB エンジンのアップグレード](USER_UpgradeDBInstance.Oracle.md)
+ [RDS for PostgreSQL DB エンジンのアップグレード](USER_UpgradeDBInstance.PostgreSQL.md)

メジャーバージョンのアップグレードの場合は、AWS マネジメントコンソール、AWS CLI、または RDS API を通じて、DB エンジンバージョンを手動で変更する必要があります。マイナーバージョンのアップグレードの場合は、エンジンバージョンを手動で変更することも、**マイナーバージョン自動アップグレード**オプションを有効にすることもできます。

**注記**  
データベースエンジンをアップグレードするには、ダウンタイムが必要です。ブルー/グリーンデプロイを使用することで、DB インスタンスのアップグレードに必要なダウンタイムを最小限に抑えることができます。詳細については、「[データベース更新のために Amazon RDS ブルー/グリーンデプロイを使用する](blue-green-deployments.md)」を参照してください。

**Topics**
+ [

## エンジンバージョンの手動アップグレード
](#USER_UpgradeDBInstance.Upgrading.Manual)
+ [

## マイナーエンジンバージョンの自動アップグレード
](#USER_UpgradeDBInstance.Upgrading.AutoMinorVersionUpgrades)

## エンジンバージョンの手動アップグレード
<a name="USER_UpgradeDBInstance.Upgrading.Manual"></a>

DB インスタンスのエンジンバージョンを手動でアップグレードするには、AWS マネジメントコンソール、AWS CLI または RDS API を使用することができます。

### コンソール
<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**] を選択します。**Modify DB instance** ページが表示されます。

1. [**DB engine version**] で、新しいバージョンを選択します。

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

1. アップグレードをスケジュールするタイミングを決定します。
   + 変更を保留中の変更キューに入れるには、**[次の定期メンテナンス期間中に適用]** を選択します。次回のメンテナンスウィンドウで、RDS は、キュー内のすべての保留中の変更を適用します。
   + 変更をすぐに反映させるには、[**Apply immediately**] を選択します。このオプションを選択すると、停止状態になる場合があります。詳細については、「[スケジュール変更設定の使用](USER_ModifyInstance.ApplyImmediately.md)」を参照してください。

1. 確認ページで、変更内容を確認します。正しい場合は、[**Modify DB Instance (DB インスタンスを変更)**] を選択して変更を保存します。

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

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

DB インスタンスのエンジンバージョンをアップグレードするには、CLI の [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) コマンドを使用します。以下のパラメータを指定します。
+ `--db-instance-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` – メジャーバージョンをアップグレードします。
+ `--no-apply-immediately` ​– 次のメンテナンス時間中に変更を適用します。今すぐ変更を適用するには、`--apply-immediately` を使用します。

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

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

```
1. aws rds modify-db-instance ^
2.     --db-instance-identifier mydbinstance ^
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 インスタンスのエンジンバージョンをアップグレードするには、[ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) アクションを使用します。以下のパラメータを指定します。
+ `DBInstanceIdentifier` – DB インスタンスの名前、例えば *`mydbinstance`* です。
+ `EngineVersion` – アップグレード先のデータベースエンジンのバージョン番号です。有効なエンジンバージョンについては、[DescribeDBEngineVersions](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBEngineVersions.html) オペレーションを使用します。
+ `AllowMajorVersionUpgrade` – メジャーバージョンのアップグレードを許可するかどうか。そのためには、値を `true` に設定します。
+ `ApplyImmediately` – 変更をすぐに適用するか、次のメンテナンスウィンドウ中に適用するかを指定します。今すぐ変更を適用するには、値を `true` に設定します。次のメンテナンスウィンドウ中に変更を適用するには、値を `false` に設定します。

## マイナーエンジンバージョンの自動アップグレード
<a name="USER_UpgradeDBInstance.Upgrading.AutoMinorVersionUpgrades"></a>

マイナーバージョン自動アップグレードは、データベースを定期的に最新のデータベースエンジンのバージョンに更新します。ただし、アップグレードに最新のデータベースエンジンのバージョンが含まれているとは限りません。特定の時間に特定のバージョンでデータベースを維持する必要がある場合は、必要なスケジュールに従って必要なデータベースのバージョンに手動でアップグレードすることをお勧めします。重大なセキュリティ問題が発生した場合、またはバージョンがサポート終了日に達すると、マイナーバージョン自動アップグレードオプションを有効にしていない場合でも、Amazon RDS は**マイナーバージョン自動アップグレード**を適用することがあります。詳細については、お使いのデータベースエンジンのアップグレードドキュメントを参照してください。
+ [RDS for PostgreSQL のマイナーバージョンの自動アップグレード](USER_UpgradeDBInstance.PostgreSQL.Minor.md)
+ [RDS for MySQL のマイナーバージョンの自動アップグレード](USER_UpgradeDBInstance.MySQL.Minor.md)
+ [RDS for MariaDB のマイナーバージョンの自動アップグレード](USER_UpgradeDBInstance.MariaDB.Minor.md)
+ [Oracle のマイナーバージョンのアップグレード](USER_UpgradeDBInstance.Oracle.Minor.md)
+ [Microsoft SQL Server DB エンジンのアップグレード](USER_UpgradeDBInstance.SQLServer.md)
+ [Amazon RDS での Db2 のバージョン](Db2.Concepts.VersionMgmt.md)

**Topics**
+ [

### 自動マイナーバージョンアップグレードの仕組み
](#USER_UpgradeDBInstance.Upgrading.scheduled)
+ [

### 自動マイナーバージョンアップグレードの実行
](#USER_UpgradeDBInstance.Upgrading.turning-on-automatic)
+ [

### メンテナンスアップデートの提供状況を確認する
](#USER_UpgradeDBInstance.Upgrading.availability)
+ [

### 自動マイナーバージョンアップグレードの対象を検索する
](#USER_UpgradeDBInstance.Upgrading.targets)

### 自動マイナーバージョンアップグレードの仕組み
<a name="USER_UpgradeDBInstance.Upgrading.scheduled"></a>

*アップグレードターゲット*は、Amazon RDS がデータベースをアップグレードする DB エンジンバージョンです。マイナーエンジンバージョンは、次の条件が満たされた場合にアップグレードターゲットとして指定されます。
+ データベースは、ターゲットマイナーエンジンバージョンより低い DB エンジンのマイナーバージョンを実行中です。

  DB インスタンスの現在のエンジンバージョンは、データベース詳細ページの **[設定]** タブで、または CLI コマンド `describe-db-instances` を実行することで確認できます。
+ データベースは、自動マイナーバージョンアップグレードを有効にしています。

RDS では、メンテナンスウィンドウ中にアップグレードが自動で実行されるようスケジュールされます。アップグレード中、RDS は以下を実行します。

1. システムの事前チェックを実行して、データベースが正常でアップグレードの準備ができていることを確認する

1. DB エンジンをターゲットのマイナーエンジンバージョンにアップグレードする

1. アップグレード後のチェックを実行する

1. データベースのアップグレードを完了とマークする

自動アップグレードにはダウンタイムが伴います。ダウンタイムの長さは、DB エンジンの種類やデータベースのサイズなど、さまざまな要因によって異なります。

### 自動マイナーバージョンアップグレードの実行
<a name="USER_UpgradeDBInstance.Upgrading.turning-on-automatic"></a>

以下のタスクを実行すると、DB インスタンスのマイナーバージョン自動アップグレードを有効にするかどうかを制御できます。
+ [DB インスタンスの作成](USER_CreateDBInstance.md)
+ [DB インスタンスを変更する](Overview.DBInstance.Modifying.md)
+ [リードレプリカの作成](USER_ReadRepl.Create.md)
+ [スナップショットからの DB インスタンスの復元](USER_RestoreFromSnapshot.md)
+ [特定の時点への DB インスタンスの復元](USER_PIT.md)
+ [Amazon S3 からの DB インスタンのインポート](MySQL.Procedural.Importing.md) (Amazon S3 の MySQL バックアップの場合)

これらのタスクを実行すると、次の方法で DB インスタンスのマイナーバージョン自動アップグレードを有効にするかどうかを制御できます。
+ コンソールを使用して、[**マイナーバージョン自動アップグレード**] を設定します。
+ AWS CLI を使用して、`--auto-minor-version-upgrade|--no-auto-minor-version-upgrade` オプションを設定します。
+ RDS API を使用して、`AutoMinorVersionUpgrade` パラメータを設定します。

### メンテナンスアップデートの提供状況を確認する
<a name="USER_UpgradeDBInstance.Upgrading.availability"></a>

DB エンジンバージョンのアップグレードなど、メンテナンス更新が DB インスタンスで利用可能かどうかを確認するには、コンソール、AWS CLI、または RDS API を使用できます。DB エンジンバージョンを手動でアップグレードして、メンテナンス期間を調整することもできます。詳細については、「[DB インスタンスのメンテナンス](USER_UpgradeDBInstance.Maintenance.md)」を参照してください。

### 自動マイナーバージョンアップグレードの対象を検索する
<a name="USER_UpgradeDBInstance.Upgrading.targets"></a>

次の AWS CLI コマンドを使用すると、特定の AWS リージョン で指定されたマイナー DB エンジンバージョンの自動マイナーアップグレードターゲットの現在のバージョンを確認できます。[CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) の `Engine` パラメータの説明で、このコマンドに使用可能な `--engine` 値を見つけることができます。

Linux、macOS、Unix の場合:

```
aws rds describe-db-engine-versions \
--engine engine \
--engine-version minor-version \
--region region \
--query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" \
--output text
```

Windows の場合:

```
aws rds describe-db-engine-versions ^
--engine engine ^
--engine-version minor-version ^
--region region ^
--query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" ^
--output text
```

例えば、次のAWS CLIコマンドにより、米国東部 (オハイオ)AWSリージョン (us-east-2) の MySQL マイナーバージョン 8.0.11 の自動マイナーアップグレードターゲットを特定できます。

Linux、macOS、Unix の場合:

```
aws rds describe-db-engine-versions \
--engine mysql \
--engine-version 8.0.11 \
--region us-east-2 \
--query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" \
--output table
```

Windows の場合:

```
aws rds describe-db-engine-versions ^
--engine mysql ^
--engine-version 8.0.11 ^
--region us-east-2 ^
--query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" ^
--output table
```

以下のような出力が生成されます。

```
----------------------------------
|    DescribeDBEngineVersions    |
+--------------+-----------------+
|  AutoUpgrade |  EngineVersion  |
+--------------+-----------------+
|  False       |  8.0.15         |
|  False       |  8.0.16         |
|  False       |  8.0.17         |
|  False       |  8.0.19         |
|  False       |  8.0.20         |
|  False       |  8.0.21         |
|  True        |  8.0.23         |
|  False       |  8.0.25         |
+--------------+-----------------+
```

この例では、MySQL バージョン 8.0.23 の`AutoUpgrade`値は`True`です。したがって、自動マイナーアップグレードターゲットは MySQL バージョン 8.0.23 であり、出力でハイライトされています。

**重要**  
すぐに RDS for PostgreSQL DB インスタンスを Aurora PostgreSQL DB クラスターに移行する予定がある場合は、移行計画の早い段階で DB インスタンスのマイナーバージョンの自動アップグレードをオフにすることを強くお勧めします。RDS for PostgreSQL バージョンが Aurora PostgreSQL でサポートされていない場合、Aurora PostgreSQL への移行が遅れる可能性があります。Aurora PostgreSQL バージョンについては、[Amazon Aurora PostgreSQL のエンジンのバージョン](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html)を参照してください。