DynamoDBで継続的バックアップとポイントインタイムリカバリーが可能になりました

2018.03.27

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

AWSチームのすずきです。

2017年11月のAmazon DynamoDB Backup and Restoreの発表時に予告されていた、 継続的な自動バックアップと、任意の日時(過去35日)を指定したポイントインタイムリカバリー(PITR)がリリースされました。

AWS東京リージョンでも、バックアップ、リストアと、ポイントインタイムリカバリーが利用できる事が確認できましたので紹介させて頂きます。

設定

  • DynamoDBダッシュボードで任意のテーブルを指定、「バックアップ」のタブを開きます。

  • ポイントインタイムリカバリーの「有効化」します。

  • ポイントインタイムリカバリーの有効化後、「特定時点への復元」が指定可能になります

  • 新しいテーブル名と、復元日時を指定する事で、ポイントインタイムリカバリーが実行されます。
  • 最も早い復元日時は最長35日前、直近の最も遅い復元日時は約5分前までの指定が可能です。

確認

  • 継続的な自動バックアップを有効としたテーブルに対し約10秒毎にレコードを追加、その途中でポイントインタイムリカバリーを実施しました。
for i in {0..1000}
do
NOW=`date --iso-8601=seconds`
aws dynamodb put-item --table-name test1 --item "{ \"datetime\": { \"S\": \"${NOW}\" }, \"id\": { \"S\": \"${i}\" } }"
sleep 10
echo $i
done
  • リカバリーされたテーブルに、復元日時として指定した時刻(UTC時刻:09:40:00)の9秒前までのレコードが存在する事を確認できました。

まとめ

今回リリースされた継続的なバックアップ、AWS東京リージョンではバックアップ容量1GBあたり月額$0.228、 リストアも1GBあたり$0.171 、DynamoDBで多くの割合を占める事が多い読込、書込のキャパシティユニットの課金と比較し 廉価な費用で利用する事が可能です。

アプリケーションの不具合や、オペミスなどでDynamoDBのレコード損傷によるデータ損失が 大きな影響を及ぼすシステムでは、今回リリースされた継続的バックアップの有効化をお試しください。

また、昨年11月に北米のリージョンでリリースされていたオンデマンドバックアップ、リストアも東京リージョンで利用可能となりました。 35日以上過去のデータを保存する必要がある場合や、テーブルの誤削除にまで備える必要が有る場合には、DynamoDBのオンデマンドバックアップも併用頂ければと思います。

尚、ポイントインタイムリカバリー、オンデマンドバックアップのリストアとも、既存デーブルへの書き戻しはできません。 DynamoDBのテーブルに対し、データの損失回避だけでなくリストアの復旧目標時間が求められる場合、 新規テーブルとしてリストア後、既存テーブルへの書き戻し方法についてもあわせてご検討頂ければと思います。