Я не могу заставить мою группу автоматического масштабирования сослаться на мою 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.