elb健康检查和ec2健康检查有啥区别?

Posted

技术标签:

【中文标题】elb健康检查和ec2健康检查有啥区别?【英文标题】:What's the difference between elb health check and ec2 health check?elb健康检查和ec2健康检查有什么区别? 【发布时间】:2017-07-16 21:50:09 【问题描述】:

我对 Elastic Load Balancer 健康检查和 Amazon EC2 健康检查有点困惑。

Adding Health Checks to Your Auto Scaling Group 中写道:

如果您已将一个或多个负载均衡器附加到 Auto Scaling 组,并且某个实例未能通过负载均衡器运行状况检查,则 Auto Scaling 默认不会替换该实例。

如果您启用负载均衡器运行状况检查并且实例未能通过运行状况检查,Auto Scaling 会认为该实例运行状况不佳并替换它。

因此,如果我不启用 ELB 健康检查,EC2 健康检查将起作用,如果某些实例未通过健康检查,则自动扩展将考虑不健康的实例并替换它,如果我启用 ELB 健康检查,也会发生同样的事情.那么ELB健康检查和EC2健康检查有什么区别呢?

【问题讨论】:

【参考方案1】:

EC2 health check 从管理程序和网络的角度观察实例的可用性。例如,在硬件问题的情况下,检查将失败。此外,如果实例配置错误且未响应网络请求,则会将其标记为故障。

ELB health check 验证实例上的指定 TCP 端口是否正在接受连接或指定网页返回 2xx 代码。因此,ELB 运行状况检查更加智能,可以验证实际应用程序是否正常工作,而不是验证一个实例是否正常工作。

话虽如此,还有第三种检查类型:自定义运行状况检查。如果您的应用程序无法通过简单的 HTTP 请求进行检查并且需要高级测试逻辑,您可以在代码中实现自定义检查并通过 API 设置实例运行状况: Health Checks for Auto Scaling Instances

【讨论】:

如果 AWS 文档这么清楚就好了。谢谢!

以上是关于elb健康检查和ec2健康检查有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

健康检查类型ELB具有多个负载均衡器

如何调试失败的 AWS 弹性负载均衡器健康检查

如何在 django 中设置健康检查页面

为啥我看到 ELB 运行状况检查加倍?

在 Elastic beanstalk 中将 ELB 设置为 Autoscaling Health Check Type

NLB 目标组健康检查失控