はじめに
最近、業務でS3とDynamoDBのバックアップ設計をする機会がありました。早い段階から各機能の選定や復元方法を整理しておくと、後々楽になります。本記事では、それぞれの比較をし、どの機能をどんな目的で使うべきかを整理します。
各機能の詳細
| サービス | 機能名 | 用途 | 別リージョン | 復元方法 | 取得タイミング |
|---|---|---|---|---|---|
| S3 | バージョニング | 誤削除/上書き対策 | 不可 | - 以前のバージョンを同じバケットにコピーする - 削除マーカーを削除すると元バージョンが復元される |
オブジェクト操作都度 |
| S3 | クロスリージョンレプリケーション(CRR) | リージョン障害 | 可 | - 元リージョンに新バケットを作成 - 保管先リージョンのデータをコピー |
非同期 |
| S3 | AWS Backup | スケジュール管理・一元管理 | 可 | - 新しいバケットにリストア | スケジュール設定 |
| DynamoDB | PITR(Point-in-Time Recovery) | 誤削除/上書き対策 | 不可 | - 復元ポイントを指定して復元 | 継続的 |
| DynamoDB | グローバルテーブル | リージョン障害 | 可 | ※フェイルオーバーにより継続運用可能 | 非同期 |
| DynamoDB | AWS Backup | スケジュール管理・一元管理 | 可 | - 新しいテーブルとしてリストア | スケジュール設定 |
どの機能を使えばいいか
上記の用途と機能詳細を参考に、システム要件やバックアップの目的に応じて最適な機能を選択してください。注意点としては、バージョニング機能自体は不必要であっても、CRRやオブジェクトロックを設定する際には、バージョニング機能が必須になります。
オブジェクトロックは S3 バージョニングが有効になっているバケットでのみ機能します。
レプリケート元とレプリケート先の両方のバケットで、バージョニングを有効にする必要があります。
最後に
以上、S3とDynamoDBのバックアップおよび障害対策に関する比較まとめでした。
用途に応じて最適な設計を行いましょう 💡
注意事項
本ブログに掲載している内容は、私個人の見解であり、
所属する組織の立場や戦略、意見を代表するものではありません。
あくまでエンジニアとしての経験や考えを発信していますので、ご了承ください。