Я не могу заставить мою группу автоматического масштабирования сослаться на мою TargetGroup
Я могу запустить простую группу автоматического масштабирования. Однако проблема возникает, когда я пытаюсь настроить балансировщик нагрузки приложения, чтобы направлять трафик к различным экземплярам. Сначала я создал свой балансировщик нагрузки, это тоже было просто. Проблема заключается в создании целевой группы и слушателя. В мою группу автомасштабирования я добавил свойство:
TargetGroupARNs:
- !Ref AlbTargetGroup
Тогда моя целевая группа выглядит следующим образом:
AlbTargetGroup:
Type: AWS::ElasticLoadBalancingV2::TargetGroup
Properties:
TargetType: ip
VpcId: ###########
Protocol: HTTP
Port: 3000
HealthCheckPath: /hello
HealthCheckIntervalSeconds: 10
HealthCheckTimeoutSeconds: 5
HealthyThresholdCount: 2
UnhealthyThresholdCount: 2
Обратите внимание, что я жестко запрограммирован VpcId. Я развертываю из CLI. В консоли ошибка, которую я получаю в стеке:
При условии, что целевая группа 'arn:aws: эластичная нагрузка:...' имеет недопустимый тип цели. Убедитесь, что все предоставленные целевые группы имеют целевой тип экземпляра
2 ответа
Связь между Application LoadBalancer и AutoScalingGroup необходимо настроить по-разному в зависимости от того, использует ли ALB TargetGroup TargetType. ip
или instance
. Сinstance
ты используешь:
TargetGroupARNs:
- !Ref LoadBalancerTargetGroup
с ip
ответ зависит от фактической цели. Например, с ECS вы обычно указываете это в определении службы:
LoadBalancers:
- ContainerName: ContainerName
ContainerPort: 8080
TargetGroupArn: !Ref LoadBalancerTargetGroup
Если вы instance
введите ссылку ASG на ip
ALBTG, тогда вы получите Please ensure all provided Target Groups have target type of instance
ошибка.
ТЕРРАФОРМ КЕЙС
Ответ user311372 указал мне в правильном направлении. В моем случае я пытался сделать то же самое через Terraform и получал ошибку.
Указанная целевая группа (...) имеет недопустимый целевой тип. Убедитесь, что для всех предоставленных целевых групп указан целевой тип экземпляра.
Это связано с тем, что, как они указали, я использовал в своей конфигурации Terraform AutoScalingGroup атрибут TargetGroupsArn вместо атрибута LoadBalancers.