动态端口和AWS Applocation负载均衡器和ECS

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (105)

ELB后面的Docker容器获得动态端口,这些端口自动注册到ELB,以便它们可以将流量重定向到它们。

为了使您的Web服务器可供ELB访问,您必须打开源自安全组内的所有这些端口1024 - 65535。

有没有办法不必打开一个端口范围的安全组,但只能打开ELB正在使用的底池?

提问于
用户回答回答于

在容器实例安全组中,将传入流量限制为端口范围32768-65535以及VPC和负载平衡器的相关子网CIDR(例如,10.0.0.0 / 16)。

用户回答回答于

AWS永远不会修改安全组,因为这可能会导致冲突和安全问题。唯一的例外是Elastic Beanstalk等服务。你可能不得不做论坛所说的并允许端口范围。

The default ephemeral port range is 49153 to 65535, and this range is used for Docker versions prior to 1.6.0. For Docker version 1.6.0 and later, the Docker daemon tries to read the ephemeral port range from /proc/sys/net/ipv4/ip_local_port_range; if this kernel parameter is unavailable, the default ephemeral port range is used. You should not attempt to specify a host port in the ephemeral port range, because these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range.

如果您真的关心哪些端口,我可以看到一些选项:

  1. 不专门使用ALB和转发端口,因此您可以在ELB安全组中指定它们。
  2. 放置ALB相同的安全组为您的应用程序中,并使用内部安全组规则,例如TCP 0-65535sg-foo地方sg-foo是安全组两个ALB和应用程序都在
  3. 将ALB放在安全组中sg-foo,然后放置规则sg-appsg-app应用程序所在的安全组在哪里)并允许TCP 0-65535来自sg-foo内部的流量sg-app

扫码关注云+社区

领取腾讯云代金券