今朝社内のSlackにこんな記事が流れてきました。
https://kieranlowe.io/terraform-s3-backend-setup-skip-the-table
Terraform v1.10からS3 backendのステートロックで、DynamoDBを使用するか、S3にロックファイルを作成するか選べるようになったようです。最近Terraformを触っていなかったので全然気づきませんでした。
つまりどういうことかというと、今まで「dynamodb_table」にDynamoDBのテーブル名を指定していたのが、「use_lockfile」をtrueにすることで、DynamoDBを使わずにS3にロックファイルを作成してくれるようになるみたいですね。
↓こんな感じに書き換えるとよさそう
diff --git a/terraform/terraform.tf b/terraform/terraform.tf index fb68313..080e486 100644 --- a/terraform/terraform.tf +++ b/terraform/terraform.tf @@ -9,10 +9,10 @@ terraform { } backend "s3" { bucket = "my-terraform-state" key = "terraform.tfstate" region = "ap-northeast-1" - dynamodb_table = "terraform-statelock" + use_lockfile = true
applyしてみると↓
applyが完了するとロックファイルが消えています。
公式ドキュメントでは「Experimental」ラベルがついています。
Backend Type: s3 | Terraform | HashiCorp Developer
このラベルが外れたらお仕事でも使ってみよう・・・