DynamoDB テーブルを特定の時点に復元 - Amazon DynamoDB

DynamoDB テーブルを特定の時点に復元

Amazon DynamoDB ポイントインタイムリカバリ (PITR) は、DynamoDB テーブルデータを連続バックアップする機能です。テーブルをポイントインタイムに復元するには、DynamoDB コンソール、または AWS Command Line Interface (AWS CLI) を使用します。ポイントインタイムリカバリプロセスは、新しいテーブルに復元されます。

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

DynamoDB テーブルを特定の時点に復元 (コンソール)

DynamoDB コンソールを使用して、Music という既存のテーブルを特定の時点に復元する方法を次の例に示します。

注記

この手順は、ポイントインタイムリカバリを有効にしていることを前提としています。Music テーブルで有効にするには、[バックアップ] タブの [ポイントインタイムリカバリ (PITR)] セクションで、[編集] を選択してから、[ポイントインタイムリカバリを有効にする] の横にあるチェックボックスをオンにします。

テーブルをポイントインタイムに復元するには
  1. AWS Management Console にサインインして DynamoDB コンソール (https://console.aws.amazon.com/dynamodb/) を開きます。

  2. コンソールの左側のナビゲーションペインで、[テーブル] を選択します。

  3. テーブルのリストで、[Music] テーブルを選択します。

  4. Music テーブルの [バックアップ] タブの [ポイントインタイムリカバリ (PITR)] セクションで、[復元] を選択します。

  5. 新しいテーブルの名前に MusicMinutesAgo と入力します。

    注記

    テーブルは、同じ AWS リージョンまたは送信元テーブルが存在する別のリージョンに復元できます。復元済みテーブルで、セカンダリインデックスの作成を除外することもできます。また、別の暗号化モードを指定することもできます。

  6. 復元可能な時刻を確認するには、[復元日時] を [最も早い] に設定します。次に、[復元] を選択して復元プロセスを開始します。

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

テーブルを特定の時点に復元する (AWS CLI)

AWS CLI を使用して、Music という既存のテーブルをポイントインタイムに復元する方法を次の手順に示します。

注記

この手順は、ポイントインタイムリカバリを有効にしていることを前提としています。この機能を Music テーブルに対して有効にするには、次のコマンドを実行します。

aws dynamodb update-continuous-backups \ --table-name Music \ --point-in-time-recovery-specification PointInTimeRecoveryEnabled=True

テーブルをポイントインタイムに復元するには
  1. Music でポイントインタイムリカバリが有効になっていることを確認するには、describe-continuous-backups コマンドを使用します。

    aws dynamodb describe-continuous-backups \ --table-name Music

    連続バックアップ (テーブル作成時は自動的に有効になる) とポイントインタイムリカバリは有効化されています。

    { "ContinuousBackupsDescription": { "PointInTimeRecoveryDescription": { "PointInTimeRecoveryStatus": "ENABLED", "EarliestRestorableDateTime": 1519257118.0, "LatestRestorableDateTime": 1520018653.01 }, "ContinuousBackupsStatus": "ENABLED" } }
  2. テーブルをポイントインタイムに復元します。この場合、Music テーブルは同じ AWS リージョンの LatestRestorableDateTime (最大 5 分前) に復元されます。

    aws dynamodb restore-table-to-point-in-time \ --source-table-name Music \ --target-table-name MusicMinutesAgo \ --use-latest-restorable-time
    注記

    特定の時点に復元することもできます。そのためには、--restore-date-time 引数を使用してコマンドを実行し、タイムスタンプを指定します。過去 35 日間の任意の時点を指定できます。たとえば、次のコマンドでは EarliestRestorableDateTime にテーブルを復元します。

    aws dynamodb restore-table-to-point-in-time \ --source-table-name Music \ --target-table-name MusicEarliestRestorableDateTime \ --no-use-latest-restorable-time \ --restore-date-time 1519257118.0

    特定の時点に復元する場合の --no-use-latest-restorable-time 引数の指定はオプションです。

  3. カスタムテーブル設定で、テーブルを特定時点に復元します。この場合、Music テーブルは、LatestRestorableDateTime に復元されます (5 分前まで)。

    復元済みテーブルに対して、次のように別の暗号化モードを指定できます。

    注記

    sse-specification-override パラメータは、sse-specification-override コマンドで使用される CreateTable パラメータと同じ値を使用します。詳細については、「DynamoDB での暗号化テーブルの管理」を参照してください。

    aws dynamodb restore-table-to-point-in-time \ --source-table-name Music \ --target-table-name MusicMinutesAgo \ --use-latest-restorable-time \ --sse-specification-override Enabled=true,SSEType=KMS,KMSMasterKeyId=abcd1234-abcd-1234-a123-ab1234a1b234

    テーブルは、送信元テーブルが存在する別の AWS リージョンから復元できます。

    注記
    • sse-specification-override パラメータは、クロスリージョン復元には必須ですが、送信元テーブルと同じリージョンに復元する場合はオプションです。

    • クロスリージョン復元には、source-table-arn パラメータを指定する必要があります。

    • コマンドラインからクロスリージョン復元を実行する場合は、デフォルトの AWS リージョンを希望のリージョンに設定する必要があります。詳細については、「AWS Command Line Interface のユーザーガイド」の「コマンドラインオプション」を参照してください。

    aws dynamodb restore-table-to-point-in-time \ --source-table-arn arn:aws:dynamodb:us-east-1:123456789012:table/Music \ --target-table-name MusicMinutesAgo \ --use-latest-restorable-time \ --sse-specification-override Enabled=true,SSEType=KMS,KMSMasterKeyId=abcd1234-abcd-1234-a123-ab1234a1b234

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

    aws dynamodb restore-table-to-point-in-time \ --source-table-name Music \ --target-table-name MusicMinutesAgo \ --use-latest-restorable-time \ --billing-mode-override PAY_PER_REQUEST

    復元済みテーブルで、一部またはすべてのセカンダリインデックスの作成を除外できます。

    注記

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

    aws dynamodb restore-table-to-point-in-time \ --source-table-name Music \ --target-table-name MusicMinutesAgo \ --use-latest-restorable-time \ --global-secondary-index-override '[]'

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

    aws dynamodb restore-table-to-point-in-time \ --source-table-name Music \ --target-table-name MusicMinutesAgo \ --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=50,WriteCapacityUnits=50}" \ --sse-specification-override Enabled=true,SSEType=KMS \ --use-latest-restorable-time

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

aws dynamodb describe-table --table-name MusicEarliestRestorableDateTime

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

重要

復元中は、復元を目的とした、IAM エンティティ (例: ユーザー、グループ、ロール) を付与する AWS Identity and Access Management (IAM) ポリシーの変更や削除を行わないでください。行った場合、予期しない動作が発生する場合があります。たとえば、テーブルの復元中にテーブルの書き込み権限を削除したとします。この場合、基本となる RestoreTableToPointInTime オペレーションを使用しても、復元されたデータをテーブルに書き込むことはできません。復元先のターゲットテーブルにアクセスするための送信元 IP 制限を含む IAM ポリシーでも、同様の問題が発生する可能性があります。

復元オペレーション完了後は、アクセス権限の変更または削除のみ行うことができます。