疑难点拨 | AWS ELB(Elastic Load Balancing) 故障排查


  官方指导

AWS ELB (负载均衡器)在有故障的时候,会生成HTTP 错误,然后将 HTTP 代码发送到客户端,将请求保存到访问日志并增加两个指标:HTTPCode_ELB_4XX_Count 和HTTPCode_ELB_5XX_Count。大体上,可以追踪两大类的HTTP 代码进行错误排除,一是 4XX 代码,二是 5XX 代码。4XX 代码的产生通常提示故障的根源在客户端,5XX 代码的产生通常意味着故障的根源在服务器。

  比较分析

客户端故障4XX 代码

1. HTTP 400:错误请求
客户端发送的请求不符合 HTTP 格式
2. HTTP 401: 未授权
客户端发送的请求中的身份验证信息错误
3. HTTP 403:禁止访问
客户端发送的请求不被允许访问服务器
4. HTTP 408:请求超时
客户端在空闲超时期到期前未发送数据。
5. HTTP 414:URI 太长
请求 URL 或查询字符串参数过大。

服务器故障 5XX 代码

1. HTTP 500:内部服务器错误
AWS WAF Web 访问控制列表 (web ACL) 的规则配置错误
2. HTTP 502:无效网关
检查是否允许来自负载均衡器子网的流量路由至目标端口上的目标,目标的保持活动状态持续时间是否短于负载均衡器的空闲超时值
3. HTTP 503:服务不可用
负载均衡器的目标组没有已注册目标
4. HTTP 504:网关超时
负载均衡器未能在连接超时到期 (10 秒) 之前建立与目标的连接。负载均衡器与目标建立了连接,但在空闲超时周期到期之前未响应。网络 ACL 或安全组策略不允许临时端口(1024-65535)上从目标到负载均衡器节点的流量。
5. HTTP 505:不支持版本
负载均衡器建立了 HTTP/1 连接,但收到了 HTTP/2 请求。

  备考要点

4XX 代码的产生通常提示故障的根源在客户端,5XX 代码的产生通常意味着故障的根源在服务器。可以快速分析、排除和解决各种常见的客户端故障。可以排除和解决负载均衡器的常见问题,可以快速分析产生故障的原因是属于路由、网络访问规则、负载均衡器目标组,实例注册状态等。