首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ECS Fargate在负载均衡中的应用

ECS Fargate在负载均衡中的应用
EN

Stack Overflow用户
提问于 2020-10-18 04:21:41
回答 1查看 15.7K关注 0票数 9

我正在尝试为Fargate ECS配置负载平衡。据我了解,至少有两个目标群体。一个目标组与应用程序负载均衡器一起创建,一个目标组与ECS服务一起创建。

我的容器正在TCP端口5000上运行他们的服务。我希望负载均衡器只公开常规的443端口上的HTTPS,并将HTTP重定向到HTTPS,或者如果这很困难,只需丢弃HTTP即可。

我看到侦听器允许指定一整组内容。但是,我对使用服务创建的目标组感到困惑。It - IP -type组,在端口80上监听。无论是在服务创建/配置期间选择HTTP还是HTTPS。

我的集装箱从来没有任何交通。我启用了负载平衡器日志记录,似乎平衡器不理解我希望它做什么。在每个请求末尾的日志中都有"forward" "-" "-" "-" "-" "-" "-"

我运行aws elbv2 describe-target-groups来获得定义。

代码语言:javascript
复制
{
  "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,并将所有内容路由到正确的容器端口?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64409699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档