

# DB インスタンスへの復元
<a name="USER_RestoreFromSnapshot"></a><a name="restore_snapshot"></a>

このセクションでは、DB インスタンスに復元する方法を示します。このページでは、DB スナップショットから Amazon RDS DB インスタンスに復元する方法を説明します。

Amazon RDS は DB インスタンスのストレージボリュームのスナップショットを作成し、個々のデータベースだけではなく、その DB インスタンス全体をバックアップします。DB スナップショットからの復元で、新しい DB インスタンスを作成できます。復元の元となる DB スナップショットの名前を指定し、復元によって作成される新しい DB インスタンスの名前を指定します。DB スナップショットから既存の DB インスタンスに復元することはできません。スナップショットを復元すると新しい DB インスタンスが作成されます。

ステータスが `available` になると、復元された DB インスタンスを使用できます。DB インスタンスはバックグラウンドでデータをロードし続けます。これは*遅延ロード*と呼ばれています。まだロードされていないデータにアクセスする場合、DB インスタンスはリクエストされたデータを Amazon S3 から即座にダウンロードし、残りのデータをバックグラウンドでロードし続けます。詳細については、「[Amazon EBS スナップショット](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSSnapshots.html)」を参照してください。

クイックアクセスが必要なテーブルに対する遅延ロードの影響を軽減するには、`SELECT *` など、テーブル全体をスキャンするようなオペレーションを実行します。これにより、Amazon RDS はバックアップされたテーブルデータをすべて S3 からダウンロードできます。

DB インスタンスを復元し、出典 DB スナップショットとは異なるストレージタイプを使用できます。この場合、新しいストレージタイプにデータを移行するための追加作業が必要になるため、復元処理が遅くなります。マグネティックストレージに復元するか、マグネティックストレージから復元する場合、移行プロセスは最も低速になります。これは、マグネティックストレージにはプロビジョンド IOPS または汎用 (SSD) ストレージの IOPS 機能がないためです。

CloudFormationを使用して、DB インスタンスのスナップショットから DB インスタンスを復元できます。詳細については、*AWS CloudFormationユーザーガイド*の [AWS::RDS::DBInstance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbinstance.html) を参照してください。

**注記**  
共有され暗号化された DB スナップショットから、DB インスタンスを復元することはできません。代わりに、DB スナップショットのコピーを作成し、そのコピーから DB インスタンスを復元できます。詳細については、「[Amazon RDS の DB スナップショットのコピー](USER_CopySnapshot.md)」を参照してください。

RDS 延長サポートバージョンで DB インスタンスを復元する方法については、「[Amazon RDS 延長サポートでの DB インスタンスまたはマルチ AZ DB クラスターの復元](extended-support-restoring-db-instance.md)」を参照してください。

## スナップショットからの復元
<a name="USER_RestoreFromSnapshot.Restoring"></a>

AWS マネジメントコンソール、AWS CLI、または RDS API を使用して、DB のスナップショットから DB インスタンスを復元できます。

**注記**  
DB インスタンスを復元するときに、ストレージ容量を減らすことはできません。ストレージ割り当てを増やす場合は、少なくとも 10 パーセント単位で増やす必要があります。10 パーセントに満たない単位で増やそうとすると、エラーになります。RDS for SQL Server DB インスタンスを復元するときに、割り当てストレージを増やすことはできません。

### コンソール
<a name="USER_RestoreFromSnapshot.CON"></a>

**DB スナップショットから DB インスタンスを復元するには**

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

1. ナビゲーションペインで、[**Snapshots**] を選択します。

1. 復元の元にする DB スナップショットを選択します。

1. **[アクション]** で、**[スナップショットの復元]** を選択します。

1. **[Restore snapshot]** (スナップショットの復元) ページで、**[DB instance identifier]** (DB インスタンス識別子) に、復元された DB インスタンスの名前を入力します。

1. 割り当てられたストレージサイズなど、その他の設定を指定します。

   各設定の詳細については、「[DB インスタンスの設定](USER_CreateDBInstance.Settings.md)」を参照してください。

1. [**DB インスタンスの復元**] を選択します。

### AWS CLI
<a name="USER_RestoreFromSnapshot.CLI"></a>

DB スナップショットから DB インスタンスを復元するには、AWS CLI の [DBスナップショットからDBインスタンスを復元する](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html) コマンドを使用します。

この例では、「`mydbsnapshot`」という以前作成した DB スナップショットから復元します。`mynewdbinstance` という名前の新しい DB インスタンスに復元します。この例では、割り当てられたストレージサイズも設定しています。

他の設定を指定できます。各設定の詳細については、「[DB インスタンスの設定](USER_CreateDBInstance.Settings.md)」を参照してください。

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

```
1. aws rds restore-db-instance-from-db-snapshot \
2.     --db-instance-identifier {{mynewdbinstance}} \
3.     --db-snapshot-identifier {{mydbsnapshot}} \
4.     --allocated-storage {{100}}
```
Windows の場合:  
   

```
1. aws rds restore-db-instance-from-db-snapshot ^
2.     --db-instance-identifier {{mynewdbinstance}} ^
3.     --db-snapshot-identifier {{mydbsnapshot}} ^
4.     --allocated-storage {{100}}
```
このコマンドは、次のような出力を返します：  

```
1. DBINSTANCE  mynewdbinstance  db.t3.small  MySQL     50       sa              creating  3  n  8.0.28  general-public-license
```

**Example**  
次の例は、新しく作成されたインスタンスにストレージボリュームを追加しながらスナップショットを復元する方法を示しています。スナップショットには、追加のボリューム `rdsdbdata2` が含まれていました。復元オペレーションでは、`rdsdbdata3` が追加され、新しく作成されたインスタンスに合計 3 つのボリュームが作成されます。スナップショットを復元するときにボリュームを削除することはできません。  

```
1. aws rds restore-db-instance-from-db-snapshot \
2.      --db-instance-identifier my-restored-instance \
3.      --db-snapshot-identifier my-asv-snapshot \
4.      --additional-storage-volumes '[{ \
5.              "VolumeName": "rdsdbdata3", \
6.              "StorageType":"gp3", \
7.              "AllocatedStorage": 5000, \
8.              "IOPS": 12000 \
9.          }]'
```

### RDS API
<a name="USER_RestoreFromSnapshot.API"></a>

DB スナップショットから DB インスタンスを復元するには、以下のパラメータを指定して Amazon RDS API 関数 [RestoreDBInstanceFromDBSnapshot](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html) を呼び出します。
+ `DBInstanceIdentifier` 
+ `DBSnapshotIdentifier` 

## 考慮事項
<a name="USER_RestoreFromSnapshot.Considerations"></a>

DB スナップショットから DB インスタンスに復元する際の考慮事項については、以下のトピックを参照してください。

**Topics**
+ [パラメータグループに関する考慮事項](#USER_RestoreFromSnapshot.Parameters)
+ [セキュリティグループに関する考慮事項](#USER_RestoreFromSnapshot.Security)
+ [オプショングループに関する考慮事項](#USER_RestoreFromSnapshot.Options)
+ [リソースへのタグ付けに関する考慮事項](#restore-from-snapshot.tagging)
+ [Db2 に関する考慮事項](#USER_RestoreFromSnapshot.Db2)
+ [Microsoft SQL Server に関する考慮事項](#USER_RestoreFromSnapshot.MSSQL)
+ [MySQL に関する考慮事項](#USER_RestoreFromSnapshot.MySQL)
+ [Oracle データベースに関する考慮事項](#USER_RestoreFromSnapshot.Oracle)

### パラメータグループに関する考慮事項
<a name="USER_RestoreFromSnapshot.Parameters"></a>

復元された DB インスタンスを適切なパラメータグループと関連付けることができるように、作成する DB スナップショットの DB パラメータグループは保持しておくことをお勧めします。

別のパラメータグループを選択しない限り、デフォルトの DB パラメータグループが、復元されたインスタンスに関連付けられます。デフォルトのパラメータグループでは、カスタムのパラメータ設定は使用できません。

パラメータグループは、DB インスタンスを復元する際に指定できます。

DB パラメータグループの詳細については、「[Amazon RDS のパラメータグループ](USER_WorkingWithParamGroups.md)」を参照してください。

### セキュリティグループに関する考慮事項
<a name="USER_RestoreFromSnapshot.Security"></a>

DB インスタンスを復元すると、仮想プライベートクラウド (VPC)、DB サブネットグループ、および VPC セキュリティグループはデフォルトのものが、(それらに別のものを選択しない限り) 復元されたインスタンスに関連付けられます。
+ Amazon RDS コンソールを使用している場合は、カスタムの VPC セキュリティグループを指定してインスタンスに関連付けるか、新しい VPC セキュリティグループを作成できます。
+ AWS CLI を使用している場合、`restore-db-instance-from-db-snapshot` コマンドで `--vpc-security-group-ids` オプションを指定することにより、カスタムの VPC セキュリティグループを指定して、それをインスタンスに関連付けることができます。
+ Amazon RDS API を使用している場合、`VpcSecurityGroupIds.VpcSecurityGroupId.N` パラメータを `RestoreDBInstanceFromDBSnapshot` アクションに含むことができます。

復元が完了し、新しい DB インスタンスが使用可能になり次第、その DB インスタンスを変更して VPC 設定を変更することもできます。詳しくは、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

### オプショングループに関する考慮事項
<a name="USER_RestoreFromSnapshot.Options"></a>

DB インスタンスを復元すると、多くの場合、デフォルトの DB オプショングループが復元された DB インスタンスに関連付けられます。

この例外となるのは、ソース DB インスタンスが、永続的もしくは不変のオプションを含むオプショングループに関連付けられている場合です。例えば、ソース DB インスタンスで Oracle TDE (Transparent Data Encryption ) が使用されている場合、復元された DB インスタンスでは、TDE オプションを含むオプショングループを使用する必要があります。

DB インスタンスを異なる VPC に復元する場合は、以下のいずれかの操作を実行して、そのインスタンスに DB オプショングループを割り当てる必要があります。
+ その VPC グループのデフォルトのオプショングループを、復元したインスタンスに割り当てる。
+ VPC にリンクされているオプショングループを、復元したインスタンスに割り当てる。
+ 新しいオプショングループを作成し、DB インスタンスに割り当てます。Oracle TDE などの永続的または不変のオプションを使用する場合は、その永続的または不変のオプションを含む新しいオプショングループを作成する必要があります。

DB オプショングループの詳細については、「[オプショングループを使用する](USER_WorkingWithOptionGroups.md)」を参照してください。

### リソースへのタグ付けに関する考慮事項
<a name="restore-from-snapshot.tagging"></a>

DB スナップショットから DB インスタンスが復元されると、RDS は新しいタグが指定されているかどうかを確認します。新しいタグが指定されている場合、そのタグは復元された DB インスタンスに追加されます。新しいタグがない場合、RDS は、スナップショットの作成時にソース DB インスタンスから復元された DB インスタンスにタグを追加します。

詳細については、「[タグを DB スナップショットにコピーする](USER_Tagging.md#USER_Tagging.CopyTags)」を参照してください。

### Db2 に関する考慮事項
<a name="USER_RestoreFromSnapshot.Db2"></a>



BYOL モデルでは、Amazon RDS for Db2 DB インスタンスを、IBM Site ID と IBM Customer ID を含むカスタムパラメータグループに関連付ける必要があります。そうしないと、スナップショットから DB インスタンスを復元しようとすると失敗します。Amazon RDS for Db2 DB インスタンスは、AWS License Manager セルフマネージドライセンスにも関連付ける必要があります。詳細については、「[Db2 の Bring-Your-Own-License (BYOL)](db2-licensing.md#db2-licensing-options-byol)」を参照してください。

AWS Marketplace 経由の Db2 ライセンスモデルでは、使用する特定の IBM Db2 エディションの有効な AWS Marketplace サブスクリプションが必要です。まだお持ちでない場合は、IBM Db2 エディションの [Db2 サブスクリプションを AWS Marketplace で購入する](db2-licensing.md#db2-marketplace-subscribing-registering)必要があります。詳細については、「[AWS Marketplace 経由の Db2 ライセンス](db2-licensing.md#db2-licensing-options-marketplace)」を参照してください。

### Microsoft SQL Server に関する考慮事項
<a name="USER_RestoreFromSnapshot.MSSQL"></a>

RDS for Microsoft SQL Server DB スナップショットを新しいインスタンスに復元すると、スナップショットと同じエディションに常に復元できるようになります。場合によっては、DB インスタンスのエディションを変更することもできます。エディションを変更する場合の制限は次のとおりです。
+ DB スナップショットでは、新しいエディション用に十分なストレージを割り当てる必要があります。
+ 次のエディションの変更以外はサポートされていません。
  + Standard Edition から Enterprise Edition
  + Web Edition から Standard Edition または Enterprise Edition
  + Express Edition から Web Edition、Standard Edition、Enterprise Edition のいずれか

スナップショットを復元して、サポートされていない新しいエディションに変更する場合は、ネイティブバックアップおよび復元機能を試すことができます。SQL Server は、データベース上で有効にした SQL Server の機能に基づき、データベースが新しいエディションと互換性があるかどうかを検証します。詳細については、「[ネイティブバックアップと復元を使用した SQL Server データベースのインポートとエクスポート](SQLServer.Procedural.Importing.md)」を参照してください。

### MySQL に関する考慮事項
<a name="USER_RestoreFromSnapshot.MySQL"></a>

サポートされていないエンジンバージョンを使用して RDS for MySQL DB スナップショットから復元するには、DB スナップショットを複数回アップグレードする必要がある場合があります。アップグレードオプションの詳細については、「[RDS for MySQL でサポートされていないエンジンバージョンの DB スナップショットのアップグレードオプション](mysql-upgrade-snapshot.upgrade-options.md)」を参照してください。

RDS for MySQL DB スナップショットのエンジンバージョンのアップグレードの詳細については、「[MySQL DB スナップショットエンジンバージョンのアップグレード](mysql-upgrade-snapshot.md)」を参照してください。

### Oracle データベースに関する考慮事項
<a name="USER_RestoreFromSnapshot.Oracle"></a>

Oracle データベースを DB スナップショットから復元する場合、次の点に注意します。
+ DB スナップショットを復元する前に、それを新しい Oracle データベースリリースにアップグレードできます。詳細については、「[Oracle DB スナップショットのアップグレード](USER_UpgradeDBSnapshot.Oracle.md)」を参照してください。
+ シングルテナント設定を使用する CDB インスタンスのスナップショットを復元する場合は、PDB 名を変更できます。CDB インスタンスがマルチテナント設定を使用している場合は PDB 名を変更できません。詳細については、「[CDB のバックアップと復元](Oracle.Concepts.single-tenant.snapshots.md)」を参照してください。
+ CDB 名は変更できません。これは常に `RDSCDB` です。この CDB 名は、すべての CDB インスタンスで同じです。
+ DB スナップショット内のテナントデータベースを直接操作することはできません。マルチテナント設定を使用する CDB インスタンスのスナップショットを復元する場合は、そのテナントデータベースをすべて復元します。[describe-db-snapshot-tenant-databases](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-snapshot-tenant-databases.html) を使用すると、復元する前に DB スナップショット内のテナントデータベースを点検できます。
+ Oracle GoldenGate を使用している場合、必ず `compatible` パラメータと同時にパラメータグループを保持します。DB スナップショットから DB インスタンスを復元するときは、等しいか大きい `compatible` 値を使用したパラメータグループを指定します。
+ DB スナップショットを復元するときに、データベースの名前を変更することもできます。オンライン REDO ログの合計サイズが 20GB を超える場合、RDS はオンライン REDO ログのサイズをデフォルト設定の 512MB (4 x 128MB) にリセットすることがあります。サイズが小さいほど、妥当な時間内に復元オペレーションを完了できます。後でオンライン REDO ログを再作成し、サイズを変更できます。
+ マスターユーザーパスワードは AWS Secrets Manager で管理できます。詳細については、「[AWS Secrets Manager を使用したマスターユーザーパスワード管理の概要](rds-secrets-manager.md#rds-secrets-manager-overview)」を参照してください。