运行 多个 ECS 任务基于一台主机中相同的任务定义,使用不同的端口

Running multiple ECS tasks based on same task definitions in one host, using different ports

我有一个 ecs 任务定义。上述任务定义的多个任务可以 运行 在多个端口上的一个 EC2 实例上吗?

我已经在几个 ec2 实例上 运行ning 了几个任务 运行ning。我想减少资源消耗。由于一个 EC2 实例拥有足够的资源来完成 运行 多项任务。是否可以在一个 EC2 实例的不同端口上多次 运行 相同的任务?

是的,自 2016 年以来,ECS 对此提供了很好的支持。您可以在容器定义中将主机端口留空,这将为您的容器选择一个随机端口。因此,同一任务定义的更多实例可以 运行 在一个 ECS 实例上。

您可以将 ECS 服务与 Application Load Balancer 结合配置,这样当它启动新任务时,它会在关联的目标组中注册端口号。这样你就不必处理随机端口。

如果您通过 AWS 控制台设置服务,则配置非常简单。

这可以通过在定义任务时在容器定义的端口映射设置中将主机端口设置为 0 来配置。

以下设置在任务的容器定义中可用。

它允许 ECS 将随机端口分配给同一 EC2 中的任务 运行。

更多详情请查看 - Setup Dynamic Port Mapping for ECS