亚马逊AWS官方博客
推出 Amazon ECS Gateway:一款适用于 ECS 服务的完全托管的入口解决方案
当平台团队在 Amazon Elastic Container Service(Amazon ECS)上大规模管理容器化应用程序时,为每项服务配置入口联网通常会成为瓶颈。对于每项新服务,团队必须预置和连接应用程序负载均衡器(ALB)、AWS Certificate Manager(ACM)证书、AWS WAF Web ACL 和安全组,然后在服务扩展、更新或运行时保持这些资源同步。这种每项服务的开销会减慢部署速度,并增加组织内部配置偏差的风险。
今天,我们宣布推出 Amazon ECS Gateway,这是一种新的账户级资源,通过代表您动态预置和管理必要的基础设施,所有资源都直接在您的账户中创建,从而简化容器化工作负载的入口联网。

ECS Gateway 在平台团队和应用程序团队之间引入了明确的职责分工。
- 平台团队可以在一个地方创建和配置网关,定义组织联网标准,包括子网、安全组、TLS 证书、侦听器设置和 WAF Web ACL。然后,他们将网关与一个或多个 ECS 集群关联起来,使其可供在这些集群上运行的服务使用。
- 应用程序团队通过在创建或更新服务时添加网关连接器参数来选择加入其服务。ECS 自动预置所需的每项服务资源:ACM 证书、唯一的 DNS 主机名、侦听器规则、目标组以及仅允许来自 ALB 的入站流量的服务安全组。无需联网专业知识。
ECS Gateway 使用 ALB 提供基于主机的路由,支持多达 25 个服务共享一个 ALB,从而优化基础设施成本。ECS 管理底层基础设施的整个生命周期,在您的第一项服务连接时预置第一个 ALB,在容量达到时添加更多 ALB,在不再需要时将其移除。每项服务都有一个唯一的 DNS 主机名,在预置完成时为您的团队提供一个随时可用的端点。
初步了解 ECS Gateway
在 ECS 控制台中,平台团队可以创建网关并设置其配置。基础设施角色是 ECS 担任的 IAM 角色,用于在您的账户中预置和管理联网资源,例如 ALB、安全组和证书。要创建网关,请提供网关名称并选择基础设施角色。您可以选择在创建期间或之后将网关与 ECS 集群关联起来。
选择负载均衡方案,即公共流量路由或 VPC 内部流量路由。在其他设置下,您还可以设置侦听器、端口、网关可以扩展到的最大负载均衡器数量,并且 Web ACL 可以保护您的 Web 应用程序。某些设置,包括名称、架构、VPC、子网、IP 地址类型、侦听器协议和端口,在网关创建后无法更改。

使用 AWS 命令行界面(AWS CLI),使用名称(每个账户唯一)、基础设施角色和配置对象调用 CreateGateway。在服务通过网关连接器与网关连接之前,不会预置基础设施。
aws ecs create-gateway \
--name my-team-gateway \
--infrastructure-role-arn arn:aws:iam::123456789012:role/ECSGatewayRole \
--configuration '{
"HostSharedAlb": {
"networkConfiguration": {
"subnets": [
"subnet-080779f9bd887757a",
"subnet-03d5b2fead6bc6258",
"subnet-0861210a397d31252",
"subnet-06539e194023cb77a"
],
"ipAddressType": "ipv4"
},
"scheme": "internet-facing"
}
}'
创建网关后,您可以查看详细配置、网关路由、负载均衡器和关联的集群。

现在将网关与一个或多个集群(多对多)关联起来,使其可供这些集群上的 ECS 服务使用。

使用 AssociateGatewayWithCluster 使网关可供集群上的服务使用:
aws ecs associate-gateway-with-cluster \
--gateway my-team-gateway \
--cluster arn:aws:ecs:us-east-1:123456789012:cluster/my-cluster
要以编程方式创建和管理 ECS Gateway(包括调用 API 和搜索文档),请尝试结合您偏好的人工智能编码工具使用 AWS MCP 服务器和插件。要了解更多信息,请访问 Amazon ECS Gateway 文档。
ECS Gateway:幕后花絮
一个网关最多可与 1 万个集群关联,单个集群最多支持五个网关关联。这种多对多关系使平台团队能够灵活地跨环境共享网关或为单个集群分配多个网关(例如,公有和私有)。
平台团队可以通过选择哪些网关与集群关联来控制访问权限。要获得更多控制,请使用 IAM 策略来限制谁可以向特定集群部署服务。
应用程序团队将网关连接器添加到 CreateService 或 UpdateService 中的每个服务定义中。如果您现有的 ECS 服务具有自己的负载均衡器,则可以通过调用 UpdateService 添加网关连接器来逐步采用 ECS Gateway。两个入口路径仍然可用,允许您在移除现有负载均衡器配置之前验证网关连接。
aws ecs create-service \
--cluster my-cluster \
--service my-api-service \
--task-definition my-api-service:1 \
--gateway-connectors '[{ "portName": "api", "filters": {"accessTypes": ["PUBLIC"]}, "healthCheck": {...} }]'
在部署时,Amazon ECS 会评估与集群关联的网关,并将服务连接到每个兼容网关。当网关的访问类型与服务的连接器筛选条件相匹配,它与服务位于同一 VPC 中,并且它涵盖该服务配置的子网使用的所有可用区时,网关是兼容的。
对于每个连接,Amazon ECS 会将服务分配给具有可用容量的 ALB,并预置每项服务的资源:ACM 证书、唯一的 DNS 主机名、将该主机名的流量路由到服务目标组的侦听器规则,以及仅允许来自 ALB 安全组的入站流量的服务安全组。如果现有 ALB 没有容量,则 ECS 会创建一个新的 ALB(最多为 maxAlbCount,指配额限制)。预置完成后,网关路由将变为 ACTIVE,并且服务 URL 已准备好接收流量。
ECS Gateway 可自动处理常见的操作场景:
- 重新部署:每次部署时,ECS 都会重新评估网关关联。如果自上次部署以来关联了新的兼容网关,则您的服务将连接到这些网关。如果网关已取消关联,则您的服务将断开连接并移除该路由。您的服务始终反映部署时集群网关的当前状态。
- 服务删除:ECS 会自动断开服务与每个网关的连接,移除所有网关路由,并清理所有每项服务资源。如果服务保留了 ALB 上的最后一个路由,则该 ALB 将被取消预置。
注意事项
请记住以下几个重要细节:
- 联网:ECS Gateway 适用于使用
awsvpc网络模式的 ECS 服务,覆盖所有启动类型(Amazon ECS EC2、AWS Fargate 和 ECS Managed Instances)。您的服务可用区(AZ)必须是集群上每个网关可用区的子集。网关 ALB 仅将流量路由到其拥有子网的可用区中的任务。我们建议为具有相同可用区集的给定集群创建网关和服务。 - 容量:如果达到了
maxAlbCount且没有 ALB 的可用容量,则部署将失败。maxAlbCount的默认配额限制为 10。根据您期望连接的服务数量规划您的maxAlbCount设置。 - 可观测性:在 CloudWatch 中使用 ALB 指标和
TargetGroup维度来监控每项服务的流量,使用LoadBalancer维度来监控共享 ALB 中的流量。使用describe-target-health来检查实时目标状态。使用基于网关 ARN 的标记功能,为HealthyHostCount、TargetResponseTime和HTTPCode_Target_5XX_Count等指标配置 CloudWatch 警报,这样监控就会根据您的maxAlbCount自动扩展。
现已推出
Amazon ECS Gateway 现已在所有商用 AWS 区域推出,在这些区域,ECS 无需额外付费。当服务连接到网关时,您只需为账户中预置的底层基础设施付费,包括适用的 ALB 费用、CloudWatch 日志和指标、ACM 证书和数据传输费用。要了解更多信息,请访问 Amazon ECS 定价页面。
要开始使用,请立即在 ECS 控制台中创建您的第一个网关,然后向 AWS re:Post for ECS 或通过您的常规 AWS Support 联系人发送反馈。
— Channy