こんにちは!技術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
以上、御一読ありがとうございました。
イーゴリ (記事一覧)
クラウドインテグレーション部・エンジニア
特にTerraform(自動化)、ネットワーク系、DNS、VDI、Windows Serverに興味があります
日本国内旅行・ドライブが好きです