{DynamoDB}DynamoDB バックアップ

https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/backuprestore_HowItWorks.html


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

Auto Scaling ポリシー
AWS Identity and Access Management (IAM) ポリシー
Amazon CloudWatch メトリクスおよびアラーム
タグ
ストリーム設定
有効期限 (TTL) 設定
ポイントインタイムリカバリ設定


ポイントインタイムリカバリを使用すれば、過去 35 日間の任意の時点にテーブルを復元することができます。

 

You can restore the table to the same AWS Region or to a different Region from where the backup resides

-- 1. テストテーブル作成
aws dynamodb create-table \
--table-name tab1 \
--attribute-definitions \
AttributeName=col1,AttributeType=S \
AttributeName=col2,AttributeType=S \
--key-schema \
AttributeName=col1,KeyType=HASH \
AttributeName=col2,KeyType=RANGE \
--billing-mode=PAY_PER_REQUEST


aws dynamodb describe-table --table-name tab1

-- 2. データ追加

aws dynamodb put-item \
--table-name tab1 \
--item \
'{"col1": {"S": "val11"}, "col2": {"S": "val12"}, "col3": {"S": "val13"}, "col4": {"N": "1"}}'

aws dynamodb put-item \
--table-name tab1 \
--item \
'{"col1": {"S": "val21"}, "col2": {"S": "val22"}, "col3": {"S": "val23"}, "col4": {"N": "2"} }'

aws dynamodb scan --table-name tab1

-- 3. DynamoDB テーブルのバックアップ

aws dynamodb create-backup --table-name tab1 \
--backup-name tab1bk01

aws dynamodb describe-backup \
--backup-arn arn:aws:dynamodb:ap-northeast-1:999999999999:table/tab1/backup/00000000000000-aaaaaaaa

aws dynamodb list-backups

-- 4. バックアップからの DynamoDB テーブルの復元

-- 4.1 同じリージョンに復元

aws dynamodb restore-table-from-backup \
--target-table-name tab2 \
--backup-arn arn:aws:dynamodb:ap-northeast-1:999999999999:table/tab1/backup/00000000000000-aaaaaaaa

aws dynamodb describe-table --table-name tab2

aws dynamodb scan --table-name tab2

 

-- 4.2 別リージョンに復元

export AWS_DEFAULT_REGION=ap-northeast-3

aws dynamodb restore-table-from-backup \
--target-table-name tab2 \
--backup-arn arn:aws:dynamodb:ap-northeast-1:999999999999:table/tab1/backup/00000000000000-aaaaaaaa \
--sse-specification-override Enabled=true,SSEType=KMS

aws dynamodb describe-table --table-name tab2

aws dynamodb scan --table-name tab2

export AWS_DEFAULT_REGION=ap-northeast-1

 


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

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

date +%s

aws dynamodb put-item \
--table-name tab1 \
--item \
'{"col1": {"S": "val31"}, "col2": {"S": "val32"}, "col3": {"S": "val33"}, "col4": {"N": "3"} }'

aws dynamodb scan --table-name tab1

aws dynamodb restore-table-to-point-in-time \
--source-table-name tab1 \
--target-table-name tab3 \
--no-use-latest-restorable-time \
--restore-date-time 1629512743

aws dynamodb scan --table-name tab3

-- 6. クリーンアップ

-- テーブル一覧
aws dynamodb list-tables

-- テーブル削除
aws dynamodb delete-table --table-name tab1
aws dynamodb delete-table --table-name tab2
aws dynamodb delete-table --table-name tab3

 

export AWS_DEFAULT_REGION=ap-northeast-3
aws dynamodb list-tables
aws dynamodb delete-table --table-name tab2
export AWS_DEFAULT_REGION=ap-northeast-1

 

 

-- バックアップ一覧
aws dynamodb list-backups

-- バックアップ削除
aws dynamodb delete-backup \
--backup-arn arn:aws:dynamodb:ap-northeast-1:999999999999:table/tab1/backup/00000000000000-aaaaaaaa

※手動バックアップのみ削除可能