

# バックアップからの DynamoDB テーブルの復元
<a name="Restore.Tutorial"></a>

このセクションでは、 Amazon DynamoDB コンソールまたは AWS Command Line Interface (AWS CLI) を使用してバックアップからテーブルを復元する方法について説明します。

**注記**  
AWS CLI を使用する場合は、最初に設定する必要があります。詳細については、「[DynamoDB にアクセスする](AccessingDynamoDB.md)」を参照してください。

**Topics**

## バックアップからのテーブルの復元 (コンソール)
<a name="restoretable_console"></a>

以下の手順では、`Music` チュートリアルで作成された `MusicBackup` ファイルを使用して [DynamoDB テーブルのバックアップ](Backup.Tutorial.md) を復元する方法について説明します。

**注記**  
この手順では、`Music` が既に存在していないことを前提として、これを `MusicBackup` ファイルを使用してリストアする方法を示します。

**バックアップからテーブルを復元するには**

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

1. コンソールの左側のナビゲーションペインで、[**Backups (バックアップ)**] を選択します。

1. バックアップのリストで、[`MusicBackup`] を選択します。  
![\[バックアップリストおよびバックアップの作成ボタンのスクリーンショット。\]](http://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/images/select_musicbackup.png)

1. **[復元]** を選択します。

1. 新しいテーブルの名前を **Music** と入力します。バックアップ名およびその他のバックアップの詳細を確認します。続いて、[**Restore table (テーブルの復元)**] を選択して復元プロセスを開始します。
**注記**  
テーブルは、同じ AWS リージョンまたはバックアップが存在する別のリージョンに復元できます。新しく復元されるテーブルで、セカンダリインデックスの作成を除外することもできます。また、別の暗号化モードを指定することもできます。  
バックアップから復元されたテーブルは、常に DynamoDB 標準テーブルクラスを使用して作成されます。  
![\[バックアップテーブルの詳細が表示されたバックアップ画面の復元テーブルのスクリーンショット。\]](http://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/images/restore_table.png)

   復元中のテーブルのステータスは、[**Creating (作成中)**] と表示されます。復元プロセスが終了すると、`Music` テーブルのステータスは [**アクティブ**] に変わります。

## バックアップからのテーブルの復元 (AWS CLI)
<a name="restoretable_cli"></a>

AWS CLI チュートリアルで作成されている `Music` を使用して、`MusicBackup` で [DynamoDB テーブルのバックアップ](Backup.Tutorial.md) テーブルを復元するには、以下の手順を実行します。

**バックアップからテーブルを復元するには**

1. `list-backups` コマンドを使用して復元するバックアップを確認します。この例では `MusicBackup` を使用します。

   ```
   aws dynamodb list-backups
   ```

   バックアップの詳細をさらに取得するには、`describe-backup` コマンドを使用します。前のステップから入力の `backup-arn` を取得できます。

   ```
   aws dynamodb describe-backup \
   --backup-arn arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/01489173575360-b308cd7d
   ```

1. バックアップからテーブルを復元します。この場合、`MusicBackup` は `Music` テーブルを同じ AWS リージョンに復元します。

   ```
   aws dynamodb restore-table-from-backup \
   --target-table-name Music \
   --backup-arn arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/01489173575360-b308cd7d
   ```

1. カスタムテーブル設定で、バックアップからテーブルを復元します。この場合、`MusicBackup` は `Music` テーブルを復元し、復元したテーブルの暗号化モードを指定します。
**注記**  
`sse-specification-override` パラメータは、`sse-specification-override` コマンドで使用される `CreateTable` パラメータと同じ値を使用します。詳細については、「[DynamoDB での暗号化テーブルの管理](encryption.tutorial.md)」を参照してください。

   ```
   aws dynamodb restore-table-from-backup \
   --target-table-name Music \
   --backup-arn arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/01581080476474-e177ebe2 \
   --sse-specification-override Enabled=true,SSEType=KMS,KMSMasterKeyId=abcd1234-abcd-1234-a123-ab1234a1b234
   ```

   テーブルは、バックアップが存在する別の AWS リージョンに復元できます。
**注記**  
`sse-specification-override` パラメータは、クロスリージョン復元には必須ですが、送信元テーブルと同じリージョンに復元する場合はオプションです。
コマンドラインからクロスリージョン復元を実行する場合は、デフォルトの AWS リージョンを希望のリージョンに設定する必要があります。詳細については、「AWS Command Line Interface のユーザーガイド」の「[コマンドラインオプション](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-options.html)」を参照してください。

   ```
   aws dynamodb restore-table-from-backup \
   --target-table-name Music \
   --backup-arn arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/01581080476474-e177ebe2 \
   --sse-specification-override Enabled=true,SSEType=KMS
   ```

   復元済みテーブルの請求モードとプロビジョニングされたスループットをオーバーライドできます。

   ```
   aws dynamodb restore-table-from-backup \
   --target-table-name Music \
   --backup-arn arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/01489173575360-b308cd7d \
   --billing-mode-override PAY_PER_REQUEST
   ```

   復元済みテーブルで、一部またはすべてのセカンダリインデックスの作成を除外できます。
**注記**  
復元済みテーブルで、一部またはすべてのセカンダリインデックスの作成を除外すると、復元はより高速でコスト効率が高くなります。

   ```
   aws dynamodb restore-table-from-backup \
   --target-table-name Music \
   --backup-arn arn:aws:dynamodb:us-east-1:123456789012:table/Music/backup/01581081403719-db9c1f91 \
   --global-secondary-index-override '[]' \
   --sse-specification-override Enabled=true,SSEType=KMS
   ```
**注記**  
提供されたセカンダリインデックスは、既存のインデックスに一致します。復元時に新しいインデックスを作成することはできません。

   さまざまなオーバーライドの組み合わせを使用できます。たとえば、次のように単一のグローバルセカンダリインデックスを使用すると同時に、プロビジョニングされたスループットを変更できます。

   ```
   aws dynamodb restore-table-from-backup \
   --target-table-name Music \
   --backup-arn arn:aws:dynamodb:eu-west-1:123456789012:table/Music/backup/01581082594992-303b6239 \
   --billing-mode-override PROVISIONED \
   --provisioned-throughput-override ReadCapacityUnits=100,WriteCapacityUnits=100 \
   --global-secondary-index-override IndexName=singers-index,KeySchema=["{AttributeName=SingerName,KeyType=HASH}"],Projection="{ProjectionType=KEYS_ONLY}",ProvisionedThroughput="{ReadCapacityUnits=5,WriteCapacityUnits=5}" \
   --sse-specification-override Enabled=true,SSEType=KMS
   ```

 復元を確認するには、`describe-table` コマンドで `Music` テーブルを指定します。

```
aws dynamodb describe-table --table-name Music 
```

バックアップから復元中のテーブルのステータスは、[**Creating (作成中)**] と表示されます。復元プロセスが終了すると、`Music` テーブルのステータスは [**アクティブ**] に変わります。

**重要**  
復元中は、IAM ロールのポリシーを変更または削除しないでください。行った場合、予期しない動作が発生する場合があります。たとえば、テーブルの復元中にテーブルの書き込み権限を削除したとします。この場合、基本となる `RestoreTableFromBackup` オペレーションを使用しても、復元されたデータをテーブルに書き込むことはできません。  
復元オペレーションが完了したら、IAM ロールポリシーを変更または削除できます。  
復元先のターゲットテーブルにアクセスするための[送信元 IP の制限](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceip)を含む IAM ポリシーでは、プリンシパルによって直接行われたリクエストにのみその制限が適用されるように、[https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-viaawsservice](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-viaawsservice) キーを `false` に設定する必要があります。そうしないと、復元はキャンセルされます。  
バックアップが AWS マネージドキー またはカスタマーマネージドキーで暗号化されている場合、復元中にキーを無効にしたり削除したりすると復元が失敗します。  
復元操作が完了したら、復元されたテーブルの暗号化キーを変更し、古いキーを無効化または削除できます。