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のバージョニングを活用して、大切なデータを守りましょう!

