Amazon DynamoDB
開発者ガイド (API バージョン 2012-08-10)

バックアップおよび復元: 仕組み

このセクションでは、Amazon DynamoDB でバックアップおよび復元プロセス中の概要について示します。

バックアップ

オンデマンドバックアップを作成する場合、リクエストのタイムマーカーがカタログ化されます。このバックアップは、前回の完全なテーブルのスナップショットへのリクエスト時間までにすべての変更を適用して、非同期的に作成されます。バックアップリクエストは瞬時に処理され、数分以内に利用できるようになります。

注記

オンデマンドバックアップを作成する度に、テーブルデータ全体がバックアップされます。オンデマンドバックアップの実行可能数に制限はありません。

DynamoDB では、テーブルのプロビジョニングされたスループットを消費することなく、バックアップすることができます。

DynamoDB バックアップでは、項目間の因果整合性は保証されません。ただし、バックアップの更新間のスキューは、通常 1 秒未満です。

以下は、データとともにバックアップに含まれます (そして、除外できません)。

  • グローバルセカンダリインデックス (GSI)

  • ローカルセカンダリインデックス (LSI)

  • プロビジョニングされた読み込みおよび書き込みキャパシティー

復元されたテーブル項目は、テーブル全体を復元すると、LSI の予測と一致し、最終的に GSI 予測とも一致します。復元を開始するときに、セカンダリインデックスの一部または全体を選択的に削除できます。

以下は、復元されたテーブルで手動で設定する必要があります。

  • Auto Scaling ポリシー

  • AWS Identity and Access Management (IAM) ポリシー

  • Amazon CloudWatch メトリクスおよびアラーム

  • タグ

  • ストリーム設定

  • Time to live (TTL) 設定

バックアップ進行中は、以下を行うことができません。

  • バックアップオペレーションの一時停止またはキャンセル。

  • バックアップのソーステーブルの削除。

  • テーブルのバックアップ中におけるテーブルのバックアップの無効化。

注記

現在、バックアップおよび復元は、ソーステーブルと同じ AWS リージョンでのみ行うことができます。

AWS Lambda 関数を使用して、定期的バックアップまたは以降のバックアップをスケジュールできます。詳細については、「Amazon DynamoDB のオンデマンドバックアップをスケジュールするサーバーレスソリューション」を参照してください。

スケジューリングスクリプトとクリーンアップジョブを作成したくない場合は、AWS バックアップを使用して DynamoDB テーブルのスケジュールと保存ポリシーを含むバックアップ計画を作成できます。AWS バックアップはバックアップを実行し、期限が切れるとそれらを削除します。

コンソールを使用している場合、AWS バックアップを使用して作成されたすべてのバックアップは、[Backup type (バックアップの種類)] が AWS に設定されて [バックアップ] タブに表示されます。

注記

AWS バックアップは、DynamoDB コンソールから削除することはできません。AWS バックアップコンソールを使用して、これらのバックアップを管理できます。

バックアップを実行する方法については、「DynamoDB テーブルのバックアップ」を参照してください。

復元

テーブルは、テーブルのプロビジョニングされたスループットを消費することなく、復元されます。送信先テーブルは、バックアップがリクエストされた時間に記録されたように、送信元テーブルと同じプロビジョニングされた読み込みキャパシティーユニットおよびプロビジョニングされた書き込みキャパシティーユニットを使用して設定されます。復元プロセスでは、ローカルセカンダリインデックスおよびグローバルセカンダリインデックスも復元されます。

テーブルデータ全体は、バックアップから新しいテーブルにのみ復元することができます。復元されたテーブルに書き込むことができるのは、アクティブになってからです。

注記

復元オペレーション中は既存のテーブルを上書きすることはできません。

テーブルの復元にかかる時間は複数の要因によって異なり、復元時間は必ずしもテーブルのサイズに直接関連していません。たとえば、並列化によって、3 GB のテーブルを復元するのに要するのと同じ時間で 300 GB のテーブルを復元できる場合もあります。復元時間の考慮事項のいくつかをご紹介します。

  • 新しいテーブルにバックアップを復元します。新しいテーブルを作成して復元プロセスを開始するためのすべてのアクションを実行するのに、テーブルが空でも最大で 20 分かかることがあります。

  • プライマリキー全体に均等にデータが分散しているテーブルについては、復元時間は、テーブル全体のサイズではなく、項目数による最大の単一パーティションに比例します。数十億の項目のある最大のパーティションについては、復元に 10 時間足らずの時間がかかる場合があります。

  • ソーステーブルに大きなスキューのあるデータが含まれている場合、復元時間は長くなります。たとえば、テーブルのプライマリキーが 1 年のうちの 1 か月をパーティショニングに使い、すべてのデータが 12 月からのものだった場合、スキューされたデータがあります。

復元を実行する方法については、「バックアップからの DynamoDB テーブルの復元」を参照してください。

IAM ポリシーを使用してアクセスコントロールできます。詳細については、「IAM を使用した DynamoDB バックアップおよび復元」を参照してください。

バックアップおよび復元を行うコンソールと API のアクションはすべて、AWS CloudTrail にキャプチャおよび記録され、ログ記録、継続的モニタリング、監査に使用されます。

このページの内容: