在Terraform的后端中使用通用的S3和DynamoDB

可以使用S3或DynamoDB作为Terraform的后端,但也可以在每个Terraform项目中共享它们。

我将创建一个名为”terraform-state-for-my-company”的S3存储桶和一个名为”terraform-state-lock-for-my-company”的DynamoDB表。

resource "aws_dynamodb_table" "terraform_statelock" {
  name           = "terraform-state-lock-for-my-company"
  hash_key       = "LockID"
  read_capacity  = 5
  write_capacity = 5

  attribute {
    name = "LockID"
    type = "S"
  }
}

resource "aws_s3_bucket" "terraform_state" {
  bucket = "terraform-state-for-my-company"
  acl    = "private"

  versioning {
    enabled = true
  }
}

您可以在任何地区创建S3和DynamoDB,无论是与Terraform项目AWS提供程序的区域不同,都可以正常使用。您还可以选择费用低廉的区域以节省费用。

在希望使用Terraform的后端的项目中,可以按照如下方式设置后端。
例如)my-project

terraform {
  backend "s3" {
    bucket         = "terraform-state-for-my-company"
    dynamodb_table = "terraform-state-lock-for-my-company"
    key            = "my-project"
    region         = "us-west-2" # S3やDynamoDBが作成されているリージョン
  }
}

对于我的情况,我将最初创建的S3和DynamoDB作为一个Terraform项目进行管理。这样我也可以使用自己的S3和DynamoDB,如果是这种情况,我需要先应用S3和DynamoDB,然后再添加后端配置。

总结

现在不需要为每个项目创建S3或DynamoDB,这对于公司拥有多个Terraform项目非常方便。

广告
将在 10 秒后关闭
bannerAds