AWS ECS Fargate 模式 - 自动扩展

Posted

技术标签:

【中文标题】AWS ECS Fargate 模式 - 自动扩展【英文标题】:AWS ECS Fargate mode - auto scaling 【发布时间】:2021-07-14 06:03:58 【问题描述】:

我有一个在 Fargate 模式下运行的 AWS ECS 服务。我的设置有 两个 任务运行在端口 80 上侦听的 httpd 映像 (Apache2)。我有一个将端口 80 重定向到目标组的应用程序负载平衡器。该目标组配置了 两个 IP(每个任务都暴露在私有 IP 上,因此目标组中有 两个 IP

我有一个关于 ECS 服务上的 Auto Scaling 的问题:Auto Scaling 在为目标组分配 IP 方面是如何工作的?这是扩展机制的重要组成部分,因为如果新任务的私有 IP 没有分配给目标组,那么新容器/任务将不会获得任何流量,这与自动扩展的整个目的背道而驰。

【问题讨论】:

ECS 管理这个,所以您不必担心向 TG 注册新任务。你有没有发现它对你不起作用? 【参考方案1】:

正确。这就是为什么在配置 ECS 时要告诉 ECS 服务的目标组是什么。在后台 ECS 将向/从 LB 目标组添加/删除任务 IP。它是 ECS 与其他 AWS 服务(在本例中为 LB)之间内置集成的一部分。

例如,如果您要从 CLI 执行此操作,那么您将在创建服务时运行以下命令:

aws ecs create-service --service-name scale-out-app --cluster app-cluster --load-balancers "targetGroupArn=$TARGET_GROUP_ARN,containerName=scale-out-app,containerPort=80" --task-definition scale-out-app --desired-count 4 --launch-type FARGATE --platform-version 1.4.0 --network-configuration "awsvpcConfiguration=subnets=[$PRIVATE_SUBNET1, $PRIVATE_SUBNET2],securityGroups=[$SCALE_OUT_APP_SG_ID],assignPublicIp=DISABLED" --region $AWS_REGION

在这种特定情况下,targetGroupArn=$TARGET_GROUP_ARN 是将服务连接到目标组,ECS 知道该做什么。

有道理吗?

【讨论】:

以上是关于AWS ECS Fargate 模式 - 自动扩展的主要内容,如果未能解决你的问题,请参考以下文章

AWS ECS Fargate 和端口映射

AWS ECS Fargate:应用程序负载均衡器返回 503 并带有奇怪的模式

AWS ECS Fargate 上的 Jenkins 工作人员:并行运行几个作业

AWS Fargate 上的扩展和扩展如何工作?

AWS ECS Fargate - 任务未运行

AWS 使用 Fargate 对 ECS 服务的多个端口进行负载平衡