こんにちは、SCSKの石原です。
「S3バケット」たくさん作成されていますでしょうか?
データ量が増えてくると、コストが気になってくるかと思います。
今回はS3のコストを最適化してくれるストレージクラス「Intelligent-Tiering」に、自動的に移行してくれるバケットをCloudFormationでサクッと作れるテンプレートを用意しました。ぜひご活用ください。
S3 Intelligent-Tieringとは
AWSにお任せでストレージコストを削減してくれるS3のストレージクラスです。
2021年9月にアップデートがあり、より使いやすいものになっています。
S3 Intelligent-Tieringに自動的に移行されるバケットのテンプレート
今回の設定では、Intelligent-Tieringに移行されるまでの期間を0日としています。これはアップロードされた瞬間ではなく、UTC 0時(JST 9時)に移行されることになります。
S3 ライフサイクル設定の例 – Amazon Simple Storage Service
通常版
バケットを作成するテンプレートは下記の通りです。S3 Intelligent-Tierへのライフサイクルルールのほかに、SSE-S3暗号化やパブリックアクセスの無効化などの設定を入れています。
AWSTemplateFormatVersion: "2010-09-09"
Description: "S3 Intelligent Tier Template"
Parameters:
BucketName001:
Type: String
Resources:
S3Bucket001:
Type: "AWS::S3::Bucket"
Properties:
BucketName: !Ref BucketName001
PublicAccessBlockConfiguration:
BlockPublicAcls: True
BlockPublicPolicy: True
IgnorePublicAcls: True
RestrictPublicBuckets: True
BucketEncryption:
ServerSideEncryptionConfiguration:
- ServerSideEncryptionByDefault:
SSEAlgorithm: AES256
LifecycleConfiguration:
Rules:
- Id: IntelligentTierRule
Status: Enabled
Transitions:
- TransitionInDays: 0
StorageClass: INTELLIGENT_TIERING
設定した日数経過後に環境を確認すると、Intelligent-Tieringに移行されていました。ただし、ファイルサイズが128kb以下のオブジェクトは移行されません。ある程度大きなファイルにまとめるなどの対応が必要になります。
Intelligent-Tiering Archive 設定版
よりコストの安い「Archive Access tier 」と「Deep Archive Access tier」を利用するパターンです。こちらのTierでは安い代わりに取り出しコストと数分から数時間の取り出し時間がかかります。滅多にアクセスされないうえに、取り出し時間が許容される場合にご利用いただければと思います。
AWSTemplateFormatVersion: "2010-09-09"
Description: "S3 Intelligent Tier deep Archive Template"
Parameters:
BucketName001:
Type: String
Resources:
S3Bucket001:
Type: "AWS::S3::Bucket"
Properties:
BucketName: !Ref BucketName001
PublicAccessBlockConfiguration:
BlockPublicAcls: True
BlockPublicPolicy: True
IgnorePublicAcls: True
RestrictPublicBuckets: True
BucketEncryption:
ServerSideEncryptionConfiguration:
- ServerSideEncryptionByDefault:
SSEAlgorithm: AES256
LifecycleConfiguration:
Rules:
- Id: IntelligentTierRule
Status: Enabled
Transitions:
- TransitionInDays: 0
StorageClass: INTELLIGENT_TIERING
IntelligentTieringConfigurations:
- Id: DeepArchiveConfig
Status: Enabled
Tierings:
- AccessTier: ARCHIVE_ACCESS
Days: 90
- AccessTier: DEEP_ARCHIVE_ACCESS
Days: 180
終わりに
S3バケットは同じ設定でたくさん作成する機会もあるかと思いますので、参考になれば幸いです。