ストレージ ・
S3 ライフサイクルポリシー|自動クラス移行と削除の設計
S3 ライフサイクルは 「30 日後に IA、90 日後に Glacier、365 日後に削除」のような自動ルール。オブジェクトの経過日数に応じて、クラス移行(Transition)または削除(Expiration)を自動実行する。コスト最適化と運用自動化の両面で必須機能。...
オブジェクトを時間経過で自動的にクラス移行・削除するルール。コスト最適化の主役。
1. 概要(端的に)
S3 ライフサイクルは 「30 日後に IA、90 日後に Glacier、365 日後に削除」のような自動ルール。オブジェクトの経過日数に応じて、クラス移行(Transition)または削除(Expiration)を自動実行する。コスト最適化と運用自動化の両面で必須機能。
2. 何ができるか
- クラス移行(Transition):時間経過で安いクラスへ自動移動
- オブジェクト削除(Expiration):時間経過で自動削除
- 未完了マルチパートのクリーンアップ:失敗したアップロードの破片を削除
- 古いバージョンの削除:バージョニング有効時の旧バージョン処理
- 削除マーカーのクリーンアップ:不要な削除マーカー除去
- プレフィックス・タグでフィルタ:特定パスやタグ付きのみに適用
ルールの構成要素
- フィルタ:プレフィックス(例:
logs/)・タグ・サイズ範囲 - アクション:Transition / Expiration
- トリガー:作成からの日数 or 特定日時
- 対象:現行バージョン / 旧バージョン / 削除マーカー / 未完了マルチパート
3. 特徴
| 観点 | 特徴 |
|---|---|
| 追加料金 | ルール自体は無料(クラス移行リクエスト代金は発生) |
| 適用範囲 | バケット単位、ルールはプレフィックス/タグでフィルタ |
| 実行タイミング | 1 日 1 回バッチ実行(指定日数到達後) |
| ストレージクラスの順序 | 一方向のみ(Standard → IA → Glacier。逆戻り不可) |
| 最小保管期間 | 移行先クラスごとに最低保管日数あり(IA:30 日、Glacier:90 日) |
一般的な移行パターン
0 日:Standard
30 日:Standard-IA に移行
90 日:Glacier Flexible Retrieval に移行
180 日:Glacier Deep Archive に移行
2,555 日(7 年):削除
注意点
- 128 KB 未満のオブジェクトは IA/Glacier 移行で逆にコスト増の可能性
- 移行リクエストにも料金(特に Glacier は 1,000 リクエストあたり $0.05 程度)
4. 仕組み
S3 ライフサイクルは バケットに JSON 形式のルールを設定 し、S3 が 1 日 1 回バッチで評価・実行する。
構成要素
- Rule:1 つのライフサイクルルール
- Filter:プレフィックス / タグ / サイズ
- Transition:クラス移行アクション(複数指定可)
- Expiration:削除アクション
- NoncurrentVersionTransition / NoncurrentVersionExpiration:旧バージョン用
- AbortIncompleteMultipartUpload:未完了マルチパート対応
XML/JSON 設定例
{
"Rules": [{
"ID": "LogRetention",
"Filter": {"Prefix": "logs/"},
"Status": "Enabled",
"Transitions": [
{"Days": 30, "StorageClass": "STANDARD_IA"},
{"Days": 90, "StorageClass": "GLACIER"},
{"Days": 365, "StorageClass": "DEEP_ARCHIVE"}
],
"Expiration": {"Days": 2555}
}]
}
動作の流れ
- ルール作成(マネコン or API)
- S3 が日次でオブジェクト評価
- 該当オブジェクトを移行 or 削除
- CloudWatch メトリクスに反映
- 課金は新クラスで計算
5. ユースケース
ユースケース 1:ログ保管のコスト最適化
ALB / CloudFront ログを 30 日 IA → 90 日 Glacier → 7 年で削除。
ユースケース 2:監査・規制要件
法定保管 10 年のデータを Deep Archive に置き、期限到達で削除。
ユースケース 3:バージョニング運用
旧バージョンを 30 日後に IA、180 日後に削除。
ユースケース 4:未完了マルチパートのクリーンアップ
失敗アップロードの破片を 7 日後に自動削除(請求書からも消える)。
ユースケース 5:ユーザーアップロードの世代管理
30 日経過した動画を Glacier 移行。
6. 関連用語
- S3 — ライフサイクルの対象
- S3-StorageClass — 移行先のクラス
- S3-Glacier — Glacier 系クラス
- S3-Versioning — バージョニングと組み合わせ運用
- S3-Intelligent-Tiering — 別の自動化選択肢
7. 関連サイト
AWS 公式
参考
🎓 試験での出題傾向
| 試験 | 重要度 | 主な出題パターン |
|---|---|---|
| CLF | 中 | コスト最適化の自動化 |
| SAA | 高 | クラス移行設計問題(頻出) |
| DVA | 中 | ライフサイクル API |
| SOA | 高 | 運用での適用、未完了マルチパート対応 |