# はじめに
AWSのリソースを引っ越しする要件があってDynamoの移行について調べていたところ、最近エクスポートする機能がリリースされたようで、早速使ってみたので書き残してみます。
以下も参考にしました。
# PITR:ポイントインタイムリカバリとは
Dynamoのテーブル設定でPITRをONにすることで、日次で自動バックアップが取られ、リカバリができるようになる機能です。
この機能を有効にしないとエクスポートはできません。
エクスポートが済んだら無効に戻すこともできます。
# 使ってみた
上記参照した手順はCLIを使っていますが、マネジメントコンソールからでも簡単に使えます。
テーブルのバックアップ設定で、PITRを有効化します(デフォルト無効)
「復元」ボタンから復元ができますが、復元先は指定した別の新規テーブルになる点に注意が必要です。
自動バックアップと別に、S3へJson形式でエクスポートができます。
読み取り/書き込みキャパシティユニットの制限は受けずに全量吐き出してくれます。
こんな形式のフォーマットで、型の情報も一緒に添えられてます。
{"Item":{"slackId":{"S":"UDxxxxxx"},"connpassId":{"S":"user01"},"githubId":{"S":"user01"},"qiitaId":{"S":"user01"},"name":{"S":"user01"},"udemyId":{"S":"user01"}}}
{"Item":{"slackId":{"S":"U0yyyyyy"},"qiitaId":{"S":"user02"},"name":{"S":"user02"}}}
さいごに
Dynamoのデータ移行のために調べたPITRですが、
- インポート機能が無い
- 既存のインポートツールはkey:value形式のJsonで作っていたのでエクスポートデータがそのまま使えない
という点から、この機能は使わずコチラのツールを利用させてもらいました。
(読み取り/書き込みキャパシティユニットの制限は受けるのでチューニングは必要)
一方で、自動バックアップされるのは心強いのでPITRの機能は有効にしたまま運用することにしました。
料金は 毎月0.228USD/GB 程と、気にするほどでも無さそうです。