2017-07-07 161 views
0

所有,AWS ELB健康检查改进

我们最近在掩盖造成一个应用程序的影响有一定的用例或场景与ELB运行状况检查的问题。

任何人都可以提出一种容错方法来处理这个问题吗?

  1. 我们有一个应用程序的NodeJS在一个端口上运行 - 80
  2. 我们有3个实例中&目标集团是在ELB就读。
  3. ELB HealthCheck被配置为在端口80上命中根路径,如果它获得HTTP 200则返回成功
  4. 最近有一个节点在应用程序装载上填充了100%的磁盘,并且root装载仍有空间。
  5. 虽然HealthCheck按ELB成功,但服务器没有响应任何其他服务,并且它非常不健康。这意味着有一些请求得到 成功,但其中一些失败(这是路由到这个磁盘填充服务器)。
  6. 我们确实收到了来自其他监控系统的磁盘填充通知,但由于压倒性的电子邮件&有限的资源它被错过了。
  7. 是否有任何其他方法可以即兴创建HealthCheck策略,只需将这些场景呈现给AutoScaling组或ELB ,以便我们可以将这些节点的目标移除并自动替换它们?

回答

1

而不是只检查该index.htm页面返回一个200响应,您可以配置弹性负载均衡指向客户健康检查页面(如healthcheck.php)。

您可以在该页面上运行一些代码来测试应用程序(数据库连接,磁盘空间,可用内存)的一般健康状况。如果所有内容都确认无误,则返回200响应。如果出现问题,请返回500响应。这将导致负载均衡器将实例视为Unhealthy,并且它将停止向该实例提供流量。

如果Auto Scaling配置为使用ELB健康检查,则Auto Scaling将终止不健康的实例并自动将其替换为新实例。