为什么将EC2实例放置在ALB之前需要公共IP?

问题描述

我一直在研究,在给定的可用区域中,有两种方法可以将EC2实例放置在ALB的前面:

  1. 将它们放置在该可用区中ALB引用的相同公共子网中,并为其提供公共IP

  2. 将它们放在专用子网中+在可用区中将ALB引用的公用子网创建NAT网关

我希望能够在没有公共IP的EC2实例前面放置ALB,例如,在ALB引用的公共子网中没有公共IP的EC2实例

当我尝试执行此操作时,ALB表示我的EC2实例不健康,但是当我为该实例提供公共IP时,ALB几乎立即表示其健康

为什么会这样?到目前为止,似乎似乎无法解决此问题(this似乎是到目前为止的唯一答案)

解决方法

当ALB说ec2实例不健康时,表示这两者之一:-

  1. 需要检查health check的配置的端口号,协议和路径。

  2. 第二个don't need将没有公共IP的私有IP分配给ALB后面的ec2实例,因为 Ec2实例安全组应配置为允许来自ALB安全组的入站连接referencing security group ,这意味着ec2实例将不接受ALB以外的连接。

因此,您无需为ec2实例分配私有ip,因为如果您尝试通过其公共ip访问您的实例,它将不会响应