4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Terraform】S3のライフサイクルルールの設定

Posted at

はじめに

TerraformでS3のライフサイクルルールを設定する方法について書きます。

本記事では、基本的な設定のみ紹介しております。

ライフサイクルルールとは?

  • 一定時間経過した後にS3のオブジェクトを別のストレージクラスに移行させるための設定になります。
  • S3のコストを抑えるために使用します。

前提

  • 使用するTerraformのバージョン情報
% terraform --version
Terraform v1.1.8
on darwin_amd64
+ provider registry.terraform.io/hashicorp/aws v4.22.0

Your version of Terraform is out of date! The latest version
is 1.2.7. You can update by downloading from https://www.terraform.io/downloads.html
%

コード

  • S3バケット全体のオブジェクトを以下のように別のストレージクラスへ移行させるための設定になります。
    • 30日後: STANDARD_IAに移行
    • 60日後: GLACIERに移行
s3.tf
resource "aws_s3_bucket" "s3_bucket" {
  bucket = "testbucket0717"

  tags = {
    Name = "dev"
  }

}

resource "aws_s3_bucket_acl" "s3_bucket_acl" {
  bucket = aws_s3_bucket.s3_bucket.id
  acl    = "private"
}

resource "aws_s3_bucket_lifecycle_configuration" "s3_bucket_lifecycle" {
  bucket = aws_s3_bucket.s3_bucket.id

  rule {
    id     = "test_rule"
    status = "Enabled"

    transition {
      days          = 30
      storage_class = "STANDARD_IA"
    }

    transition {
      days          = 60
      storage_class = "GLACIER"
    }
  }

}
  • filter設定を追加した場合、ライフサイクルに指定するオブジェクトを設定することも可能
    • 以下の例では、/Logを指定
s3.tf(一部抜粋)
resource "aws_s3_bucket_lifecycle_configuration" "s3_bucket_lifecycle" {
  bucket = aws_s3_bucket.s3_bucket.id

  rule {
    id     = "test_rule"
    status = "Enabled"

    filter {
      prefix = "/Log"
    }

    transition {
      days          = 30
      storage_class = "STANDARD_IA"
    }

    transition {
      days          = 60
      storage_class = "GLACIER"
    }
  }

}

AWS Consoleでのライフサイクルルールの確認

作成したS3の Lifecycle configuration から確認することが可能。

バケット全体のオブジェクトを指定した場合の例

  • Lifecycle rule configuration
    lifecycle_rule.jpeg

  • Review transition and expiration actions
    review_transition.jpeg

バケット内のオブジェクトを指定する場合の例

Lifecycle rule configuration のみ抜粋
※他の設定は「バケット全体のオブジェクトを指定した場合の例」と同様であるため

Scope.jpg

参考

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?