代码之家  ›  专栏  ›  技术社区  ›  Neil H Watson

AWS ECS服务和ELBv2在单独的堆栈中

  •  4
  • Neil H Watson  · 技术社区  · 7 年前

    ECS服务可以有一个CF堆栈(例如蓝色/绿色),前端ELBv2可以有单独的堆栈?我曾尝试将ELB目标组放在ECS堆栈中,将负载平衡器和侦听器放在另一个堆栈中,但在构建目标组时,云形成会报告错误

    “targetGroupArn xxxxxx的目标组没有关联的负载平衡器。”

     ELB2TargetGroup:
        Type: AWS::ElasticLoadBalancingV2::TargetGroup
        Properties:
          HealthCheckIntervalSeconds: 60
          UnhealthyThresholdCount: 10
          HealthCheckPath: /
          Port:     !Ref ALBPort
          Protocol: !Ref ALBProtocol
          VpcId:
            Fn::ImportValue: !Sub "${ECSClusterStack}-ClusterVPC"
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   bhalothia    6 年前

    我希望你已经解决了这个问题。但是,以防其他人来这里寻找同样的问题。

    基本上,你没有做错什么。就是这样,你需要一个 目标群体 负载平衡器侦听器

    以下是TargetGroup资源的示例:

    ...
    ExampleTG:
      Type: AWS::ElasticLoadBalancingV2::TargetGroup
      Properties:
        HealthCheckIntervalSeconds: 30
        HealthCheckProtocol: HTTP
        HealthCheckTimeoutSeconds: 5
        HealthyThresholdCount: 2
        HealthCheckPath: /healthcheck
        HealthCheckPort: 80
        Matcher:
          HttpCode: '200'
        Name: !Join [ "-", [ Example, !Ref SomeParameter] ]
        Port: 80
        Protocol: HTTP
        TargetGroupAttributes:
        - Key: deregistration_delay.timeout_seconds
          Value: '15'
        UnhealthyThresholdCount: 3
        VpcId:
          'Fn::ImportValue': !Sub '${ParentVPCStack}-vpc'
    

    ...
    ExampleListernerRule:
      Type: AWS::ElasticLoadBalancingV2::ListenerRule
      Properties:
        Actions:
          - Type: forward
            TargetGroupArn: !Ref ExampleTG
        Conditions:
          - Field: host-header
            Values:
            - "example.*"
        ListenerArn:
          'Fn::ImportValue': !Sub '${ParentLBStack}-existing-listener'
        Priority: 1
    

    您可以轻松地从现有堆栈导入侦听器[ELBv2在您的示例中],该堆栈将负载平衡器与目标组相关联。