如何为 Amazon ECS 设置动态端口映射?

上次更新日期:2022 年 4 月 26 日

我想为 Amazon Elastic Container Service (Amazon ECS) 中我的容器实例设置动态端口映射。

简短描述

Classic Load Balancer 不允许您在同一个实例上运行任务的多个副本。相反,使用 Classic Load Balancer 时,您必须将端口号静态映射到容器实例上。但 Application Load Balancer 使用动态端口映射,因此,您可以在同一个容器实例上运行来自一个服务的多个任务。

注意:Network Load Balancer 也可用于动态端口映射。请参阅 Network Load Balancer创建 Network Load Balancer

解决方法

要设置动态端口映射,请执行以下步骤:

  1. 创建 Application Load Balancer 和目标组。
    重要提示:要在创建目标组时正确路由运行状况检查流量,请展开高级运行状况检查设置。 对于端口,请选择流量端口
  2. 打开 Amazon ECS 控制台,然后针对您要创建更新任务定义将主机端口设置为 0。请务必为您的应用程序设置容器端口映射
    重要提示:主机awsvpc 网络模式不支持动态主机端口映射。
  3. 添加规则以允许从负载均衡器进入容器实例的入站流量。安全组和网络访问控制列表(网络 ACL)必须允许在临时端口范围内从负载均衡器到实例的流量。
    注意:有关临时端口范围的更多信息,请参阅 PortMapping
  4. 打开 Amazon ECS 控制台,然后配置您的服务以使用您创建的 Application Load Balancer
    重要提示:您只能在创建服务期间添加负载均衡器。创建服务后,您不能更改目标组的 Amazon 资源名称 (ARN)、容器名称或服务定义中指定的容器端口。您无法添加、删除或更改现有服务的负载均衡器配置。如果您更新服务任务定义,则创建服务时指定的容器名称和容器端口必须保留在任务定义中。有关更多信息,请参阅服务负载均衡
  5. 打开 Amazon Elastic Compute Cloud (Amazon EC2) 控制台,然后从导航窗格中选择目标组。为目标组选择超链接名称。在目标选项卡中,您可以在创建的服务中查看哪个端口用于任务。

如果动态端口映射设置正确,则您将看到目标组中的注册目标及任务的分配端口。您还可以看到以下临时端口范围下注册目标中的任务:49153–6553532768–61000


这篇文章对您有帮助吗?


您是否需要账单或技术支持?