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

上次更新时间:2020 年 5 月 12 日

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

简短描述

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

解决方法

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

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

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


这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?