Terraform を使用して AWS セキュリティグループの説明を変更するにはどうすればよいでしょうか?

Terraform を使用して AWS セキュリティグループの説明を変更するにはどうすればよいでしょうか?

次の Terraform シナリオで少し問題が発生しています。

  • SGを作成し、SGを使用するインスタンスを起動する
  • SGの説明を変更する

Terraform は SG をインスタンスからリンク解除し、SG を破棄し、新しい SG を作成して、新しい SG をリンクすることを期待します。

ただし、SG を破棄しようとしているときにタイムアウトが発生していることがわかります (明らかに、SG は使用中であり、AWS はそれを許可しません)。

これがバグなのか、私が何か間違っているのか分かりません。

問題を理解するには、以下のように適用を実行し、SG の説明を変更してから再度適用を実行します。

provider "aws" {
  region = "eu-west-1"
}

resource "aws_default_vpc" "default" {
  tags {
    Name = "Default VPC"
  }
}

data "aws_subnet_ids" "example" {
  vpc_id = "${aws_default_vpc.default.id}"
}

resource "aws_security_group" "webserver" {
    name = "staging-webserver"
  description = "meow"

    egress {
        from_port = 0
    to_port = 0
        protocol = "-1"
        cidr_blocks = ["0.0.0.0/0"]
    }

  tags {
    Name = "EBS webserver SG - staging"
  }
}

resource "aws_instance" "dummy" {
  ami               = "ami-f7e8558e"
  instance_type     = "t2.micro"
  availability_zone = "eu-west-1a"
  vpc_security_group_ids = [
    "${aws_security_group.webserver.id}"
  ]
}

答え1

terraform は、セキュリティ グループを破棄する前に、セキュリティ グループと他のもののリンクを解除しません。

最善の方法は、別のセキュリティ グループを作成してそれを使用し、古いセキュリティ グループを削除するか、説明の変更を無視することです。

関連情報