Terraform

Terraform aws_ecs_clusterのcontainerInsightsの差分出力を回避する

TerraformでECSを変更していたら、tfファイルの該当箇所を変更していないのに突然、aws_ecs_clustercontainerInsightsの差分が毎回表示されてしまうようになりました。

その回避方法をメモっておきます。

スポンサーリンク

事象

以下のようにaws_ecs_clusterのsettingブロックでcontainerInsightsを設定していたのですが、applyを実行すると実行のたびに差分が出力されるようになりました。

$ cat main.tf
...
resource "aws_ecs_cluster" "test" {
  capacity_providers = ["FARGATE_SPOT", "FARGATE"]
  name               = "test"

  setting {
    name  = "containerInsights"
    value = "enabled"
  }

}
...
$ terraform apply
...
  ~ update in-place

Terraform will perform the following actions:

  # aws_ecs_cluster.api will be updated in-place
  ~ resource "aws_ecs_cluster" "test" {
        arn                = "arn:aws:ecs:ap-northeast-1:111111111111:cluster/test"
        capacity_providers = [
            "FARGATE",
            "FARGATE_SPOT",
        ]
...
## この差分が必ず出力されてしまいます
      + setting {
          + name  = "containerInsights"
          + value = "enabled"
        }
    }

Plan: 0 to add, 1 to change, 0 to destroy.
...
$

回避方法

AWSプロバイダのバージョン3.57以上にアップデートします。

$ cat main.tf
...
terraform {
  required_providers {
    aws = {
      source = "hashicorp/aws"
      version = ">= 3.57"
    }
...

## AWSプロバイダをアップデートします
$ terraform init -upgrade
...
$
## 差分が出力されなくなります
$ terraform apply
...
$

こちらによるとAWS側のECSのAPIに変更があったことが原因のようです。

今回は以上です〜ノシ

参考

アリガト━━━ヾ(´∀`)ノ━━━━♪

Terraform not saving state of ECS Cluster containerInsights setting

関連書籍