在AWS中,为什么NLB可以提供静态IP地址,而ALB却不能?

Abh*_*ath 7 nlb amazon-web-services amazon-elb

根据 AWS,

网络负载均衡器将流量路由到 Amazon Virtual Private Cloud (Amazon VPC) 内的目标,并且能够每秒处理数百万个请求,同时保持超低延迟

此外,NLB 支持静态/弹性 IP 地址。我的印象是,AWS 通常不推荐 IP 地址,而是要求客户使用 DNS 名称,以便底层硬件可以扩展(并且 IP 地址可以更改)。在 NLB 中,IP 可以保持静态并仍可扩展,但 ALB 上不提供相同的功能,这怎么可能?- AWS 在 NLB 中改进了 ALB 的设计限制吗?或者在 ALB 情况下保留静态 IP 有何技术挑战?

Mar*_*cin 8

不知道这是否是 AWS 在 ALB 和 NLB 中使用 IP 地址的完整解释,但我认为这是因为 ALB 工作在OSI 模型应用程序层(第 7 层)

在第 7 层,除了 HTTP、HTTPS、FTP 之外,还有 DNS。因此,您使用 DNS 作为与 ALB 通信的主要方式,这也是 AWS 告诉您要做的事情。

NLB 工作在OSI 模型的传输层(第 4 层) 。这里没有 DNS,而是 TCP 或 UDP 等。因此,当您想要与 NLB 通信时,您需要使用 IP 地址,因为从技术上讲,没有 DNS 或 URL。

AWS 为 NLB 提供 DNS 的事实仅适用于使用 NLB 并在第 7 层上运行的应用程序,例如当您使用 NLB 来负载平衡 HTTPS/HTTP 流量或通过 NLB ssh 到实例时。但是 NLB 可用于仅在第 4 层运行的应用程序,或者使用自定义/专有的更高级别协议,因此它们必须使用 IP 地址,因为 DNS 在第 4 层不可用。所以显然 NLB 的 IP 地址必须是静态的,否则这样的应用程序将会崩溃。