增加 AWS ECS 任务定义保留端口限制

Increasing the AWS ECS Task Definition reserved ports limit

我正在尝试使用 aws 的 ecs 服务设置一个 docker 容器。我想在主机上保留端口 30000 - 60000,并将这些端口映射到容器上的 30000 - 60000。然而,AWS 文档指出主机上只能保留 100 个端口:

http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html

谁能解释为什么有 limit/suggest 解决方法?

我很确定 100 个端口的限制是由于

Docker 为每个映射端口启动一个 Go 进程,它将使用 4-6MB 的私有内存。因此在 100 个端口,Docker 进程将消耗大约 500MB 的内存。

如果您尝试将所有 30000 - 60000 端口映射到一个容器,您将需要大约 150GB 的内存。如果您同时需要 UDP 和 TCP,则需要 300GB。

如果您使用那么多端口,那么您需要开始考虑使用--net=host, bridging or mapping interfaces directly into a container. This is unlikely to be supported by ECS (On EC2, I had to take the "real" MAC address from a VPC interface and put it on the containers interface)。