elb健康检查和ec2健康检查有什么区别?
What's the difference between elb health check and ec2 health check?
我对 Elastic Load Balancer 健康检查和 Amazon EC2 健康检查有点困惑。
在 Adding Health Checks to Your Auto Scaling Group 中说:
If you have attached one or more load balancers to your Auto Scaling group and an instance fails the load balancer health checks, Auto Scaling does not replace the instance by default.
If you enable load balancer health checks and an instance fails the health checks, Auto Scaling considers the instance unhealthy and replaces it.
因此,如果我不启用 ELB 健康检查,EC2 健康检查将起作用,如果某些实例未通过健康检查,自动缩放将考虑不健康的实例并替换它,如果我启用 ELB 健康检查,同样的事情会发生。那么ELB健康检查和EC2健康检查有什么区别呢?
EC2 health check 从管理程序和网络的角度观察实例的可用性。例如,如果出现硬件问题,检查将失败。此外,如果一个实例配置错误并且不响应网络请求,它将被标记为有故障。
ELB health check 验证实例上的指定 TCP 端口正在接受连接或指定网页 returns 2xx 代码。因此 ELB 健康检查更智能一些,它验证实际应用程序是否正常工作,而不是仅验证一个实例是否正常工作。
据说还有第三种检查类型:自定义健康检查。如果您的应用程序无法通过简单的 HTTP 请求进行检查并且需要高级测试逻辑,您可以在代码中实现自定义检查并通过 API 设置实例运行状况:
Health Checks for Auto Scaling Instances
我对 Elastic Load Balancer 健康检查和 Amazon EC2 健康检查有点困惑。
在 Adding Health Checks to Your Auto Scaling Group 中说:
If you have attached one or more load balancers to your Auto Scaling group and an instance fails the load balancer health checks, Auto Scaling does not replace the instance by default.
If you enable load balancer health checks and an instance fails the health checks, Auto Scaling considers the instance unhealthy and replaces it.
因此,如果我不启用 ELB 健康检查,EC2 健康检查将起作用,如果某些实例未通过健康检查,自动缩放将考虑不健康的实例并替换它,如果我启用 ELB 健康检查,同样的事情会发生。那么ELB健康检查和EC2健康检查有什么区别呢?
EC2 health check 从管理程序和网络的角度观察实例的可用性。例如,如果出现硬件问题,检查将失败。此外,如果一个实例配置错误并且不响应网络请求,它将被标记为有故障。
ELB health check 验证实例上的指定 TCP 端口正在接受连接或指定网页 returns 2xx 代码。因此 ELB 健康检查更智能一些,它验证实际应用程序是否正常工作,而不是仅验证一个实例是否正常工作。
据说还有第三种检查类型:自定义健康检查。如果您的应用程序无法通过简单的 HTTP 请求进行检查并且需要高级测试逻辑,您可以在代码中实现自定义检查并通过 API 设置实例运行状况: Health Checks for Auto Scaling Instances