はじめに
TerraformでAWSのEC2を構築していた際に、aws_autoscaling_group
ブロックで「`When a network interface is provided, the security groups must be a part of it.」のエラーが出ました。
基本的にはこちらで議論されている内容で解消すると思いますが、私の場合は例外で別の箇所が原因でエラーが起きていたので対処法を残しておきます。
対処法
結論としてはlaunch_template
のversion
をLatest
に指定することです。
私の場合は最初にapply
したaws_launch_template
ブロックのコードに誤りがあり、正しくない起動テンプレートがDefault
になっていました。
2回目以降terraform apply
を実行すると、起動テンプレートが新しいバージョンに書き換えられており、
launch_template
のversion
は指定しなくとも最新(Latest
)を参照すると思い込んでいましたが、Default
を参照するようで、それが原因でした...。
公式ドキュメントにも記載がありました。
下記のようにversion
を指定することでエラーが解消しました!
resource "aws_autoscaling_group" "example" {
availability_zones = ["us-east-1a"]
desired_capacity = 1
max_size = 2
min_size = 1
launch_template {
id = aws_launch_template.example.id
version = aws_launch_template.example.latest_version #ここを追加
}