DynamoDB のバックアップと復旧 - AWS 規範ガイダンス

DynamoDB のバックアップと復旧

DynamoDB には、DynamoDB のテーブルデータをほぼ継続的にバックアップする PITR が用意されています。有効にすると、明示的にオフにするまで、DynamoDB は過去 35 日間のテーブルの増分バックアップを維持します。

また、DynamoDB コンソール、AWS CLI、または DynamoDB API を使用して、DynamoDB テーブルのオンデマンドバックアップを作成することもできます。詳細については、「DynamoDB テーブルをバックアップする」を参照してください。AWS Backup を使用して、定期的な、または今後のバックアップをスケジュールできます。または Lambda 関数を使用して、バックアップ方法をカスタマイズおよび自動化できます。DynamoDB のバックアップに Lambda 関数を使う方法については、ブログ記事 「Amazon DynamoDB のオンデマンドバックアップをスケジュールするサーバーレスソリューション」を参照してください。スケジューリングスクリプトとクリーンアップジョブを作成したくない場合は、AWS Backup を使用してバックアップ計画を作成できます。バックアッププランには、DynamoDB テーブルのスケジュールと保持ポリシーが含まれます。AWS Backup は、保持スケジュールに基づいてバックアップを作成し、以前のバックアップを削除します。また AWS Backup には、低コストの階層型ストレージ、クロスアカウント、クロスリージョンコピーなど、DynamoDB サービスでは利用できない高度な DynamoDB バックアップオプションも含まれています。詳細については、「高度な DynamoDB バックアップ」を参照してください。

リストアした DynamoDB テーブルに対して、手動で以下の設定を行う必要があります:

  • 自動スケーリングポリシー

  • IAM ポリシー

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

  • タグ

  • ストリーム設定

  • TTL 設定

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

復元プロセスでは、新しく復元されたテーブル名を使用するようにクライアントにどのように指示するかを考慮する必要があります。設定ファイル、AWS Systems Manager パラメータストア値、またはクライアントが使用するテーブル名を反映するように動的に更新できる別の参照から DynamoDB テーブル名を取得するようにアプリケーションとクライアントを設定できます。

復元プロセスの一環として、切り替えプロセスを慎重に検討する必要があります。IAM 権限を使用して既存の DynamoDB テーブルへのアクセスを拒否し、新しいテーブルへのアクセスを許可することもできます。その後、新しいテーブルを使用するようにアプリケーションとクライアントの設定を更新できます。また、既存の DynamoDB テーブルと新しく復元した DynamoDB テーブルとの違いを調整する必要がある場合もあります。