我正在尝试为Fargate ECS配置负载平衡。据我了解,至少有两个目标群体。一个目标组与应用程序负载均衡器一起创建,一个目标组与ECS服务一起创建。
我的容器正在TCP端口5000上运行他们的服务。我希望负载均衡器只公开常规的443端口上的HTTPS,并将HTTP重定向到HTTPS,或者如果这很困难,只需丢弃HTTP即可。
我看到侦听器允许指定一整组内容。但是,我对使用服务创建的目标组感到困惑。It - IP -type组,在端口80上监听。无论是在服务创建/配置期间选择HTTP还是HTTPS。
我的集装箱从来没有任何交通。我启用了负载平衡器日志记录,似乎平衡器不理解我希望它做什么。在每个请求末尾的日志中都有"forward" "-" "-" "-" "-" "-" "-"。
我运行aws elbv2 describe-target-groups来获得定义。
{
"TargetGroups": [
{
"TargetGroupArn": "arn:aws:elasticloadbalancing:us-east-1:505963211XXX:targetgroup/ecs-fargate-api-service-tg/1ebb89754b34d072",
"TargetGroupName": "ecs-fargate-api-service-tg",
"Protocol": "HTTPS",
"Port": 80,
"VpcId": "vpc-e623dd9b",
"HealthCheckProtocol": "HTTPS",
"HealthCheckPort": "traffic-port",
"HealthCheckEnabled": true,
"HealthCheckIntervalSeconds": 30,
"HealthCheckTimeoutSeconds": 5,
"HealthyThresholdCount": 5,
"UnhealthyThresholdCount": 2,
"HealthCheckPath": "/cookie-policy",
"Matcher": {
"HttpCode": "200"
},
"LoadBalancerArns": [
"arn:aws:elasticloadbalancing:us-east-1:505963211XXX:loadbalancer/app/node-api-lb/f5e512a2678688f5"
],
"TargetType": "ip"
},
{
"TargetGroupArn": "arn:aws:elasticloadbalancing:us-east-1:505963211XXX:targetgroup/node-api-tg/7544b53ab1720e0d",
"TargetGroupName": "node-api-tg",
"Protocol": "HTTPS",
"Port": 443,
"VpcId": "vpc-e623dd9b",
"HealthCheckProtocol": "HTTPS",
"HealthCheckPort": "traffic-port",
"HealthCheckEnabled": true,
"HealthCheckIntervalSeconds": 300,
"HealthCheckTimeoutSeconds": 5,
"HealthyThresholdCount": 5,
"UnhealthyThresholdCount": 2,
"HealthCheckPath": "/cookie-policy",
"Matcher": {
"HttpCode": "200"
},
"LoadBalancerArns": [
"arn:aws:elasticloadbalancing:us-east-1:505963211XXX:loadbalancer/app/node-api-lb/f5e512a2678688f5"
],
"TargetType": "instance"
}
]
}我做错了什么?我应该如何为ECS Fargate设置一个应用程序负载均衡器,使其在外部具有HTTPS,并将所有内容路由到正确的容器端口?
发布于 2020-10-18 05:59:42
根据评论,截图。
首先创建ALB
您可以在创建ALB时创建TG (在我的示例中,ALB称为dddd ),或者预先创建。ALso,我把我的目标组命名为ALso我使用端口80 (您可能需要5000),因为我使用nginxdemos/hello作为容器。确保创建IP目标类型为,而不是实例。Fargete将不使用实例TGs,解释为什么在创建ECS服务时不能在ECS控制台中看到它们。

创建ECS Fargate服务
当您在ECS控制台中创建Fargate服务时,您可以选择现有的ALB (在我的例子中是dddd)和现有的目标组(在我的例子中称为my-tg-for-fargate )。您不需要创建第二次tg

https://stackoverflow.com/questions/64409699
复制相似问题