AWS ELB 健康检查改进
AWS ELB HealthCheck Improvements
所有,
我们最近遇到了 ELB HealthCheck 的问题,它掩盖了导致应用程序影响的特定用例或场景。
谁能建议一种容错方法来处理这个问题?
- 我们有一个 nodeJS 应用程序 运行 在端口 - 80
- 我们在目标组中有 3 个实例并且已在 ELB 中注册。
- ELB HealthCheck 配置为命中端口 80 上的根路径,如果获得 HTTP 200return成功
- 最近,其中一个节点在应用程序挂载时磁盘已 100% 满,而根挂载仍有 space。
- 虽然根据 ELB 的健康检查是成功的,但服务器没有响应任何其他服务,理想情况下它是不健康的。这意味着有一些请求得到了
成功了,但其中一些失败了(被路由到这个满是磁盘的服务器)。
- 我们确实收到了来自其他监控系统的有关磁盘填充的通知,但由于电子邮件过多且资源有限,我们没有收到通知。
- 我们是否可以通过任何其他方式改进 HealthCheck 策略,将这些场景告知 AutoScaling Group 或 ELB
以便我们可以定位要删除的这些节点并自动替换它们?
您可以将 Elastic Load Balancing 配置为指向客户健康检查页面(例如 healthcheck.php
).
您可以 运行 该页面上的一些代码来测试应用程序的总体健康状况 (数据库连接、磁盘 space、可用内存)。如果一切正常,return 一个 200
响应。如果出现问题,return 一个 500
响应。这将导致负载均衡器将该实例视为 Unhealthy
,并且它将停止向该实例提供流量。
如果 Auto Scaling 配置为使用 ELB 健康检查,则 Auto Scaling 将终止不健康的实例并自动用新实例替换它。
所有,
我们最近遇到了 ELB HealthCheck 的问题,它掩盖了导致应用程序影响的特定用例或场景。
谁能建议一种容错方法来处理这个问题?
- 我们有一个 nodeJS 应用程序 运行 在端口 - 80
- 我们在目标组中有 3 个实例并且已在 ELB 中注册。
- ELB HealthCheck 配置为命中端口 80 上的根路径,如果获得 HTTP 200return成功
- 最近,其中一个节点在应用程序挂载时磁盘已 100% 满,而根挂载仍有 space。
- 虽然根据 ELB 的健康检查是成功的,但服务器没有响应任何其他服务,理想情况下它是不健康的。这意味着有一些请求得到了 成功了,但其中一些失败了(被路由到这个满是磁盘的服务器)。
- 我们确实收到了来自其他监控系统的有关磁盘填充的通知,但由于电子邮件过多且资源有限,我们没有收到通知。
- 我们是否可以通过任何其他方式改进 HealthCheck 策略,将这些场景告知 AutoScaling Group 或 ELB 以便我们可以定位要删除的这些节点并自动替换它们?
您可以将 Elastic Load Balancing 配置为指向客户健康检查页面(例如 healthcheck.php
).
您可以 运行 该页面上的一些代码来测试应用程序的总体健康状况 (数据库连接、磁盘 space、可用内存)。如果一切正常,return 一个 200
响应。如果出现问题,return 一个 500
响应。这将导致负载均衡器将该实例视为 Unhealthy
,并且它将停止向该实例提供流量。
如果 Auto Scaling 配置为使用 ELB 健康检查,则 Auto Scaling 将终止不健康的实例并自动用新实例替换它。