はじめに
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 #ここを追加
}