Elastic Load Balancing
将入站流量自动分发到多个目标的负载均衡服务,提供 ALB、NLB、GLB、CLB 四种类型
概述
Elastic Load Balancing 是 AWS 的负载均衡服务,自动将入站应用程序流量分发到多个目标(EC2 实例、容器、IP 地址、Lambda 函数)。提供应用程序负载均衡器(ALB)、网络负载均衡器(NLB)、网关负载均衡器(GLB)和经典负载均衡器(CLB)四种类型。
ALB 与 NLB - 按层级决定的选择
ALB 工作在第 7 层(HTTP/HTTPS),支持基于路径、主机名、HTTP 头、查询字符串的路由规则。适合微服务架构、容器化应用和需要 WebSocket 支持的场景。NLB 工作在第 4 层(TCP/UDP/TLS),提供超低延迟(微秒级)和每秒数百万请求的处理能力。适合需要静态 IP、极致性能或非 HTTP 协议的场景。选择标准:如果是 HTTP/HTTPS 应用且需要高级路由,选 ALB;如果需要极致性能、静态 IP 或 TCP/UDP 协议,选 NLB。
健康检查与目标组设计
健康检查是负载均衡器判断目标是否可用的机制。ALB 支持 HTTP/HTTPS 健康检查,可以检查特定路径的响应状态码和响应体。NLB 支持 TCP、HTTP、HTTPS 健康检查。健康检查间隔、超时和阈值的设置需要平衡检测速度和误判率。目标组将相关目标分组管理,一个 ALB 可以有多个目标组,通过监听器规则将不同请求路由到不同目标组。加权目标组支持金丝雀部署和蓝绿部署。
访问日志与故障排除
ELB 访问日志记录每个请求的详细信息:客户端 IP、延迟、请求路径、响应状态码等。日志存储在 S3 中,可用 Athena 进行分析。常见故障排除场景:502 Bad Gateway 通常表示后端目标返回了无效响应或连接超时;504 Gateway Timeout 表示后端处理超时;503 Service Unavailable 表示没有健康的目标可用。CloudWatch 指标(HealthyHostCount、UnHealthyHostCount、TargetResponseTime)是监控负载均衡器健康状态的关键。