2017-07-07 159 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將終止不健康的實例並自動將其替換爲新實例。