關於 Auto Scaling 群組的運作狀態檢查 - Amazon EC2 Auto Scaling

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

關於 Auto Scaling 群組的運作狀態檢查

本主題提供可用運作狀態檢查類型的概觀,並說明將 Amazon EC2 Auto Scaling 運作狀態檢查與應用程式整合的主要考量事項。

運作狀態檢查類型

Amazon EC2 Auto Scaling 可以使用下列一或多個運作狀態檢查來判斷InService執行個體的運作狀態:

運作狀態檢查類型 它檢查的服務項目

Amazon EC2 狀態檢查和排程事件

  • 檢查執行個體是否正在執行。

  • 檢查可能會損害執行個體的基礎硬體或軟體問題。

這是 Auto Scaling 群組的預設運作狀態檢查類型。

Elastic Load Balancing 運作狀態檢查

  • 檢查負載平衡器是否將執行個體報告為狀況良好,以確認執行個體是否可用於處理要求。

若要執行此健康狀態檢查類型,您必須為 Auto Scaling 群組開啟此類型。

VPC格子健康檢查

  • 檢查VPC萊迪思是否將執行個體報告為狀況良好,以確認執行個體是否可用於處理請求。

若要執行此健康狀態檢查類型,您必須為 Auto Scaling 群組開啟此類型。

Amazon EBS 健康檢查

  • 檢查EBS磁碟區是否可連線並通過 I/O 狀態檢查。

若要執行此健康狀態檢查類型,您必須為 Auto Scaling 群組開啟此類型。

自訂運作狀態檢查

  • 根據您的自訂運作狀態檢查,檢查是否有其他可能指出執行個體健康狀態問題的問題。

Amazon EC2 健康檢查

在執行個體啟動後,該執行個體會連接至 Auto Scaling 群組,並進入 InService 狀態。如需 Auto Scaling 群組中執行個體不同生命週期的詳細資訊,請參閱 Amazon EC2 Auto Scaling 執行個體生命週期

Amazon EC2 Auto Scaling 會定期檢查 Auto Scaling 群組中所有執行個體的運作狀態,以確保它們正在執行且狀況良好。

狀態檢查

Amazon EC2 Auto Scaling 會使用 Amazon EC2 執行個體狀態檢查和系統狀態檢查的結果來判斷執行個體的運作狀態。如果執行個體處於 Amazon 狀EC2態以外的任何狀態running,或狀態檢查的狀態變為impaired,Amazon EC2 Auto Scaling 會將執行個體視為運作狀態不良並進行取代。這包括執行個體具有下列任何狀態時:

  • stopping

  • stopped

  • shutting-down

  • terminated

Amazon 狀EC2態檢查不需要任何特殊組態,且始終處於啟用狀態。如需詳細資訊,請參閱 Amazon EC2 使用者指南的狀態檢查類型

重要

Amazon EC2 Auto Scaling 功能可讓狀態檢查偶爾失敗,而無需採取任何動作。狀態檢查失敗時,Amazon EC2 Auto Scaling 會等待幾分鐘 AWS 以修正此問題。當執行個體狀態檢查的狀態變為 impaired 時,其不會立即將執行個體標示為 Unhealthy

但是,如果 Amazon EC2 Auto Scaling 偵測到執行個體不再處於該running狀態,則會將此情況視為立即失敗。在這種情況下,它會立即將實例標記為Unhealthy並將其替換。

排程事件

Amazon 偶爾EC2可以將執行個體上的事件排定在特定時間戳記之後執行。如需詳細資訊,請參閱 Amazon EC2 使用者指南的執行個體排定事件

如果您的其中一個執行個體受到排程事件的影響,Amazon EC2 Auto Scaling 會將該執行個體視為運作狀態不佳並加以取代。在達到時間戳記中指定的日期和時間之前,執行個體不會開始關閉。

Elastic Load Balancing 運作狀態檢查

當您為 Auto Scaling 群組開啟 Elastic Load Balancing 運作狀態檢查時,Amazon EC2 Auto Scaling 可以使用這些運作狀態檢查的結果來判斷執行個體的運作狀態。

在為 Auto Scaling 群組開啟 Elastic Load Balancing 運作狀態檢查之前,您必須先設定 Elastic Load Balancing 器,並為其設定健康狀態檢查,以判斷執行個體是否健全狀況。如需詳細資訊,請參閱準備連接 Elastic Load Balancing 負載平衡器

將負載平衡器連接至 Auto Scaling 群組後,會發生下列情況:

  • Amazon EC2 Auto Scaling 會向負載平衡器註冊 Auto Scaling 群組中的執行個體。

  • 在執行個體完成註冊後,其會進入 InService 狀態,並可與負載平衡器搭配使用。

根據預設,Amazon EC2 Auto Scaling 會忽略 Elastic Load Balancing 運作狀態檢查的結果。為 Auto Scaling 群組開啟這些運作狀態檢查後,當 Elastic Load Balancing 將已註冊的執行個體報告為時Unhealthy,Amazon EC2 Auto Scaling 會Unhealthy在下一次定期運作狀態檢查中標記該執行個體並加以取代。

如果您的負載平衡器啟用連線排空 (取消註冊延遲),Amazon EC2 Auto Scaling 會等待執行中請求完成或最大逾時到期,然後終止運作狀態不良的執行個體。

注意

如需如何為 Auto Scaling 群組連接負載平衡器並開啟 Elastic Load Balancing 健康狀態檢查的指示,請參閱將 Elastic Load Balancing 負載平衡器連接至 Auto Scaling 群組

當您為群組開啟 Elastic Load Balancing 運作狀態檢查時,Amazon EC2 Auto Scaling 可以將 Elastic Load Balancing 報告為運作狀態不良的執行個體取代,但只有在負載平衡器處於InService狀態之後才能執行個體。如需詳細資訊,請參閱確認負載平衡器的連接狀態

VPC格子健康檢查

根據預設,Amazon EC2 Auto Scaling 會忽略VPC萊迪思運作狀態檢查的結果。您可以選擇性地為 Auto Scaling 群組開啟這些健康狀態檢查。執行此操作後,當VPC萊迪思將已註冊的執行個體報告為時Unhealthy,Amazon EC2 Auto Scaling 會Unhealthy在下一次定期運作狀態檢查中標記該執行個體並加以取代。註冊執行個體然後檢查其健康狀態的程序,與 Elastic Load Balancing 運作狀態檢查的程序相同。

注意

如需有關如何附加VPC萊迪思目標群組並為 Auto Scaling 群組開啟VPC萊迪思健康檢查的說明,請參閱將一個VPC格子目標組附加到您的 Auto Scaling 組

當您針對群組開啟VPC萊迪思運作狀態檢查時,Amazon EC2 Auto Scaling 可以取代VPC萊迪思報告為運作狀態不良的執行個體,但只有在目標群組處於InService狀態之後。如需詳細資訊,請參閱驗證VPC萊迪思目標群組的附件狀態

Amazon EC2 Auto Scaling 如何將停機時間降

根據預設,新執行個體會在終止現有執行個體的同時佈建,這可能會防止接受新的要求,直到新執行個體完全運作為止。

如果 Amazon EC2 Auto Scaling 判斷任何執行個體已不再執行 (或已標示Unhealthyset-instance-health命令),則會立即取代它們。但是,如果發現其他執行個體運作狀態不佳,Amazon EC2 Auto Scaling 會使用下列方法從故障中復原。此方法最大限度地減少因臨時問題或設定錯誤的運作狀態檢查而可能導致的停機時間。

  • 如果擴展活動正在進行中,且 Auto Scaling 群組的容量少於其所需容量 10% 或更多,Amazon EC2 Auto Scaling 會等待進行中的擴展活動,然後再更換運作狀態不良的執行個體。

  • 向外擴展時,Amazon EC2 Auto Scaling 會等待執行個體通過初始運作狀態檢查。它還會等待預設執行個體完成暖機,以確保新的執行個體準備就緒。

  • 在執行個體完成預熱且群組已上升至其所需容量的 90% 以上之後,Amazon EC2 Auto Scaling 會取代運作狀態不良的執行個體,如下所示:

    • Amazon EC2 Auto Scaling 一次最多只能取代群組所需容量的 10%。它會執行此操作,直到所有運作狀態不佳的執行個體完成替換。

    • 取代執行個體時,它會等待新執行個體傳遞初始運作狀態檢查。它還會等待預設執行個體完成暖機,然後再繼續作業。

注意

如果 Auto Scaling 群組的大小足夠小,產生的 10% 值小於 1,Amazon EC2 Auto Scaling 會改為一次取代運作狀態不良的執行個體。這可能會導致群組產生一些停機時間。

此外,如果 Elastic Load Balancing 運作狀態檢查報告 Auto Scaling 群組中的所有執行個體運作狀態不良,而且負載平衡器處於InService狀態,Amazon EC2 Auto Scaling 可能一次標示較少的執行個體運作狀態不佳。這可能導致一次替換的執行個體比在其他案例中套用的 10% 少得多。這可讓您有時間修正問題,而 Amazon EC2 Auto Scaling 不會自動終止整個群組。

暖池中執行個體的 Health 狀態檢查

Amazon EC2 Auto Scaling 也會對溫暖集區中的執行個體執行運作狀態檢查。如需詳細資訊,請參閱檢視運作狀態檢查狀態和運作狀態檢查失敗的原因

運作狀態檢查注意事項

以下是使用 Amazon EC2 Auto Scaling 運作狀態檢查時的考量事項。

  • 如果您需要對正在終止的執行個體或正在啟動的執行個體做些什麼,可以使用 lifecycle hook。這些掛鉤可讓您在 Amazon EC2 Auto Scaling 啟動或終止執行個體時執行自訂動作。如需詳細資訊,請參閱Amazon EC2 Auto Scaling lifecycle hook

  • Amazon EC2 Auto Scaling 不提供從運作狀態檢查中移除 Amazon EC2 狀態檢查和排定事件的方法。如果不想要取代執行個體,建議您暫停任何個別 Auto Scaling 群組的 ReplaceUnhealthyHealthCheck 程序。如需詳細資訊,請參閱暫停和繼續 Amazon EC2 Auto Scaling 程序

  • 若要將運作狀態不良的執行個體的健全狀態手動設定回Healthy,您可以嘗試使用指set-instance-health令。如果您看見錯誤,這可能是因為執行個體已終止。一般而言,只有在ReplaceUnhealthy處理序或處理序暫停的情況下,Healthy使用set-instance-health命令將執行個體的健康狀態設定Terminate回來才有用。

  • 如果您需要在不受健康狀態檢查干擾的情況下對執行個體進行疑難排解,您可以將例證置於Standby狀態。Amazon EC2 Auto Scaling 不會對處於該狀態的執行個體執行運作Standby狀態檢查,直到您將執行個體重新啟用為止。如需詳細資訊,請參閱從 Auto Scaling 群組暫時移除執行個體

  • 當您的執行個體終止後,所有與彈性 IP 地址相關聯的設定,都會解除,且不會自動關聯到新的執行個體。您必須手動將這些彈性 IP 地址關聯到新的執行個體,或使用 lifecycle hook 型解決方案自動進行。如需詳細資訊,請參閱 Amazon EC2 使用者指南中的彈性 IP 地址

  • 同樣地,當您的執行個體終止時,其連接的EBS磁碟區也會分離 (或根據磁碟區的DeleteOnTermination屬性刪除)。您必須手動將這些EBS磁碟區附加到新執行個體,或使用生命週期掛接式解決方案自動執行此作業。如需詳細資訊,請參閱 Amazon EBS使用者指南中的將 Amazon EBS 磁碟區連接到執行個體