Igo*_*ler 17 amazon-web-services amazon-ecs amazon-elb
我正在尝试为 Fargate ECS 配置负载平衡。我的理解是至少有两个目标群体。一个目标组随应用程序负载均衡器一起创建,一个目标组随 ECS 服务一起创建。
我的容器在 TCP 端口 5000 上运行其服务。我希望负载均衡器仅通过常规 443 端口公开 HTTPS,并将 HTTP 重定向到 HTTPS,或者如果这很困难,则直接删除 HTTP。
我发现监听器允许指定一大堆东西。然而,我对该服务创建的目标群体感到困惑。它 -IP类型组,侦听端口 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"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?我应该如何为 ECS Fargate 设置应用程序负载均衡器,以便在外部使用 HTTPS 并将所有内容路由到正确的容器端口?
Mar*_*cin 20
根据评论,截图。
您可以在创建 ALB 时创建 TG(ALB 在我的示例中称为dddd),也可以事先创建。另外,我将我的目标组命名为my-tg-for-fargate。我使用端口 80(您可能需要 5000),因为我使用nginxdemos/hello作为容器。确保创建IP 目标类型,而不是实例。Fargete 不适用于实例 TG,这解释了为什么您在创建 ECS 服务时无法在 ECS 控制台中看到它们。
当您在 ECS 控制台中创建 Fargate 服务时,您将可以选择现有的 ALB(在我的例子中dddd)和现有的目标组(在我的例子中称为my-tg-for-fargate)。您不需要创建第二个 tg:
| 归档时间: |
|
| 查看次数: |
25468 次 |
| 最近记录: |