请注意,这个问题是关于 ELB 本身,而不是 ELB 背后的 EC2 实例
情况
我们最近遇到了以下 ELB 问题:
- 50% 的请求没有到达我们的后端,而且 ELB 本身似乎也
- 通过 AWS 控制台监控 ELB 没有显示任何异常(零 ELB 4xx 和 ELB 5xx)
- 外部检查验证了我们的后端 EC2 实例运行良好并且可以访问
我们假设运行 ELB 的 EC2 实例存在连接问题。临时修复是创建新的 ELB(在同一组 EC2 实例前面)并更改 DNS 记录。
问题
- 这是经常发生的事情吗
- 是否有任何工具可以足够快地检测到这种情况(我们始终认为这是我们的错误,并且只有在彻底检查之后我们才开始查看 AWS)
- 有没有办法完全避免这种情况发生
答案1
Route 53 健康检查特别支持 ELB 实例健康监控和故障转移。
一旦启用,Route 53 会自动配置和管理以下设备的健康检查:个人ELB 节点。
Route 53 DNS 故障转移能够评估负载均衡器的健康状况以及在其后面的 EC2 实例上运行的应用程序的运行状况。换句话说,如果堆栈的任何部分发生故障,Route 53 都会检测到故障并将流量从发生故障的端点路由出去。
https://aws.amazon.com/blogs/aws/amazon-route-53-elb-integration-dns-failover/
基本上,这解决了单个 ELB 节点没有固定 IP 的问题,而且很难判断是您的应用程序还是 ELB 本身出现故障。
您应该能够使用它来将故障转移到同一区域中的单独 ELB,或完全不同的区域。您可以将 Route53 监控频率设置为每 10 秒一次,Route 53 别名记录的 TTL 通常为 60 秒,这应该可以让您了解故障转移发生的速度。