こんにちは!技術4課のイーゴリです。
本件の記事では、CloudFormationでS3のライフサイクルルールの設定の一例をご紹介させて頂きます。
本件記事の目標
下記の要件の通りS3の作成及びライフサイクルルールを設定したいと思います。
バケット名:s3-blog-<対象AWS Account Id>
ライフサイクルルール名:blog-life-cycle-rule
| 日数 | S3ストレージクラス |
|---|---|
| 0 | Standard |
| 30 | Intelligent-Tiering |
| 90 | Glacier Flexible Retrieval (旧 Glacier) |
| 180 | Glacier Deep Archive |
| 365 | オブジェクトの削除 |

- オブジェクトをS3にアップロードします(S3 Standard)。
- 30日後、オブジェクトがIntelligent-TieringのS3ストレージクラスに移行されます。
- 90日後、Glacier Flexible Retrieval (旧 Glacier)に移行されます。
- 180日後、Glacier Deep Archiveに移行されます。
- 365日後、オブジェクトが削除されます。
Cloud Formationテンプレートの作成
AWSTemplateFormatVersion: "2010-09-09"
Description: "Create S3 bucket with LifeCycle Rule for Project X"
Parameters:
BucketName:
Type: String
Description: Bucket Name
BucketLabel:
Type: String
Description: Bucket Label for LifeCycle Rule
Resources:
S3Bucket:
Type: "AWS::S3::Bucket"
Properties:
BucketName: !Ref BucketName
LifecycleConfiguration:
Rules:
- Id: !Sub ${BucketLabel}-life-cycle-rule
Status: "Enabled"
ExpirationInDays: 365
Transitions:
- StorageClass: INTELLIGENT_TIERING
TransitionInDays: 30
- StorageClass: GLACIER
TransitionInDays: 90
- StorageClass: DEEP_ARCHIVE
TransitionInDays: 180
スタックの作成
スタックの作成時に「BucketLabel」及び「BucketName」を入力し、[次へ]をクリックします。

YAMLの説明
[サービス]>[S3]の一覧で指定した名前が見られるようになります。S3バケット名がスタックの作成時の「BucketName」の設定値となります。

対象S3バケットをクリックし、[管理]タブをクリックします。
[ライフサイクルルール]にある名前(blog-life-cycle-rule)はS3バケットのスタックの作成時の「BucketLabel」の設定値となります({BucketLabel}-life-cycle-rule)。

対象S3バケットのライフサイクルルールをクリックし、[移行と有効期限切れのアクションを確認]でライフサイクルルールの設定を確認できます。

[編集]ボタンをクリックしますと、設定の変更ができます。


S3ストレージクラスの設定値
下記のAWSページに利用可能な設定値が書いてありますので、ご参考ください。
Allowed values: DEEP_ARCHIVE | GLACIER | GLACIER_IR | INTELLIGENT_TIERING | ONEZONE_IA | STANDARD_IA
以上、御一読ありがとうございました。
本田 イーゴリ (記事一覧)
カスタマーサクセス部
・2024 Japan AWS Top Engineers (Security)
・AWS SAP, DOP, SCS, DBS, SAA, DVA, CLF
・Azure AZ-900
・EC-Council CCSE
趣味:日本国内旅行(47都道府県制覇)・ドライブ・音楽