ある企業が、Amazon S3 に重要な業務データを保管している。誤ってオブジェクトを削除してしまった場合に 30 日以内であれば元のバージョンに復元できるようにしたい。追加のインフラコストを最小限にしながら実現する最も適切な方法はどれか。
- A. S3 バケットのクロスリージョンレプリケーション(CRR)を有効化して別リージョンのバケットにコピーを保存する。
- B. Lambda 関数を S3 イベント通知でトリガーし、オブジェクトのコピーを別バケットに保存する。
- C. AWS Backup で S3 バケットを毎日バックアップし、30 日間保持するバックアッププランを設定する。
- D. S3 バケットのバージョニングを有効化し、オブジェクトのライフサイクルポリシーで旧バージョンを 30 日後に削除するよう設定する。
解答と解説を見る
正解: D
S3 バージョニングを有効化すると、オブジェクトを削除しても delete marker が追加されるだけで実際のデータは保持される。delete marker を削除することで元のバージョンに復元できる。ライフサイクルポリシーで旧バージョンを 30 日後に削除することで、ストレージコストを抑えながら 30 日間の復元可能期間を確保できる。選択肢Aのクロスリージョンレプリケーションは追加リージョンへのストレージコストが発生し、「追加コスト最小限」の要件に対してバージョニングより高コストになる。また削除の複製も防ぐには設定に注意が必要。選択肢CのAWS Backup は有効な手段だが、S3 バージョニングより設定が複雑でコストも高くなる傾向がある。選択肢Bのカスタム Lambda は追加の開発コストと Lambda・S3 操作コストが発生し、バージョニングより非効率である。
📚 関連サービスの解説: Amazon S3