株式会社ヴァンデミックシステム

Blog

<スポンサーリンク>

ServiceLinked Roleというものがあり、AWSが自動的に作成し、作成したリソースと暗黙的にアタッチされるものがある。
このServiceLinked Roleを作成する前に、ECSクラスタを作成しようとすると、失敗するというわけ。
AWSコンソールから作成する場合は特に考えなくて良いのだけど、Terraformオンリーで操作しようとすると、若干のタイムラグがあるのか、serviceLikedRole作成前に、クラスタ作成APIが呼ばれて、失敗してしまう。ということだと思われる。

Terraformでコンソールでの操作を挟まずに1発で成功させるには、servicelinkedRoleをTerraformで作成するようにすると良い。

resource "aws_ecs_cluster" "cluster" {
  name = "ecs-cluster"

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

  depends_on = [aws_iam_service_linked_role.ecs]
}

resource "aws_iam_service_linked_role" "ecs" {
  aws_service_name = "ecs.amazonaws.com"
}

ちなみに、
・AWSコンソールで一度ECSクラスタを作り、削除する
・Terraform Apply実行して、一度失敗させる
ということをしても、自動的にServiceLikedRoleは作られるので、こだわる必要がなければこれらで対応するでもOK

<スポンサーリンク>

コメントを残す

Allowed tags:  you may use these HTML tags and attributes: <a href="">, <strong>, <em>, <h1>, <h2>, <h3>
Please note:  all comments go through moderation.

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)