You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Network Load Balancer多子网下请求仅50%成功,求解决方案

公网NLB仅50%请求成功的排查与解决

问题背景

公网Network Load Balancer(NLB)关联subnet-A和subnet-B两个子网,配置了80/443端口监听器,对应目标组已成功注册运行中的Fargate服务IP并建立连接。但通过DNS访问时,仅约50%请求成功——原因是NLB DNS返回两个对应子网的公网A记录,解析到其中一个IP时会超时。补充:两个子网路由均指向Internet Gateway,当前未开启跨区负载均衡,疑问是否必须开启该功能解决问题。

核心分析

NLB的每个关联子网会分配独立的公网IP,DNS会轮询返回这两个IP。出现50%超时,本质是其中一个子网对应的NLB节点无法正常将流量转发到目标实例,和跨区负载均衡没有直接的“必须开启”关联。

排查与解决步骤

  • 检查目标组健康状态:进入EC2控制台的目标组页面,查看两个子网内的目标实例是否都处于健康状态。如果Fargate服务仅部署在其中一个子网,另一个子网的NLB节点找不到健康目标,必然导致超时——这种情况需调整Fargate服务的部署子网,确保两个子网都有运行中的实例,或修改NLB仅关联有实例的子网。
  • 验证安全组配置:
    • NLB的安全组需允许公网(0.0.0.0/0)访问80、443端口;
    • Fargate实例的安全组需允许NLB所在子网的CIDR或NLB的安全组访问对应业务端口;
  • 测试单个NLB IP:直接访问两个NLB的公网IP,确认哪个IP超时,针对性排查该子网的问题:
    • 检查子网路由表:确认0.0.0.0/0确实指向Internet Gateway,无其他阻断路由;
    • 查看CloudWatch指标:监控NLB的UnHealthyHostCount、TargetResponseTime等指标,定位节点或目标的异常;
  • 关于跨区负载均衡:开启该功能后,NLB会跨子网转发流量到健康目标,但这是兜底方案,不是解决根源问题的必需操作。如果两个子网都有健康目标且配置正常,即使不开跨区负载均衡,请求也能正常分发。只有当某个子网的目标全挂时,跨区负载均衡才会把该子网的NLB流量转发到其他子网的健康目标。

内容的提问来源于stack exchange,提问作者iqueqiorio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 01:33:24