とことんDevOps | 日本仮想化技術のDevOps技術情報メディア

DevOpsに関連する技術情報を幅広く提供していきます。

日本仮想化技術がお届けする「とことんDevOps」では、DevOpsに関する技術情報や、日々のDevOps業務の中での検証結果、TipsなどDevOpsのお役立ち情報をお届けします。
主なテーマ: DevOps、CI/CD、コンテナ開発、IaCなど
読者登録と各種SNSのフォローもよろしくお願いいたします。

TerraformのS3 backendでDynamoDBが不要になっていた

今朝社内の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

このラベルが外れたらお仕事でも使ってみよう・・・