AWS内部负载均衡器跨可用区转发机制疑问
AWS内部负载均衡跨AZ转发行为解析
场景回顾
你的部署配置:
- 公网:部署
webAppPublic,可通过IGW访问互联网 - 私有网络A/B:分属不同AZ,无互联网访问能力,各部署一台
webAppPrivate实例 - 配置关联双AZ的内部负载均衡,两台实例加入同一目标组,
webAppPublic通过LB DNS名称访问webAppPrivate
你观察到的现象:移除其中一台webAppPrivate实例后,即使DNS解析到对应AZ的LB节点,请求仍能正常转发到剩余健康实例,并未出现预期的失败情况。
核心解答
你的猜测完全正确——AWS内部负载均衡(包括ALB和NLB)在自身AZ没有健康目标实例时,会自动跨AZ转发请求到其他AZ的健康实例,这是AWS负载均衡默认内置的高可用机制。
具体运行逻辑
- DNS轮询的作用:执行
dig load-balancer-dns返回不同AZ的LB节点IP且顺序变化,这是AWS的DNS负载均衡机制,用于将请求分散到不同AZ的LB节点,但这只是流量分发的入口环节。 - LB节点的全局健康感知:每个LB节点会持续监控整个目标组内所有实例的健康状态,不受实例所属AZ的限制。
- 跨AZ转发触发逻辑:当某个LB节点所在AZ内没有健康实例时,它不会直接拒绝请求,而是会将请求转发到目标组中其他AZ的健康实例上,确保请求能被正常处理。
认知修正
你之前认为LB节点只会处理自身AZ内的实例,这是对AWS负载均衡设计的误解。AWS负载均衡的目标组是全局维度的,所有LB节点都能感知整个目标组的健康状态,而非局限于单个AZ的实例。这种设计避免了单个AZ的实例故障导致对应LB节点无法提供服务的情况,大幅提升了整体架构的容错能力。
内容的提问来源于stack exchange,提问作者GionJh
相关产品推荐
相关产品推荐

