为什么 AWS 应用程序负载均衡器需要两个子网?

Why does an AWS application load balancer require two subnets?

尝试在 aws 上创建应用程序负载均衡器时(到目前为止我一直在使用经典的负载均衡器),我收到以下消息:

At least two subnets must be specified

为什么 ALB 会要求我指定两个子网?有什么方法可以创建它并将其用于单个子网中实例之间的 LB 吗?

所以,这里要说清楚。 @pasmwel 基本上用文档链接回答了,但我想澄清一下,因为这似乎正在获得意见。

ALB 需要 2 个子网,因为这样如果 1 个可用区出现故障,ALB 仍然可以在其他可用区上运行。

这有点傻...因为 AWS 可以在后台执行此操作。

正常的 ELB 和 TCP LB 不需要这个,原因不明。但是,如果一个子网崩溃,它们也会失败。

so that if 1 region goes down

以上错误,应说明

so that if 1 availability zone (AZ), in the region, goes down

问题的答案是,AWS 没有充分的理由要求两个子网。在某些用例中,人们只需要一个子网用于生产,而在其他用例中,开发人员只需要一个子网。有人可能会想,如果只有一个子网,为什么还要使用 ALB。答案是 ALB 可以监控实例健康(尽管还有其他监控方式,例如 CloudWatch。

您可能希望 ALB 只是一个可以轻松放置证书、提供一定安全性并轻松与 R53 集成以用于单个目标实例的地方。如果您想在最大程度地使用 AWS 时使用 Cloudformation 进行设置,则特别方便。

因此,必须配置 2 个子网似乎很愚蠢。我模糊地记得在某个地方读到过这样做并且只使用 1 会导致性能下降但我可能是在做梦。