Auto Scaling 運作狀態檢查設定 - AWS Elastic Beanstalk

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Auto Scaling 運作狀態檢查設定

Amazon EC2 Auto Scaling 會針對其啟動的每個 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體監控其運作狀態。如果有任何執行個體未預期終止,Auto Scaling 會偵測到終止狀況,並啟動替代執行個體。根據預設,針對您的環境所建立的 Auto Scaling 群組,會使用 Amazon EC2 狀態檢查功能。如果您環境中的執行個體未通過 Amazon EC2 狀態檢查,Auto Scaling 會將其撤下並進行替換。

Amazon EC2 狀態檢查僅涵蓋執行個體的運作狀態,而未針對您的應用程式、伺服器或執行個體上所執行的任何 Docker 容器,來檢查其運作狀態。如果您的應用程式當機,但其上所執行的執行個體仍然運作狀態良好,則此執行個體可能會被移出負載平衡器,但 Auto Scaling 不會自動替換該項目。預設的處理動作有利於故障排除作業的進行。即使應用程式在啟動後很快地就當機,但如果應用程式一當機,Auto Scaling 就替換了執行個體,則您可能不會知道發生了錯誤。

如果您希望 Auto Scaling 在執行個體的應用程式停止回應時,就取代這些執行個體,可以利用組態檔案來設定 Auto Scaling 群組使用 Elastic Load Balancing 運作狀態檢查功能。下列範例會設定群組,使用負載平衡器的運作狀態檢查,以及 Amazon EC2 狀態檢查功能,來判斷執行個體的運作狀態。

範例 .ebextensions/autoscaling.config
Resources: AWSEBAutoScalingGroup: Type: "AWS::AutoScaling::AutoScalingGroup" Properties: HealthCheckType: ELB HealthCheckGracePeriod: 300

如需 HealthCheckTypeHealthCheckGracePeriod 屬性的詳細資訊,請參閱《AWS CloudFormation 使用者指南》中的 AWS::AutoScaling::AutoScalingGroup,以及《Amazon EC2 Auto Scaling 使用者指南》中的 Auto Scaling 執行個體運作狀態檢查

根據預設,Elastic Load Balancing 運作狀態檢查會設為透過連接埠 80,使用 TCP 來嘗試連線到您的執行個體。這樣可確認在執行個體上執行的 web 伺服器正在接受連線。不過,您可能想讓 自訂負載平衡器的運作狀態檢查,以確保您的應用程式與 web 伺服器都處於良好的狀態。這項寬限期間的設定,指定了執行個體在受到運作狀態檢查時可以失敗的秒數,未超過此秒數就不會遭到終止和替換。執行個體在被移出負載平衡器後可以回復,所以請預留適合您應用程式的轉換時間給執行個體。