ALB支援通過健全狀態檢查持續監控後端伺服器的健全狀態,自動屏蔽異常伺服器,確保業務可用性。
使用者可以為每個伺服器組獨立配置健全狀態檢查。每個伺服器組預設開啟健全狀態檢查。
開啟健全狀態檢查後,ALB會持續監控伺服器組中所有後端伺服器的健全狀態,並自動將請求路由至健全狀態檢查正常的伺服器。後端伺服器需連續通過指定次數(健康閾值)的健全狀態檢查才會被判定為正常,以避免網路抖動導致的誤判。
當某台後端伺服器健全狀態檢查出現異常時,ALB會自動將新的請求分發到其他健全狀態檢查正常的後端伺服器。
當該伺服器恢複正常運行時,ALB會將其自動回復到負載平衡服務中。
健全狀態檢查為短串連,完成健全狀態檢查後串連將關閉。
如果同一個伺服器組中僅包含健全狀態檢查異常的伺服器,ALB仍會嘗試根據調度演算法將請求路由至這些伺服器,而不考慮這些伺服器的健全狀態,以最大可能避免業務受損。
如果後端伺服器權重設定為0,該伺服器不會參與健全狀態檢查。
ALB通過特定IP地址與後端伺服器通訊和健全狀態檢查,請確保後端伺服器未屏蔽這些地址(包括iptables或安全性原則軟體):
ALB升級執行個體使用所在交換器網段的私網地址(Local IP)通訊,可在執行個體詳情頁查看。
升級前的ALB執行個體使用內網位址區段100.64.0.0/10與後端伺服器通訊。
建立健全狀態檢查
控制台
前往ALB控制台的健全狀態檢查頁面。
在頂部功能表列選擇目標地區後,單擊建立健全狀態檢查。完成以下配置,然後單擊建立。
健全狀態檢查名稱:輸入健全狀態檢查名稱。
協議:選擇健全狀態檢查協議。
HTTP:通過發送HEAD或GET請求檢查伺服器應用是否健康。
HTTPS:通過發送HEAD或GET請求檢查伺服器應用是否健康。標準版和WAF增強版ALB執行個體支援,基礎版不支援。
TCP:通過發送SYN握手報文檢測伺服器連接埠是否存活。
gRPC:通過發送POST或GET請求檢查伺服器應用是否健康。
健全狀態檢查方法:僅在健全狀態檢查協議為HTTP、HTTPS或gRPC時可配置。
HEAD(HTTP/HTTPS預設):請確保後端伺服器支援HEAD請求。不支援時可改用GET。
POST(gRPC預設):請確保後端伺服器支援POST請求。不支援時可改用GET。
GET:響應報文超過8KB會被截斷,但不影響健全狀態檢查結果判定。
健全狀態檢查HTTP協議版本:支援HTTP1.0或HTTP1.1。僅在健全狀態檢查協議為HTTP或HTTPS時可配置。
連接埠:健全狀態檢查探測連接埠。預設為空白,表示使用後端伺服器連接埠。取值範圍1~65535,僅支援填寫一個連接埠號碼。
路徑:健全狀態檢查探測路徑,如
/health,建議指向靜態頁面。不填時預設探測根路徑(/)。僅在健全狀態檢查協議為HTTP、HTTPS或gRPC時可配置。網域名稱:健全狀態檢查網域名稱。預設使用後端伺服器內網IP。僅在健全狀態檢查協議為HTTP、HTTPS或gRPC時可配置。
健康狀態返回碼:僅當探測請求返回指定狀態代碼時判定為健康。僅在健全狀態檢查協議為HTTP、HTTPS或gRPC時可配置。
HTTP/HTTPS協議:可選http_2xx、http_3xx、http_4xx、http_5xx。預設選擇http_2xx和http_3xx。
gRPC協議:狀態代碼範圍0~99,最多支援20個範圍值,多個值用半形逗號(,)隔開。
警告將4XX或5XX納入健康狀態代碼可能導致故障執行個體無法被及時剔除。建議優先確保後端服務返回正確的2XX或3XX狀態代碼。
健全狀態檢查響應逾時時間:後端伺服器在指定時間內未返回正確響應,則判定為健全狀態檢查失敗。取值範圍1~300秒,預設5秒。
健全狀態檢查間隔時間:兩次健全狀態檢查的時間間隔。取值範圍1~50秒,預設2秒。
健全狀態檢查健康閾值:連續成功指定次數後判定為健康。取值範圍2~10,預設3次。
健全狀態檢查不健康閾值:連續失敗指定次數後判定為不健康。取值範圍2~10,預設3次。
標籤及資源群組:
標籤鍵和標籤值:以索引值對形式標記健全狀態檢查,便於篩選管理。
選擇資源群組:選擇健全狀態檢查歸屬的資源群組。
健全狀態檢查建立完成後,可以在建立伺服器組時,在健全狀態檢查配置中選擇已建立的健全狀態檢查。
支援在建立伺服器組時配置健全狀態檢查,並選中將新的配置儲存為健全狀態檢查,方便下次快速複製使用。
API
調用CreateHealthCheckTemplate建立健全狀態檢查模板。
調用ApplyHealthCheckTemplateToServerGroup將健全狀態檢查模板應用到伺服器組。
編輯健全狀態檢查
關閉健全狀態檢查後,ALB無法檢測後端伺服器故障,流量不會自動切換至正常伺服器。
延長健全狀態檢查間隔會增加ALB發現故障伺服器的時間。
控制台
前往ALB控制台的健全狀態檢查頁面。
找到目標健全狀態檢查,在操作列單擊編輯。
在編輯健全狀態檢查對話方塊中,修改健全狀態檢查參數配置,然後單擊儲存。
也可以在伺服器組頁面編輯健全狀態檢查。
API
調用UpdateHealthCheckTemplateAttribute更新健全狀態檢查模板的屬性。
查看健全狀態檢查狀態
若ALB執行個體已配置監聽且伺服器組已開啟健全狀態檢查,可以在監聽頁簽查看後端伺服器的健全狀態檢查狀態。
控制台
前往ALB控制台的執行個體頁面。
找到目標ALB執行個體,單擊執行個體ID。
單擊監聽頁簽,在監聽列表的健全狀態檢查狀態列查看後端伺服器的健全狀態檢查狀態。
API
調用GetListenerHealthStatus查詢監聽的健全狀態檢查狀態。
刪除健全狀態檢查
控制台
前往ALB控制台的健全狀態檢查頁面。
找到目標健全狀態檢查,在操作列單擊移除。
在彈出的移除對話方塊中,確認提示資訊,然後單擊確定。
API
調用DeleteHealthCheckTemplates刪除健全狀態檢查模板。
應用於生產環境
建立專用健全狀態檢查端點:推薦建立專用介面(如
/health),始終返回 HTTP 200 狀態代碼。避免使用業務路徑,業務路徑可能因許可權校正或資源不存在返回 4XX。健全狀態檢查失敗時優先修複後端服務:排查並修複後端服務問題,使健全狀態檢查路徑返回正確的 2XX 或 3XX 狀態代碼,而非放寬狀態代碼判定條件。
合理配置健全狀態檢查參數:預設配置適用於大多數情境。如果後端服務啟動較慢,可適當增大健全狀態檢查間隔或不健康閾值;如果網路延遲較高,可適當增大響應逾時時間。
使用 curl 命令類比健全狀態檢查:排查健全狀態檢查問題時,可參考以下命令類比 ALB 的健全狀態檢查行為,根據實際配置替換方法(HEAD/GET)、網域名稱、IP和連接埠:
curl -Iv -X HEAD --http1.0 -H "Host: your-domain.com" http://backend_ip:port/health_path
計費
健全狀態檢查不產生額外費用。ALB執行個體的計費規則請參見ALB計費說明。
配額
一個地區最多支援50個健全狀態檢查模板,不支援提升。