DynamoDB テーブルをポイントインタイムに復元する - Amazon DynamoDB

DynamoDB テーブルをポイントインタイムに復元する

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

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

テーブルをポイントインタイムに復元する (コンソール)

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

注記

この手順は、ポイントインタイムリカバリを有効にしていることを前提としています。Music テーブルでこの機能を有効にするには、[概要] タブの [テーブルの詳細] セクション で、[ポイントインタイムリカバリ] の [有効化] を選択します。

テーブルをポイントインタイムに復元するには

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

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

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

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

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

    注記

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

  6. 復元可能な時刻を確認するには、[復元日時] を [Latest restore date (最も遅い復元日時)] に設定します。続いて、[Restore table (テーブルの復元)] を選択して復元プロセスを開始します。

    注記

    [Earliest restore date (最も早い復元日時)] から [Latest restore date (最も遅い復元日時)] の任意の時点に復元することができます。DynamoDB は、テーブルデータを、選択された日時 (day:hour:minute:second) に基づいた状態にテーブルデータを復元します。

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

テーブルをポイントインタイムに復元する (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 パラメータは、CreateTable コマンドで使用される sse-specification-override パラメータと同じ値を使用します。詳細については、「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 ポリシーでも、同様の問題が発生する可能性があります。

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