在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项目非常方便。