備忘メモ(Terraform)
NLB作ってて、「Network Load Balancers do not support Stickiness」というエラーが出たのでググったら以下がヒット。
aws_lb_target_group: When type is network, stickiness not supported · Issue #2746 · terraform-providers/terraform-provider-aws · GitHub
どうもsticknessのデフォルトがenabledの様なのでenabled = falseを明示したsticknessを追加したら動いた。
resource "aws_lb_target_group" "ecs_nlb_toku" { name = "ecs-nlb-toku" target_type = "ip" port = 8080 protocol = "TCP" vpc_id = aws_vpc.toku.id deregistration_delay = 300 health_check { interval = 30 port = "traffic-port" protocol = "HTTP" healthy_threshold = 3 unhealthy_threshold = 3 } depends_on = [aws_lb.ecs_nlb_toku] stickiness { type = "lb_cookie" enabled = false } }
公式ドキュメントは以下、デフォルトがtrueであることが確認可能。
AWS: aws_lb_target_group - Terraform by HashiCorp
ちなみに5行目は最初HTTPって記載していたんだけど、以下エラーが出たのでTCPにしてある。
Error: Error creating LB Listener: IncompatibleProtocols: The listener and its associated target group 'arn:aws:elasticloadbalancing:us-east-1:XXXXXXXXXXXX:targetgroup/ecs-nlb-toku/XXXXXXXXXXXXXXXX' have incompatible protocols
多分これだと思う。
NLB incompatible protocols · Issue #4955 · terraform-providers/terraform-provider-aws · GitHub