S3のオブジェクトバージョニングを有効にすることで、誤ってデータを上書き・削除してしまった場合でも復元が可能になります。本記事では、AWS CLIを使ってバージョニングの設定方法や、特定のバージョンを取得する方法を詳しく解説します。
バージョニングが有効か確認
バケットのバージョニングの状態を確認するには、以下のコマンドを実行します。
aws s3api get-bucket-versioning --bucket <バケット名>
出力例:
{ "Status": "Enabled" }
何も表示されない場合、バージョニングは無効です。
バージョニングを有効化する
有効化するには、以下のコマンドを実行します。
aws s3api put-bucket-versioning --bucket <バケット名> --versioning-configuration Status=Enabled
3. オブジェクトバージョンを取得する
S3内のオブジェクトのバージョン履歴を取得するには、以下のコマンドを実行します。
aws s3api list-object-versions --bucket <バケット名> --prefix <オブジェクトのキー>
出力例:
{ "Versions": [ { "ETag": "\"e3b0c44298fc1c149afbf4c8996fb924\"", "Size": 1234, "StorageClass": "STANDARD", "Key": "folder1/example.txt", "VersionId": "3/L4kqtJlcpXroDTDmJ+gdC3+RT1u2vHU", "IsLatest": true, "LastModified": "2025-01-28T10:20:30.000Z", "Owner": { "DisplayName": "owner-name", "ID": "owner-id" } }, { "ETag": "\"a9b1c43218fc1d149ffbf4c8996ab134\"", "Size": 1200, "StorageClass": "STANDARD", "Key": "folder1/example.txt", "VersionId": "2/L4kqtJlcpXroDTDmJ+gdC3+RT1u2vHU", "IsLatest": false, "LastModified": "2025-01-27T09:15:00.000Z", "Owner": { "DisplayName": "owner-name", "ID": "owner-id" } } ], "DeleteMarkers": [] }
このリストで、どのバージョンが最新かを確認できます。
バージョンIDを使った特定バージョンのダウンロード
特定のバージョンを取得するには、バージョンIDを指定してダウンロードします。
コマンド例
aws s3api get-object --bucket <バケット名> --key <オブジェクトのキー> --version-id <バージョンID> <出力ファイル名>
補足
- バージョニングが無効な場合: 更新履歴は取得できません。
- 削除マーカーの確認: 削除されたオブジェクトの記録も
DeleteMarkers
として表示されます。
まとめ
S3のオブジェクトバージョニングを有効にすることで、誤ってデータを削除・上書きしてしまった場合でも復元が可能になり、データの安全性を高めることができます。
本記事では、AWS CLIを使って以下の操作を行う方法を解説しました。
✅ バージョニングの状態を確認する方法
✅ バージョニングを有効化する方法
✅ オブジェクトのバージョン履歴を取得する方法
✅ 特定バージョンのデータを取得する方法
バージョニングは、デフォルトでは無効になっているため、手動で設定する必要があります。ストレージコストが増える可能性があるため、運用時には不要なバージョンを定期的に管理することも重要です。
S3のバージョニングを活用して、大切なデータを守りましょう!