ストレージ ・
S3 バージョニングとは?オブジェクト世代管理と誤削除防止
S3 バージョニングは 同じキーに対して複数の世代(バージョン)を保持する機能。上書きしても古いバージョンは残り、削除しても削除マーカーが付くだけで実体は残る(ソフト削除)。誤削除・上書きからの復旧、コンプライアンス対応、レプリケーションの前提条件になる。 ---
オブジェクトの上書き・削除を「世代管理」して、過去のバージョンを保持する機能。
1. 概要(端的に)
S3 バージョニングは 同じキーに対して複数の世代(バージョン)を保持する機能。上書きしても古いバージョンは残り、削除しても削除マーカーが付くだけで実体は残る(ソフト削除)。誤削除・上書きからの復旧、コンプライアンス対応、レプリケーションの前提条件になる。
2. 何ができるか
- 上書き履歴の保持:旧バージョンが自動保管
- 削除のソフト化:削除しても元データは残る
- 誤操作からの復旧:旧バージョンを復元可能
- MFA Delete:永続削除に MFA を要求(万一の保険)
- クロスリージョンレプリケーションの前提:レプリには Versioning 必須
- Object Lock の前提:WORM 機能には Versioning 必須
状態
- Disabled(デフォルト):バージョニングなし
- Enabled:有効化(一度有効にしたら Disabled には戻せず Suspended のみ)
- Suspended:一時停止(既存バージョンは残るが新規は上書き)
3. 特徴
| 観点 | 特徴 |
|---|---|
| 追加料金 | 旧バージョン分のストレージ料金(オブジェクトが増えた扱い) |
| 粒度 | バケット単位(オブジェクト単位は不可) |
| 削除動作 | 削除マーカーが付き、旧バージョンは残る |
| 旧バージョンへのアクセス | バージョン ID を指定して GET |
| MFA Delete | バケット所有者が有効化、永続削除に MFA 必須 |
| 解除 | 一度有効化したら無効化不可(Suspended のみ) |
Versioning 有効化後の動作
| 操作 | 動作 |
|---|---|
| PUT(同じキー) | 新しいバージョン ID で追加(旧版は残る) |
| DELETE | 削除マーカーが追加(実体は残る) |
| DELETE(バージョン ID 指定) | 指定バージョンを永続削除 |
| GET(バージョン ID なし) | 最新バージョンを返す |
| GET(バージョン ID 指定) | 指定バージョンを返す |
4. 仕組み
S3 バージョニングは 各オブジェクトに VersionId を付与し、削除時は 削除マーカー(DeleteMarker) を最新バージョンとして追加する。
構成要素
- Version ID:オブジェクトの世代識別子
- Latest Version:最新バージョン
- Noncurrent Version:旧バージョン
- Delete Marker:削除を示す特殊オブジェクト
動作の流れ
- バケットでバージョニング有効化
- オブジェクト PUT:Version ID 付きで保存
- 同キーで PUT:新 Version ID で追加(旧版は Noncurrent に)
- DELETE:Delete Marker を Latest として追加
- GET(無指定):Delete Marker または最新版を返す
- GET(VersionId 指定):その世代のオブジェクトを返す
- 永続削除:VersionId 指定で DELETE
ライフサイクルとの組み合わせ
Noncurrent Version Transition
→ 30 日後に IA、90 日後に Glacier
Noncurrent Version Expiration
→ 365 日後に削除
旧バージョンは アクセス頻度がほぼゼロ なので、Glacier に置くのが合理的。
5. ユースケース
ユースケース 1:誤上書き・誤削除対策
重要なドキュメントの履歴管理。ランサムウェア対策にも有効。
ユースケース 2:コードリポジトリ
ビルド成果物・デプロイパッケージの履歴管理。
ユースケース 3:クロスリージョンレプリケーションの前提
DR 用にバージョニング有効化 + レプリケーション設定。
ユースケース 4:監査・コンプライアンス
変更履歴の証跡保管。
ユースケース 5:Object Lock 併用
法的保持要件のため WORM 化。
6. 関連用語
- S3 — バージョニングの基盤
- S3-Lifecycle — 旧バージョンの自動管理
- S3-Replication — レプリケーションの前提機能
- S3-Object-Lock — WORM の前提機能
- KMS — バージョンも暗号化対象
7. 関連サイト
AWS 公式
参考
🎓 試験での出題傾向
| 試験 | 重要度 | 主な出題パターン |
|---|---|---|
| CLF | 低 | バージョニングの存在 |
| SAA | 高 | レプリケーション・WORM の前提として頻出 |
| DVA | 高 | バージョン ID を使った API 操作 |
| SOA | 中 | 運用での旧バージョン管理 |