我创建了两个不同版本的自动缩放组模板。
第一个模板在创建时不会自动将公共IP分配给EC2实例,因此在创建时只有一个私有IP分配给EC2实例。但是,对于EC2实例来说,目标组健康检查持续失败,不健康。
但是,在网络配置部分的ASG的第二个模板中,我将一个公共IP设置为自动分配给EC2实例。然后,目标群体的健康检查不通过任何问题。
公共IP自动分配是两个模板之间的唯一区别。当从模板创建ASG时,我选择我正在使用的VPC的公共子网(这意味着它们将流量路由到IGW)。我也尝试过具有相同问题的私有子网。EC2实例的VPC与应用程序负载均衡器相同。
ALB和EC2实例的安全组都允许端口80上的所有传入通信量。
由于负载均衡器和EC2实例在同一个VPC中,所以我假设目标组能够解决健康检查,而不需要将公共IP分配给EC2实例。
我不明白为什么需要将公共IP分配给EC2实例。
发布于 2022-10-01 08:07:13
我怀疑问题是,您的启动模板有用户数据代码,可以从互联网获取用于引导的工件。如果没有分配给它的公共ip,EC2实例将无法正确引导,因此web服务器无法启动,从而导致健康检查失败。
您应该创建一个EC2 AMI,以便您的EC2实例在启动时不再需要从internet上获取工件。这样,无论与实例关联的网络接口的设置如何,它们都将始终工作。
https://stackoverflow.com/questions/73817331
复制相似问题