【AWS】DynamoDBのバックアップ、復元、別リージョンへのコピー

AWS

1. 概要

AWSで作成した各関数やテーブルのバックアップを取りたい、もしくは他のユーザーが作成した資材を取り込みたいけどどうすれば良いか・・・
といった悩みが業務において発生すると思います。

今回は以下についてバックアップと復元方法について解説致します。
・DynamoDB

2. 注意事項

今回の記事では概要に示した内容についてバックアップと復元方法を示しますが、本記事の内容で全ての設定のバックアップと復元ができるわけではありません
DynamoDBの場合、オプション設定であるPITRについて移行後のテーブルには反映されていませんでした。
以外にもユーザー独自で設定したオプション内容が反映されているかは作業者自身で確認願います。
実施前に各機能の設定事項のハードコピーを控えるなどをおススメ致します。

3. AWSアカウントにサインアップ

3-1. 前提条件

4. DynamoDBのバックアップ

4-1. AWS Backupからナビゲーションペインより「保護されたリソース」を選択し、
「オンデマンドバックアップを作成」を押下する。

4-2. 表示された画面から以下を選択し、「オンデマンドバックを作成」を押下する。
  ※以外の部分は必要に応じて設定する。

  • リソースタイプ:DynamoDB
  • テーブル名:バックアップしたいテーブル
  • バックアップ期間:今すぐバックアップを作成

4-3. AWS Backupからナビゲーションペインより「ジョブ」を選択し、
  バックアップのステータスを確認する。
  対象のステータスが「完了」と表示されていればバックアップが成功している。
  ※ステータスが「完了」となるまで数分掛かる。

5. 別リージョンへのコピー

※本内容は別リージョンへのコピーが必要な場合のみ必要です。
 同一リージョンで復元したい場合は本手順はスキップし、以下に進んで下さい・
 6. DynamoDBの復元

5-1. DynamoDBからナビゲーションペインより「バックアップ」を選択する。
  別リージョンへの移行対象を選択し「コピー」を押下する。

5-2.表示された画面から「AWS Backupでコピー」を押下する。

5-3.コピー先のリージョンを選択して「コピー」を押下する。

5-4. コピーで指定したリージョンに切り替え、DynamoDBからナビゲーションペインより
  「バックアップ」を選択する。
  コピーしたテーブルがバックアップされていることを確認する。
  ※補足ですが、赤枠の作成時間はバックアップをした時刻ではありません。
   テーブルを新規作成又は更新した時刻と思われます。

6. DynamoDBの復元

6-1. DynamoDBより、バックアップを選択し、
  復元したいテーブルにチェックを入れ「復元」を押下する。

6-2. 表示された画面から以下を選択し、「復元」を押下する。
  ※記載以外の部分は必要に応じて設定する。

  • 復元されたテーブルの名称:復元するテーブル名を一意に記載
  • 暗号化キー:Amazon DynamoDBが所有 (※必要に応じて適宜選択)

6-3. AWS Backupからナビゲーションペインより「ジョブ」、タブより「復元ジョブ」を選択する。
  復元対象のテーブルのステータスを確認する。
  対象のテーブルのステータスが「完了」と表示されていれば復元が成功している。
  ※ステータスが「完了」となるまで数分掛かる。

6-4. DynamoDBからナビゲーションペインより「テーブル」を選択する。
  復元対象のテーブルのリンクを押下する。

6-5. 表示されたテーブル概要から「テーブルアイテムの探索」を押下する。

6-6. 赤枠の返された項目がバックアップ前後で差異無いか確認する。
  必要に応じて青枠のスキャンまたはクエリを実施する。
  ※実施方法は以下のリンクを参照
   ・【AWS】Amazon DynamoDBを使ってみる(Management Console)

7. 備考

今回はDynamoDBのバックアップと復元について、リージョンを跨いだ場合の方法も併せて記載しました。
今後、APIGatewayやLambdaのバックアップと復元についても記載していく予定です。

8. 参考

  1. バックアップの作成
  2. AWS Backup を使用した DynamoDB テーブルのバックアップのコピー

関連記事

  1. AWS

    【AWS】AWS SAMを使いsamconfig.tomlでデプロイ先…

  2. AWS

    【AWS】AWSアカウントを作成し、マネジメントコンソールにサインイン…

  3. AWS

    NuGetパッケージの管理で「このソースでは利用できません」と表示され…

  4. AWS

    【AWS】API Gatewayを使ってみる

  5. AWS

    【AWS】Amazon DynamoDBを使ってみる(CLI、Part…

  6. AWS

    【AWS】AWS SAMを使いCLIでDynamoDBやLambda関…

最近の記事

  1. PHP
  2. PHP

制作実績一覧

  1. Checkeys