

# Amazon RDS の DB スナップショットのコピー
<a name="USER_CopySnapshot"></a>

Amazon RDS を使用すると、自動バックアップまたは手動 DB スナップショットをコピーできます。スナップショットをコピーすると、そのコピーは手動スナップショットになります。自動バックアップまたは手動スナップショットは複数のコピーを作成できますが、各コピーには一意の識別子が必要です。

同じ AWS リージョン 内、AWS リージョン 間でスナップショットをコピーできます。また、共有スナップショットをコピーできます。スナップショットは、1 つのステップで別の AWS リージョンまたはアカウントにコピーできます。

## DB スナップショットのコピー
<a name="USER_CopyDBSnapshot"></a>

AWS アカウント ごとに、AWS リージョン 間で同時に最大 20 個の DB スナップショットをコピーできます。別の AWS リージョン に DB スナップショットをコピーする場合には、その AWS リージョン に保持されている手動 DB スナップショットを作成します。コピー元の AWS リージョン から DB スナップショットをコピーすると、Amazon RDS のデータ転送料金が発生します。

データ転送料金の詳細については、「[Amazon RDS の料金](https://aws.amazon.com/rds/pricing/)」を参照してください。

DB スナップショットのコピーが新しい AWS リージョン に作成されると、その DB スナップショットのコピーは、AWS リージョン にある他のすべての DB スナップショットと同じように動作します。

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

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

以下の手順では、AWS マネジメントコンソール を使用して、暗号化されている DB スナップショットや暗号化されていない DB スナップショットを、同じ AWS リージョン 内または異なるリージョン間でコピーできます。

**DB スナップショットをコピーするには**

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

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

1. コピーする DB スナップショットを選択します。

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

   [**スナップショットをコピー**] ページが表示されます。  
![\[DB スナップショットのコピー\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/DBSnapshotCopy1.png)

1. (オプション) **[Target Option Group]** (ターゲットオプショングループ)–には、必要に応じて新しいオプショングループを選択します。

   AWS リージョン 間でスナップショットをコピーし、DB インスタンスでデフォルト以外のオプショングループを使用する場合に、このオプションを指定します。

   コピー元の DB インスタンスで Transparent Data Encryption for Oracle または Microsoft SQL Server を使用する場合は、リージョン間でコピーするときに、このオプションを指定する必要があります。詳細については、「[オプショングループの考慮事項](#USER_CopySnapshot.Options)」を参照してください。

1. (オプション) 別の AWS リージョン に DB スナップショットをコピーするには、**[Destination Region]** (コピー先リージョン) でその新しい AWS リージョン を選択します。
**注記**  
コピー先 AWS リージョン は、コピー元 AWS リージョン と同じデータベースエンジンのバージョンを使用できる必要があります。

1. **[New DB Snapshot Identifier]** (新しい DB スナップショット ID) には、DB スナップショットのコピーの名前を入力します。

   自動バックアップまたは手動スナップショットは複数のコピーを作成できますが、各コピーには一意の識別子が必要です。

1. (オプション) スナップショットからスナップショットのコピーにタグと値をコピーするには、[**Copy Tags**] を選択します。

1. (オプション) [**暗号化**] では、次の操作を行います。

   1. DB スナップショットは暗号化されていないが、コピーを暗号化する場合、[**暗号を有効化**] を選択します。
**注記**  
DB スナップショットが暗号化されている場合は、コピーを暗号化する必要があります。そのため、チェックボックスは既にオンになっています。

   1. [**AWS KMS key**] で、DB スナップショットコピーの暗号化に使用する KMS キー識別子を指定します。

1. **[スナップショットのコピー]** を選択します。

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

AWS CLI の [copy-db-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/copy-db-snapshot.html) コマンドを使用して、DB スナップショットをコピーできます。スナップショットのコピー先が新しい AWS リージョン である場合は、その新しい AWS リージョン でコマンドを実行します。

DB スナップショットをコピーするには、以下のオプションを使用します。状況に応じてオプションを使い分けることができます。以下の説明と例を参考にして、どのオプションを使用するか判断してください。
+ `--source-db-snapshot-identifier` - コピー元の DB スナップショットの識別子。
  + スナップショットのコピー元とコピー先が同じ AWS リージョン にある場合は、有効な DB スナップショットの識別子を指定します。例えば、`rds:mysql-instance1-snapshot-20130805`。
  + スナップショットのコピー元とコピー先が同じ AWS リージョン にあり、AWS アカウント と共有されている場合は、有効な DB スナップショットの ARN を指定します。例えば、`arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20130805`。
  + スナップショットのコピー元とコピー先が異なる AWS リージョン である場合は、有効な DB スナップショットの ARN を指定します。例えば、`arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20130805`。
  + 共有された手動 DB スナップショットからコピーする場合、このパラメータは、共有された DB スナップショットの Amazon リソースネーム (ARN) であることが必要です。
  + 暗号化されたスナップショットをコピーする場合、このパラメータは、コピー元の AWS リージョン の ARN 形式であること、さらに `PreSignedUrl` パラメータの `SourceDBSnapshotIdentifier` と一致することが必要です。
+ `--target-db-snapshot-identifier` - 暗号化された DB スナップショットの新しいコピーの識別子。
+ `--copy-option-group` – AWS アカウント と共有されているスナップショットからオプショングループをコピーします。
+ `--copy-tags` - スナップショットからスナップショットのコピーにタグと値をコピーするために使用します。
+ `--option-group-name` - スナップショットのコピーに関連付けるオプショングループ。

  AWS リージョン 間でスナップショットをコピーし、DB インスタンスでデフォルト以外のオプショングループを使用する場合に、このオプションを指定します。

  コピー元の DB インスタンスで Transparent Data Encryption for Oracle または Microsoft SQL Server を使用する場合は、リージョン間でコピーするときに、このオプションを指定する必要があります。詳しくは、「[オプショングループの考慮事項](#USER_CopySnapshot.Options)」を参照してください。
+ `--kms-key-id` - 暗号化された DB スナップショットの KMS キー識別子。KMS キー識別子は、KMS キーの Amazon リソースネーム (ARN)、キー識別子、またはキーエイリアスです。
  + AWS アカウント から暗号化された DB スナップショットをコピーする場合、このパラメータの値を指定して、新しい KMS キーでコピーを暗号化できます。このパラメータの値を指定しないと、DB スナップショットのコピーはコピー元の DB スナップショットと同じ KMS キーで暗号化されます。
  + 別の AWS アカウント から共有されている暗号化された DB スナップショットをコピーする場合、このパラメータの値を指定する必要があります。
  + このパラメータを指定して暗号化されていないスナップショットをコピーすると、コピーは暗号化されます。
  + 暗号化されたスナップショットを別の AWS リージョン にコピーする場合は、コピー先 AWS リージョン の KMS キーを指定する必要があります。KMS キーは、それらが作成された AWS リージョン に固有のものであるため、ある AWS リージョン の暗号化キーを別の AWS リージョン で使用することはできません。

**Example 暗号化されていない出典を同じリージョン内でコピー**  
次のコードでは、スナップショットのコピーを `mydbsnapshotcopy` という新しい名前で、コピー元のスナップショットと同じ AWS リージョン に作成します。コピーが作成されると、元のスナップショット DB オプショングループとタグがコピーされたスナップショットにコピーされます。  
Linux、macOS、Unix の場合:  

```
aws rds copy-db-snapshot \
    --source-db-snapshot-identifier arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20130805 \
    --target-db-snapshot-identifier mydbsnapshotcopy \
    --copy-option-group \
    --copy-tags
```
Windows の場合:  

```
aws rds copy-db-snapshot ^
    --source-db-snapshot-identifier arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20130805 ^
    --target-db-snapshot-identifier mydbsnapshotcopy ^
    --copy-option-group ^
    --copy-tags
```

**Example 暗号化されていない出典をリージョン間でコピー**  
次のコードでは、スナップショットのコピーを `mydbsnapshotcopy` という新しい名前で、コマンドの実行先の AWS リージョン に作成します。  
Linux、macOS、Unix の場合:  

```
aws rds copy-db-snapshot \
    --source-db-snapshot-identifier arn:aws:rds:us-east-1:123456789012:snapshot:mysql-instance1-snapshot-20130805 \
    --target-db-snapshot-identifier mydbsnapshotcopy
```
Windows の場合:  

```
aws rds copy-db-snapshot ^
    --source-db-snapshot-identifier arn:aws:rds:us-east-1:123456789012:snapshot:mysql-instance1-snapshot-20130805 ^
    --target-db-snapshot-identifier mydbsnapshotcopy
```

**Example 暗号化された出典をリージョン間でコピー**  
次のコード例では、米国西部 (オレゴン) リージョンから US East (N. Virginia) リージョンに暗号化された DB スナップショットをコピーします。コピー先リージョン (us-east-1) でコマンドを実行します。  
Linux、macOS、Unix の場合:  

```
aws rds copy-db-snapshot \
    --source-db-snapshot-identifier arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20161115 \
    --target-db-snapshot-identifier mydbsnapshotcopy \
    --kms-key-id my-us-east-1-key \ 
    --option-group-name custom-option-group-name
```
Windows の場合:  

```
aws rds copy-db-snapshot ^
    --source-db-snapshot-identifier arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20161115 ^
    --target-db-snapshot-identifier mydbsnapshotcopy ^
    --kms-key-id my-us-east-1-key ^
    --option-group-name custom-option-group-name
```

`--source-region` パラメータは、AWS GovCloud (米国東部) と AWS GovCloud (米国西部) リージョン間で暗号化されたスナップショットをコピーする場合に必要です。`--source-region` には、ソース DB インスタンスの AWS リージョン を指定します。

`--source-region` を指定しない場合、`--pre-signed-url` の値を指定する必要があります。*署名付きの URL* は、ソースの AWS リージョン で呼び出される `copy-db-snapshot` コマンドに対する、署名バージョン 4 で署名されたリクエストを含む URL です。`pre-signed-url` オプションの詳細については、*AWS CLI コマンドリファレンス*の「[copy-db-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/copy-db-snapshot.html)」を参照してください。

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

Amazon RDS API の [CopyDBSnapshot](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CopyDBSnapshot.html) オペレーションを使用して、DB スナップショットをコピーできます。スナップショットのコピー先が新しい AWS リージョン である場合は、その新しい AWS リージョン でアクションを実行します。

DB スナップショットをコピーするには、以下のパラメータを使用します。状況に応じてパラメータを使い分けることができます。以下の説明と例を参考にして、どのパラメータを使用するか判断してください。
+ `SourceDBSnapshotIdentifier` - コピー元の DB スナップショットの識別子。
  + スナップショットのコピー元とコピー先が同じ AWS リージョン にある場合は、有効な DB スナップショットの識別子を指定します。例えば、`rds:mysql-instance1-snapshot-20130805`。
  + スナップショットのコピー元とコピー先が同じ AWS リージョン にあり、AWS アカウント と共有されている場合は、有効な DB スナップショットの ARN を指定します。例えば、`arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20130805`。
  + スナップショットのコピー元とコピー先が異なる AWS リージョン である場合は、有効な DB スナップショットの ARN を指定します。例えば、`arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20130805`。
  + 共有された手動 DB スナップショットからコピーする場合、このパラメータは、共有された DB スナップショットの Amazon リソースネーム (ARN) であることが必要です。
  + 暗号化されたスナップショットをコピーする場合、このパラメータは、コピー元の AWS リージョン の ARN 形式であること、さらに `PreSignedUrl` パラメータの `SourceDBSnapshotIdentifier` と一致することが必要です。
+ `TargetDBSnapshotIdentifier` - 暗号化された DB スナップショットの新しいコピーの識別子。
+ `CopyOptionGroup` - 共有スナップショットからスナップショットのコピーにオプショングループをコピーするには、このパラメータを `true` に設定します。デフォルトは `false` です。
+ `CopyTags` - スナップショットからスナップショットのコピーにタグと値をコピーするには、このパラメータを `true` に設定します。デフォルト: `false`。
+ `OptionGroupName` - スナップショットのコピーに関連付けるオプショングループ。

  AWS リージョン 間でスナップショットをコピーし、DB インスタンスでデフォルト以外のオプショングループを使用する場合に、このパラメータを指定します。

  コピー元の DB インスタンスで Transparent Data Encryption for Oracle または Microsoft SQL Server を使用する場合は、リージョン間でコピーするときに、このパラメータを指定する必要があります。詳しくは、「[オプショングループの考慮事項](#USER_CopySnapshot.Options)」を参照してください。
+ `KmsKeyId` - 暗号化された DB スナップショットの KMS キー識別子。KMS キー識別子は、KMS キーの Amazon リソースネーム (ARN)、キー識別子、またはキーエイリアスです。
  + AWS アカウント から暗号化された DB スナップショットをコピーする場合、このパラメータの値を指定して、新しい KMS キーでコピーを暗号化できます。このパラメータの値を指定しないと、DB スナップショットのコピーはコピー元の DB スナップショットと同じ KMS キーで暗号化されます。
  + 別の AWS アカウント から共有されている暗号化された DB スナップショットをコピーする場合、このパラメータの値を指定する必要があります。
  + このパラメータを指定して暗号化されていないスナップショットをコピーすると、コピーは暗号化されます。
  + 暗号化されたスナップショットを別の AWS リージョン にコピーする場合は、コピー先 AWS リージョン の KMS キーを指定する必要があります。KMS キーは、それらが作成された AWS リージョン に固有のものであるため、ある AWS リージョン の暗号化キーを別の AWS リージョン で使用することはできません。
+ `PreSignedUrl` - コピー元の DB スナップショットがあるコピー元の AWS リージョン で `CopyDBSnapshot` API オペレーションに対する署名バージョン 4 で署名されたリクエストを含む URL。

  Amazon RDS API を使用して、暗号化された DB スナップショットを別の AWS リージョン からコピーするときに、このパラメータを指定します。AWS CLI を使用して、暗号化された DB スナップショットを別の AWS リージョン からコピーするときは、このパラメータの代わりにコピー元のリージョンのオプションを指定できます。

  署名付き URL は、コピー元の暗号化された DB スナップショットがあるコピー元の AWS リージョン で実行できる `CopyDBSnapshot` API オペレーションに対する有効なリクエストでなければなりません。署名付き URL リクエストでは、以下のパラメータ値を指定する必要があります。
  + `DestinationRegion` - 暗号化された DB スナップショットのコピー先の AWS リージョン。これは、この署名付き URL がある、`CopyDBSnapshot` オペレーションの呼び出し元の AWS リージョン と同じです。

    例えば、us-west-2 リージョンから us-east-1 リージョンに暗号化された DB スナップショットをコピーするとします。次に、us-east-1 リージョンで `CopyDBSnapshot` オペレーションを呼び出し、us-west-2 リージョンでの `CopyDBSnapshot` オペレーションへの呼び出しを含む事前署名された URL を指定します。この例では、署名付き URL の `DestinationRegion` を us-east-1 リージョンに設定する必要があります。
  + `KmsKeyId` - コピー先 で DB スナップショットのコピーを暗号化するのに使用するキーの KMS キー識別子。AWS リージョンこれは、コピー先の AWS リージョン で呼び出す `CopyDBSnapshot` オペレーションおよび署名付き URL に含まれているオペレーションの両方で同じ識別子です。
  + `SourceDBSnapshotIdentifier` - コピー元の暗号化されたスナップショットの DB スナップショット識別子。この識別子は、ソース AWS リージョン の Amazon リソースネーム (ARN) 形式であることが必要です。例えば、暗号化された DB スナップショットを us-west-2 リージョンからコピーする場合、`SourceDBSnapshotIdentifier` は次の `arn:aws:rds:us-west-2:123456789012:snapshot:mysql-instance1-snapshot-20161115` の例のようになります。

  書名バージョン 4 の 署名要件についての詳細は、以下を参照してください。
  + Amazon Simple Storage Service API リファレンスの「[リクエストの認証: クエリパラメータの使用 (AWS 署名バージョン 4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html)」
  + AWS 全般のリファレンスの「[署名バージョン 4 の署名プロセス](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html)」

**Example 暗号化されていない出典を同じリージョン内でコピー**  
次のコードでは、スナップショットのコピーを `mydbsnapshotcopy` という新しい名前で、コピー元のスナップショットと同じ AWS リージョン に作成します。コピーが作成されると、元のスナップショットのすべてのタグはコピーされたスナップショットにコピーされます。  

```
https://rds.us-west-1.amazonaws.com/
	?Action=CopyDBSnapshot
	&CopyTags=true
	&SignatureMethod=HmacSHA256
	&SignatureVersion=4
	&SourceDBSnapshotIdentifier=mysql-instance1-snapshot-20130805
	&TargetDBSnapshotIdentifier=mydbsnapshotcopy
	&Version=2013-09-09
	&X-Amz-Algorithm=AWS4-HMAC-SHA256
	&X-Amz-Credential=AKIADQKE4SARGYLE/20140429/us-west-1/rds/aws4_request
	&X-Amz-Date=20140429T175351Z
	&X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date
	&X-Amz-Signature=9164337efa99caf850e874a1cb7ef62f3cea29d0b448b9e0e7c53b288ddffed2
```

**Example 暗号化されていない出典をリージョン間でコピー**  
次のコードでは、スナップショットのコピーを `mydbsnapshotcopy` という新しい名前で 米国西部 (北カリフォルニア) リージョンに作成します。  

```
https://rds.us-west-1.amazonaws.com/
	?Action=CopyDBSnapshot
	&SignatureMethod=HmacSHA256
	&SignatureVersion=4
	&SourceDBSnapshotIdentifier=arn%3Aaws%3Ards%3Aus-east-1%3A123456789012%3Asnapshot%3Amysql-instance1-snapshot-20130805
	&TargetDBSnapshotIdentifier=mydbsnapshotcopy
	&Version=2013-09-09
	&X-Amz-Algorithm=AWS4-HMAC-SHA256
	&X-Amz-Credential=AKIADQKE4SARGYLE/20140429/us-west-1/rds/aws4_request
	&X-Amz-Date=20140429T175351Z
	&X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date
	&X-Amz-Signature=9164337efa99caf850e874a1cb7ef62f3cea29d0b448b9e0e7c53b288ddffed2
```

**Example 暗号化された出典をリージョン間でコピー**  
次のコードでは、スナップショットのコピーを `mydbsnapshotcopy` という新しい名前で米国東部 (バージニア北部) リージョンに作成します。  

```
https://rds.us-east-1.amazonaws.com/
    ?Action=CopyDBSnapshot
    &KmsKeyId=my-us-east-1-key
    &OptionGroupName=custom-option-group-name
    &PreSignedUrl=https%253A%252F%252Frds.us-west-2.amazonaws.com%252F
         %253FAction%253DCopyDBSnapshot
         %2526DestinationRegion%253Dus-east-1
         %2526KmsKeyId%253Dmy-us-east-1-key
         %2526SourceDBSnapshotIdentifier%253Darn%25253Aaws%25253Ards%25253Aus-west-2%25253A123456789012%25253Asnapshot%25253Amysql-instance1-snapshot-20161115
         %2526SignatureMethod%253DHmacSHA256
         %2526SignatureVersion%253D4
         %2526Version%253D2014-10-31
         %2526X-Amz-Algorithm%253DAWS4-HMAC-SHA256
         %2526X-Amz-Credential%253DAKIADQKE4SARGYLE%252F20161117%252Fus-west-2%252Frds%252Faws4_request
         %2526X-Amz-Date%253D20161117T215409Z
         %2526X-Amz-Expires%253D3600
         %2526X-Amz-SignedHeaders%253Dcontent-type%253Bhost%253Buser-agent%253Bx-amz-content-sha256%253Bx-amz-date
         %2526X-Amz-Signature%253D255a0f17b4e717d3b67fad163c3ec26573b882c03a65523522cf890a67fca613
    &SignatureMethod=HmacSHA256
    &SignatureVersion=4
    &SourceDBSnapshotIdentifier=arn%3Aaws%3Ards%3Aus-west-2%3A123456789012%3Asnapshot%3Amysql-instance1-snapshot-20161115
    &TargetDBSnapshotIdentifier=mydbsnapshotcopy
    &Version=2014-10-31
    &X-Amz-Algorithm=AWS4-HMAC-SHA256
    &X-Amz-Credential=AKIADQKE4SARGYLE/20161117/us-east-1/rds/aws4_request
    &X-Amz-Date=20161117T221704Z
    &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date
    &X-Amz-Signature=da4f2da66739d2e722c85fcfd225dc27bba7e2b8dbea8d8612434378e52adccf
```

## 制限事項
<a name="USER_CopySnapshot.Limitations"></a>

スナップショットをコピーする際の制約は以下のとおりです。
+ 中国 (北京) リージョンまたは 中国 (寧夏) リージョンとの間でスナップショットをコピーすることはできません。
+  AWS GovCloud (米国東部) と AWS GovCloud (US-West) の間でスナップショットをコピーすることはできます。ただし、これらの GovCloud (US) リージョンと GovCloud (US) リージョン以外のリージョンの間でスナップショットをコピーすることはできません。
+ ターゲットスナップショットが使用可能になる前に出典スナップショットを削除すると、スナップショットはコピーされない場合があります。ターゲットスナップショットのステータスが `AVAILABLE` になったことを確認してから、出典スナップショットを削除してください。
+ アカウントあたり 1 つのコピー先リージョンに対して最大 20 のスナップショットコピーリクエストを実行できます。
+ 同じソース DB インスタンスに対して複数のスナップショットコピーをリクエストすると、それらは内部的にキューに追加されます。後でリクエストされたコピーは、それ以前のスナップショットコピーが完了するまで開始されません。詳細については、AWS ナレッジセンターの「[ Why is my EC2 AMI or EBS snapshot creation slow? (EC2 AMI または EBS スナップショットの作成が遅いのはなぜですか?)](https://aws.amazon.com/premiumsupport/knowledge-center/ebs-snapshot-ec2-ami-creation-slow/)」を参照してください。
+ 関連する AWS リージョン およびデータのコピー量に応じて、リージョン間のスナップショットのコピーは完了するまでに長時間かかることがあります。場合によっては、特定のコピー元 リージョンから多数のクロスリージョンスナップショットコピーのリクエストが発生することがあります。このような場合、Amazon RDS は進行中のいくつかのコピーが完了するまで、そのコピー元リージョンからの新しいクロスリージョンコピーリクエストをキューに入れることがあります。コピーリクエストがキューに入っている間は、そのリクエストに関する進捗情報は表示されません。コピーがスタートしたときに、進捗情報は表示されます。
+ 別のコピーをスタートするときにコピーがまだ保留中の場合は、初期のコピーが終了するまで 2 番目のコピーはスタートされません。
+ マルチ AZ DB クラスターのスナップショットはコピーできません。
+ io2 ボリュームを使用する DB インスタンスのスナップショットは、io2 Block Express ボリュームが利用可能な AWS リージョン にのみコピーできます。詳細については、「[Amazon RDS DB インスタンスストレージ](CHAP_Storage.md)」を参照してください。

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

DB スナップショットをコピーする際の考慮事項については、以下のトピックを参照してください。

**Topics**
+ [

### スナップショット保持期限
](#USER_CopySnapshot.Retention)
+ [

### 共有スナップショットコピーに関する考慮事項
](#USER_CopySnapshot.Shared)
+ [

### 暗号化されたスナップショットのコピーに関する考慮事項
](#USER_CopySnapshot.Encryption)
+ [

### 増分スナップショットのコピーに関する考慮事項
](#USER_CopySnapshot.Incremental)
+ [

### リージョン間スナップショットのコピーに関する考慮事項
](#USER_CopySnapshot.AcrossRegions)
+ [

### オプショングループの考慮事項
](#USER_CopySnapshot.Options)
+ [

### パラメータグループの考慮事項
](#USER_CopySnapshot.Parameters)

### スナップショット保持期限
<a name="USER_CopySnapshot.Retention"></a>

Amazon RDS は自動スナップショットをいくつかの状況で削除します。
+ 保持期間の終了時。
+ DB インスタンスの自動スナップショットを無効にした場合。
+ DB インスタンスを削除した場合。

自動スナップショットをより長期間保持したい場合は、コピーを手動スナップショットとして作成しすると、削除するまで保持されます。デフォルトのストレージ領域を超える場合、手動スナップショットにAmazon RDS ストレージコストが適用される場合があります。

バックアップストレージコストの詳細については、「[Amazon RDS の料金](https://aws.amazon.com/rds/pricing/)」を参照してください。

### 共有スナップショットコピーに関する考慮事項
<a name="USER_CopySnapshot.Shared"></a>

他の AWS アカウント アカウントにより共有されているスナップショットをコピーすることができます。場合によっては、別の AWS アカウント から共有された暗号化されたスナップショットをコピーすることがあります。このような場合、スナップショットの暗号化に使用された AWS KMS key へのアクセス権が必要になります。

**注記**  
Amazon RDS ストレージの費用は、コピーした共有スナップショットに適用されます。Amazon RDS は、コピーしたスナップショットにソース DB インスタンスの ARN をアタッチする場合があります。

スナップショットが暗号化されていない場合、共有 DB スナップショットは、別の AWS リージョン にコピーできます。

**注記**  
同じ AWS リージョン 内の共有増分スナップショットのコピーは、暗号化されていない場合や、初期のフルスナップショットと同じ KMS キーを使用して暗号化されている場合にサポートされます。コピー時に別の KMS キーを使用して後続のスナップショットを暗号化すると、それらの共有スナップショットはフルスナップショットになります。詳細については、「[増分スナップショットのコピーに関する考慮事項](#USER_CopySnapshot.Incremental)」を参照してください。

#### 1 つのステップでのクロスリージョンコピーとクロスアカウントコピー
<a name="cross-region-cross-account-copy"></a>

 スナップショットのクロスリージョンおよびクロスアカウントを 1 つのアクションでコピーするには、まずスナップショットをターゲット AWS アカウントと共有する必要があります。スナップショットが暗号化されている場合は、AWS KMS キーをターゲット AWS アカウントと共有する必要があります。スナップショットがデフォルト AWS KMS キーで暗号化されている場合は、まずスナップショットをコピーしてカスタマーマネージドキーで再暗号化してから、ターゲットアカウントと共有する必要があります。共有されると、ターゲットアカウントからそのアカウント (リージョン内またはクロスリージョン) へのコピーを開始できます。

### 暗号化されたスナップショットのコピーに関する考慮事項
<a name="USER_CopySnapshot.Encryption"></a>

KMS キーを使用して暗号化されたスナップショットをコピーできます。暗号化された スナップショットをコピーする場合は、スナップショットのコピーも暗号化する必要があります。同じ AWS リージョン 内で暗号化されているスナップショットをコピーする場合、元のスナップショットと同じ KMS キーを使用してコピーを暗号化できます。または、別の KMS キー を指定することもできます。

リージョン間で、暗号化されたスナップショットをコピーする場合は、送信先の AWS リージョン で有効な KMS キーを指定する必要があります。これは、リージョン固有の KMS キーでも、マルチリージョンのキーでもかまいません。マルチリージョンの KMS キーの詳細については、「[AWS KMS でマルチリージョンキーを使用する](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html)」を参照してください。

ソーススナップショットはコピープロセス全体で暗号化されたままになります。詳細については、「[Amazon RDS の暗号化された DB インスタンスの制限事項](Overview.Encryption.md#Overview.Encryption.Limitations)」を参照してください。

さらに、暗号化されていない スナップショットのコピーも暗号化できます。この方法で、以前には暗号化されていなかった DB インスタンスに簡単に暗号化を追加できます。このためには、暗号化の準備ができた段階で、DB インスタンスのスナップショットを作成します。次に、そのスナップショットのコピーを作成し、KMS キーを指定してそのスナップショットコピーを暗号化します。こうすることで、この暗号化されたスナップショットから暗号化された DB インスタンスを復元できます。

**重要**  
Amazon RDS などのマネージドサービスを使用する AWS KMS キーポリシーですべてのリソース (\$1) に明示的な拒否ステートメントを使用する場合は、リソース所有アカウントを許可する条件を指定する必要があります。拒否ルールに IAM ユーザーの例外が含まれている場合でも、この条件がないとコピー操作が失敗することがあります。

Amazon RDS の AWS KMS キー管理の詳細については、「[AWS KMS key 管理](Overview.Encryption.Keys.md)」を参照してください。

#### 暗号化されたスナップショットをコピーするために必要なアクセス許可
<a name="USER_CopySnapshot.Encryption.Permissions"></a>

暗号された DB スナップショットをコピーするには、ユーザーに Amazon RDS 暗号化を使用するための次のアクセス許可が必要です。
+ `kms:DescribeKey`
+ `kms:CreateGrant`
+ `kms:Decrypt`
+ `kms:Encrypt`
+ `kms:GenerateDataKey`
+ `kms:GenerateDataKeyWithoutPlaintext`
+ `kms:ReEncrypt`

IAM ポリシー条件を使用して AWS KMS の許可オペレーションを制限する場合は、ポリシーに Amazon RDS に必要なすべてのオペレーションが含まれていることを確認してください。リージョン間で暗号化されたスナップショットをコピーするときに `KMSKeyNotAccessibleFault` エラーが表示された場合は、IAM ポリシーに上記のすべての必要な AWS KMS 権限オペレーションが含まれていることを確認します。

### 増分スナップショットのコピーに関する考慮事項
<a name="USER_CopySnapshot.Incremental"></a>

*差分*スナップショットには、同じ DB インスタンスの最新のスナップショット以降に変更されたデータのみが含まれます。差分スナップショットのコピーは高速であり、フルスナップショットコピーよりストレージコストが低くなります。

スナップショットコピーが増分かどうかは、最近完了したスナップショットコピーとソーススナップショットによって決定されます。最近のスナップショットコピーが削除され、次のコピーがフルコピーである場合、増分コピーではありません。スナップショットコピーは、ソーススナップショットと同じタイプになります。ソーススナップショットが差分スナップショットの場合、スナップショットのコピーは差分スナップショットになります。増分は、最新のスナップショット以降にソース DB インスタンスで発生した変更の数によっても決まります。

AWS アカウント 間でスナップショットをコピーするとき、次のすべての条件に合致する場合のみ、コピーは増分コピーになります。
+ 最新のスナップショットコピーは同じソース DB インスタンスのもので、送信先アカウントに存在します。
+ 送信先アカウントのスナップショットのコピーがすべて、暗号化されていないか、あるいは同じ CMK キーを使って暗号化されていた。暗号化されている場合、同じ系列である必要があります。つまり、継承の深さ、および対応するレベルで一貫した暗号化キーが一致している必要があります。
+ ソース DB インスタンスがマルチ AZ インスタンスの場合、最後のスナップショットが取得されてから別の AZ にフェイルオーバーしていません。

次の例は、フルスナップショットと増分スナップショットの違いを示しています。これらは、共有スナップショットと非共有スナップショットの両方に適用されます。


| スナップショット | Encryption key | フルまたは増分 | 
| --- | --- | --- | 
| S1 | K1 | フル | 
| S2 | K1 | S1 の増分 | 
| S3 | K1 | S2 の増分 | 
| S4 | K1 | S3 の増分 | 
| S1 のコピー (S1C) | K2 | フル | 
| S2 のコピー (S2C) | K3 | フル | 
| S3 のコピー (S3C) | K3 | S2C の増分 | 
| S4 のコピー (S4C) | K3 | S3C の増分 | 
| S4 のコピー 2 (S4C2) | K4 | フル | 

**注記**  
これらの例では、スナップショット S2、S3、および S4 は、前のスナップショットがまだ存在する場合にのみ増分になります。  
コピーも同じです。スナップショットのコピー S3C および S4C は、前のコピーがまだ存在する場合にのみ増分になります。

AWS リージョン 間で増分スナップショットをコピーする方法については、「[フルコピーと増分コピー](#USER_CopySnapshot.AcrossRegions.Full)」を参照してください。

### リージョン間スナップショットのコピーに関する考慮事項
<a name="USER_CopySnapshot.AcrossRegions"></a>

AWS リージョン 間で DB スナップショットをコピーできます。クロスリージョンスナップショットコピーにはデータ転送料金が適用されます。クロスリージョンのスナップショットコピーには、特定の制約と考慮事項が適用されます。

#### クロスリージョン DB スナップショットコピーのリクエスト
<a name="USER_CopySnapshot.AcrossRegions.Policy"></a>

出典リージョンと通信してクロスリージョン DB のスナップショットコピーをリクエストするには、リクエスタ (IAM ロールまたは IAM ユーザー) が出典 DB スナップショットおよび出典リージョンへのアクセス権を持っている必要があります。

リクエスタの IAM ポリシーの特定の条件により、リクエストが失敗する可能性があります。次の例では、DB スナップショットを 米国東部 (オハイオ) から US East (N. Virginia) にコピーしていることを前提としています。これらの例は、リクエストが失敗する原因となるリクエスタの IAM ポリシー内の条件を示しています。
+ リクエスタのポリシーには、`aws:RequestedRegion` の条件があります。

  ```
  ...
  "Effect": "Allow",
  "Action": "rds:CopyDBSnapshot",
  "Resource": "*",
  "Condition": {
      "StringEquals": {
          "aws:RequestedRegion": "us-east-1"
      }
  }
  ```

  ポリシーが出典リージョンへのアクセスを許可していないため、リクエストは失敗します。リクエストを正常に実行するには、出典リージョンとコピー先リージョンの両方を指定します。

  ```
  ...
  "Effect": "Allow",
  "Action": "rds:CopyDBSnapshot",
  "Resource": "*",
  "Condition": {
      "StringEquals": {
          "aws:RequestedRegion": [
              "us-east-1",
              "us-east-2"
          ]
      }
  }
  ```
+ リクエスタのポリシーでは、出典 DB スナップショットへのアクセスが許可されていません。

  ```
  ...
  "Effect": "Allow",
  "Action": "rds:CopyDBSnapshot",
  "Resource": "arn:aws:rds:us-east-1:123456789012:snapshot:target-snapshot"
  ...
  ```

  リクエストを正常に実行するには、出典スナップショットとターゲットスナップショットの両方を指定します。

  ```
  ...
  "Effect": "Allow",
  "Action": "rds:CopyDBSnapshot",
  "Resource": [
      "arn:aws:rds:us-east-1:123456789012:snapshot:target-snapshot",
      "arn:aws:rds:us-east-2:123456789012:snapshot:source-snapshot"
  ]
  ...
  ```
+ リクエスターのポリシーが `aws:ViaAWSService` を拒否します。

  ```
  ...
  "Effect": "Allow",
  "Action": "rds:CopyDBSnapshot",
  "Resource": "*",
  "Condition": {
      "Bool": {"aws:ViaAWSService": "false"}
  }
  ```

  出典リージョンとの通信は、リクエスタに代わって RDS によって行われます。リクエストを正常に実行するには、AWS のサービスからの呼び出しを拒否しないでください。
+ リクエスタのポリシーには、`aws:SourceVpc` または `aws:SourceVpce` の条件があります。

  RDS がリモートリージョンへの呼び出しを行うとき、指定された VPC または VPC エンドポイントからの呼び出しではないため、これらのリクエストは失敗する可能性があります。

リクエストが失敗する原因となる前述の条件のいずれかを使用する必要がある場合は、ポリシーに `aws:CalledVia` とともに 2 番目のステートメントを含めて、リクエストを成功させることができます。例えば、次のように `aws:CalledVia` と `aws:SourceVpce` を使用できます。

```
...
"Effect": "Allow",
"Action": "rds:CopyDBSnapshot",
"Resource": "*",
"Condition": {
    "Condition" : { 
        "ForAnyValue:StringEquals" : {
          "aws:SourceVpce": "vpce-1a2b3c4d"
        }
     }
},
{
    "Effect": "Allow",
    "Action": [
        "rds:CopyDBSnapshot"
    ],
    "Resource": "*",
    "Condition": {
        "ForAnyValue:StringEquals": {
            "aws:CalledVia": [
                "rds.amazonaws.com"
            ]
        }
    }
}
```

詳細については、*IAM ユーザーガイド* の 「[IAM のポリシーとアクセス許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)」を参照してください。

#### スナップショットコピーの承認
<a name="USER_CopySnapshot.AcrossRegions.Auth"></a>

クロスリージョン DB スナップショットコピーリクエストが `success` を返した後、RDS はバックグラウンドでコピーをスタートします。RDS が出典スナップショットにアクセスするための承認が作成されます。この承認は、出典 DB スナップショットをターゲット DB スナップショットにリンクし、RDS が指定されたターゲットスナップショットにのみコピーできるようにします。

 承認は、サービスにリンクされた IAM ロールの `rds:CrossRegionCommunication` アクセス許可を使用して RDS によって検証されます。コピーが承認されると、RDS は出典リージョンと通信し、コピーを完了します。

 RDS は、`CopyDBSnapshot` リクエストによって以前に許可されていない DB スナップショットにアクセスできません。コピーが完了すると、認可は取り消されます。

 RDS は、サービスリンクされたロールを使用して、出典リージョンでの承認を確認します。コピープロセス中にサービスリンクされたロールを削除すると、コピーは失敗します。

詳細については、*IAM ユーザーガイド*の「[サービスにリンクされたロールの使用](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html)」を参照してください。

#### AWS Security Token Service 認証情報の使用
<a name="USER_CopySnapshot.AcrossRegions.assumeRole"></a>

グローバル AWS Security Token Service (AWS STS) エンドポイントからのセッショントークンは、デフォルトで有効になっている AWS リージョン (商用リージョン) でのみ有効です。`assumeRole` の AWS STS API 操作からの認証情報を使用する場合、出典リージョンがオプトインリージョンである場合は、そのリージョンのエンドポイントを使用します。それ以外の場合、このリクエストは失敗します。これは、認証情報が両方のリージョンで有効である必要があるために発生します。これは、そのリージョンの AWS STS エンドポイントが使用されている場合にのみオプトインリージョンに当てはまります。

グローバルエンドポイントを使用するには、オペレーションで両方のリージョンで有効になっていることを確認します。`Valid in all AWS リージョン` アカウント設定でグローバルエンドポイントを AWS STS に設定します。

 署名付き URL パラメータの認証情報にも同じルールが適用されます。

詳細については、*IAM ユーザーガイド*の「[AWS リージョン での AWS STS の管理](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)」を参照してください。

#### レイテンシーと複数のコピーリクエスト
<a name="USER_CopySnapshot.AcrossRegions.Latency"></a>

関連する AWS リージョン およびデータのコピー量に応じて、リージョン間のスナップショットのコピーは完了するまでに長時間かかることがあります。

場合によっては、特定のコピー元 AWS リージョン からの多数のクロスリージョンスナップショットコピーのリクエストが発生することがあります。このような場合、Amazon RDS は進行中のいくつかのコピーが完了するまで、そのコピー元 AWS リージョン からの新しいクロスリージョンコピーリクエストをキューに入れることがあります。コピーリクエストがキューに入っている間は、そのリクエストに関する進捗情報は表示されません。コピーがスタートされたときに、進捗情報は表示されます。

#### フルコピーと増分コピー
<a name="USER_CopySnapshot.AcrossRegions.Full"></a>

コピー元スナップショットとは異なる AWS リージョン にスナップショットをコピーする場合、初期のコピーでは、増分スナップショットをコピーした場合でもフルスナップショットコピーになります。フルスナップショットコピーには、DB インスタンスを復元するために必要なデータやメタデータすべてが含まれます。最初のスナップショットコピーの後、同じ DB インスタンスの増分スナップショットを同じ AWS アカウント 内の同じデスティネーションリージョンにコピーできます。増分スナップショットの詳細については、「[増分スナップショットのコピーに関する考慮事項](#USER_CopySnapshot.Incremental)」を参照してください。

AWS リージョン 間での増分スナップショットコピーは、暗号化されていないスナップショットと暗号化されたスナップショットの両方がサポートされています。

別の AWS リージョン にスナップショットをコピーする場合、次の条件に合致すればコピーは増分となります。
+ スナップショットが以前、コピー先のリージョンにコピーされたことがある。
+ 最近のスナップショットコピーがコピー先のリージョンにまだ存在する。
+ 送信先リージョンのスナップショットのコピーがすべて、暗号化されていないか、あるいは同じ KMS キーを使って暗号化されていた。

### オプショングループの考慮事項
<a name="USER_CopySnapshot.Options"></a>

DB オプショングループは、作成元の AWS リージョン 専用であり、作成元の AWS リージョン と異なる AWS リージョン では使用できません。

Oracle データベースの場合、AWS CLI または RDS API を使用して、AWS アカウント と共有されているスナップショットからカスタム DB オプショングループをコピーできます。同じ AWS リージョン 内のオプショングループのみコピーできます。オプショングループは、宛先アカウントに既にコピーされており、コピー後に変更が加えられていない場合はコピーされません。ソースのオプショングループが以前にコピーされ、コピー後に変更されている場合、RDS では新しいバージョンを宛先アカウントにコピーします。デフォルトのオプショングループはコピーされません。

リージョン間でスナップショットをコピーする際に、スナップショットの新しいオプショングループを指定できます。新しいオプショングループは、スナップショットをコピーする前に作成することをお勧めします。オプショングループを作成するには、コピー先の AWS リージョン で、元の DB インスタンスと同じ設定を使用します。新しい AWS リージョン に既にある場合は、それを使用できます。

場合によっては、スナップショットをコピーし、そのスナップショットの新しいオプショングループを指定しないこともあるでしょう。このような場合、スナップショットを復元すると、DB インスタンスはデフォルトのオプショングループを取得します。新しい DB インスタンスでコピー元と同じ設定を使用するには、以下の操作を行います。

1. オプショングループを作成するには、コピー先の AWS リージョン で、元の DB インスタンスと同じ設定を使用します。新しい AWS リージョン に既にある場合は、それを使用できます。

1. コピー先の AWS リージョン でスナップショットを復元したら、新しい DB インスタンスを変更し、前のステップの新規または既存のオプショングループを追加します。

### パラメータグループの考慮事項
<a name="USER_CopySnapshot.Parameters"></a>

リージョン間でスナップショットをコピーすると、コピーにはコピー元の DB インスタンスで使用されているパラメータグループは含まれません。スナップショットを復元して新しい DB インスタンスを作成すると、その DB インスタンスには、作成先 AWS リージョン でのデフォルトのパラメータグループが適用されます。新しい DB インスタンスでコピー元と同じパラメータを使用するには、以下の操作を行います。

1. DB パラメータグループを作成するには、コピー先の AWS リージョン で元の DB インスタンスと同じ設定を使用します。新しい AWS リージョン に既にある場合は、それを使用できます。

1. コピー先の AWS リージョン でスナップショットを復元したら、新しい DB インスタンスを変更し、前のステップの新規または既存のパラメータグループを追加します。