AWS NLB && ALB


AWS 中的 NLB(Network Load Balancer)ALB(Application Load Balancer) 是两种不同类型的负载均衡器,分别针对不同的网络层级和应用场景设计。以下是两者的核心区别及适用场景分析:


⚙️ 1. 工作层级与协议支持

特性 NLB(网络负载均衡器) ALB(应用负载均衡器)
OSI层级 第4层(传输层) 第7层(应用层)
协议支持 TCP、UDP、TLS HTTP、HTTPS、WebSocket
路由依据 IP地址、端口、TCP序列号 URL路径、主机头、HTTP头部、查询参数
  • NLB:基于传输层协议(如TCP/UDP)分发流量,不解析应用层内容,适合低延迟、高吞吐场景。
  • ALB:深度解析HTTP/HTTPS请求内容,支持基于URL路径(如 /api vs /images)或主机名的智能路由,适用于Web应用和微服务。

⚡️ 2. 性能与扩展性

指标 NLB ALB
吞吐量 每秒处理数百万请求,超低延迟(微秒级) 高吞吐但略低于NLB(毫秒级延迟)
扩展能力 自动弹性扩展,无需预热 自动扩展,但突发流量需1-7分钟预热
静态IP ✅ 支持固定IP或弹性IP ❌ 仅支持动态DNS
  • NLB:专为高性能场景优化,如游戏服务器、实时视频流、金融交易系统。
  • ALB:适合需要复杂路由的Web应用(如电商平台),但性能上限低于NLB。

🛡️ 3. 高级功能与安全性

功能 NLB ALB
内容路由 ❌ 不支持 ✅ 基于URL路径、主机头等精细路由
TLS终止 ✅ 支持TLS解密(需手动配置证书) ✅ 自动集成ACM证书管理,支持SSL卸载
安全集成 基础安全组(2023年后支持) ✅ 深度集成AWS WAF(防SQL注入/XSS攻击)
会话粘滞 ❌ 不支持 ✅ 基于Cookie的会话保持
  • ALB:通过TLS卸载显著降低后端服务器负担,且支持自动化证书续期。
  • NLB:安全组功能较新(2023年更新),适合基础网络隔离。

🖥️ 4. 典型应用场景

场景 推荐负载均衡器 原因
游戏服务器/实时通信 NLB 低延迟、高并发TCP/UDP连接需求
微服务/API网关 ALB 基于URL路径路由到不同后端服务(如 /api → 容器集群)
静态资源分发 ALB 按路径路由(如 /images → S3存储桶)
数据库集群 NLB 高性能TCP负载均衡,支持固定IP

⚠️ 5. 使用注意事项

  • NLB的客户端IP透传
    需在目标组启用“保留客户端IP”选项,否则后端实例看到的是NLB私有IP。
  • ALB的健康检查
    配置不当易误判实例状态(如检查路径 / 返回非200),建议自定义路径(如 /health)。
  • 混合架构
    NLB支持跨VPC注册目标(如本地IDC服务器),ALB仅限同一VPC内。

💎 总结:选择建议

  • 选 NLB 如果
    ⚡️ 需要极致性能(低延迟/高吞吐)、TCP/UDP协议、静态IP支持,或面向非HTTP服务(如数据库、IoT)。
  • 选 ALB 如果
    🌐 业务依赖HTTP/HTTPS、需智能路由(URL/主机头)、TLS自动管理、WAF集成,或构建微服务架构。

💡 最佳实践:对复杂应用(如电商平台),可混合使用 ALB + NLB——ALB处理用户请求的路由,NLB管理后端服务间的高效通信。