Прослушиватели AWS ALB - как https, так и http

У меня есть ALB со слушателем на https / 443, который перенаправляет запрос целевой группе, прикрепленной к службе Fargate.

Этот ALB открыт для Интернета, а также является частью специального VPC, который имеет некоторые другие внутренние службы с внутренним доменом (xxx.local).

Я хочу вызвать alb из VPC с помощью xxx.local, но я хочу, чтобы это был запрос http / 8000.

Когда я добавляю еще одного слушателя на http / 8000, который перенаправляет запрос той же целевой группе - это не работает. Если я заменю правило пересылки правилом переадресации на https / 443, оно все равно не сработает.

любая помощь будет оценена по достоинству!

отредактировано: добавлено изображение ниже - оба слушателя пересылаются в одну и ту же группу

введите здесь описание изображения

Я создал все ресурсы со стеками облачной информации, вот соответствующая часть. Я изменил его на 2 TG, но работает только 443 ... вот соответствующий код стеков:

  TargetGroup1:
    Type: AWS::ElasticLoadBalancingV2::TargetGroup
    Properties:
      Name: TargetGroup1
      Protocol: HTTP
      Port: 8000
      TargetType: ip
      ...
  TargetGroup2:
    Type: AWS::ElasticLoadBalancingV2::TargetGroup
    Properties:
      Name: TargetGroup2
      Protocol: HTTP
      Port: 8000
      TargetType: ip
      ...

  Listener443:
    Type: AWS::ElasticLoadBalancingV2::Listener
    DependsOn:
      ...
    Properties:
      Certificates:
        ...
      DefaultActions:
        - TargetGroupArn: !Ref 'TargetGroup1'
          Type: 'forward'
      LoadBalancerArn: !Ref 'TheAlb'
      Port: 443
      Protocol: HTTPS
      SslPolicy: ELBSecurityPolicy-2016-08
  Listener8000:
    Type: AWS::ElasticLoadBalancingV2::Listener
    DependsOn:
      ...
    Properties:
      DefaultActions:
        - TargetGroupArn: !Ref 'TargetGroup2'
          Type: 'forward'
      LoadBalancerArn: !Ref 'TheAlb'
      Port: 8000
      Protocol: HTTP

  FargateService:
    Type: AWS::ECS::Service
    DependsOn:
      ...
    Properties:
      ...
      LoadBalancers:
        - ContainerName: ContainerName
          ContainerPort: ContainerPort
          TargetGroupArn: !Sub
            - "arn:aws:elasticloadbalancing:${AWS::Region}:${AWS::AccountId}:${tgFullName}"
            - tgFullName: !GetAtt 'TargetGroup1.TargetGroupFullName'

        - ContainerName: ContainerName
          ContainerPort: ContainerPort
          TargetGroupArn: !Sub
            - "arn:aws:elasticloadbalancing:${AWS::Region}:${AWS::AccountId}:${tgFullName}"
            - tgFullName: !GetAtt 'TargetGroup2.TargetGroupFullName'



person drizzt13    schedule 11.05.2020    source источник
comment
Привет, есть ли шанс предоставить снимки экрана слушателей? Это поможет легче увидеть фактическую настройку :)   -  person Chris Williams    schedule 11.05.2020
comment
@ mokugo-DevOps - изображение только что добавлено   -  person drizzt13    schedule 11.05.2020


Ответы (1)


Создайте вторую целевую группу и отредактируйте слушателя 8000, чтобы вместо этого использовать эту целевую группу. Во время работы мастера будет создана только 1 целевая группа.

person Chris Williams    schedule 11.05.2020
comment
Привет, можете ли вы подтвердить, что группа безопасности разрешает доступ к порту 8000? Это должен быть общедоступный IP-адрес NAT, который использует fargate, а не внутренний IP-адрес. - person Chris Williams; 11.05.2020
comment
в любом случае, я добавил EIP в SG (например, xx.xx.xx.xx / 32) и разрешил входящий порт 8000 от него - но все же - он, похоже, не работает (как я проверяю, с внутренней машины EC2 с wget http://internal.domain - person drizzt13; 11.05.2020
comment
Nevermind - проблема была на моем компьютере (с которого я получаю). Благодарность! - person drizzt13; 11.05.2020