

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

# 關於 Auto Scaling 群組的運作狀態檢查
<a name="health-checks-overview"></a>

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

**Topics**
+ [運作狀態檢查類型](#available-health-checks)
+ [Amazon EC2 運作狀態檢查](#instance-health-detection)
+ [Elastic Load Balancing 運作狀態檢查](#elastic-load-balancing-health-checks)
+ [VPC Lattice 運作狀態檢查](#vpc-lattice-health-checks)
+ [Amazon EC2 Auto Scaling 如何將停機時間降至最低](#minimize-downtime)
+ [暖集區中執行個體的運作狀態檢查](#health-checks-for-instance-in-a-warm-pool)
+ [運作狀態檢查注意事項](#health-check-considerations)

## 運作狀態檢查類型
<a name="available-health-checks"></a>

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


****  

| 運作狀態檢查類型 | 它檢查的服務項目 | 
| --- | --- | 
| Amazon EC2 狀態檢查和排程事件 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/autoscaling/ec2/userguide/health-checks-overview.html)這是 Auto Scaling 群組的預設運作狀態檢查類型。 | 
| Elastic Load Balancing 運作狀態檢查 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/autoscaling/ec2/userguide/health-checks-overview.html)若要執行此運作狀態檢查類型，您必須為 Auto Scaling 群組將其開啟。 | 
| VPC Lattice 運作狀態檢查 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/autoscaling/ec2/userguide/health-checks-overview.html)若要執行此運作狀態檢查類型，您必須為 Auto Scaling 群組將其開啟。 | 
| Amazon EBS 運作狀態檢查 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/autoscaling/ec2/userguide/health-checks-overview.html)若要執行此運作狀態檢查類型，您必須為 Auto Scaling 群組將其開啟。 | 
| 自訂運作狀態檢查 |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/autoscaling/ec2/userguide/health-checks-overview.html)  | 

## Amazon EC2 運作狀態檢查
<a name="instance-health-detection"></a>

在執行個體啟動後，該執行個體會連接至 Auto Scaling 群組，並進入 `InService` 狀態。如需 Auto Scaling 群組中執行個體不同生命週期的詳細資訊，請參閱 [Amazon EC2 Auto Scaling 執行個體生命週期](ec2-auto-scaling-lifecycle.md)。

Amazon EC2 Auto Scaling 會定期檢查 Auto Scaling 群組內所有執行個體的運作狀態，藉此確認執行個體是否正在執行且狀態良好。

**狀態檢查**  
Amazon EC2 Auto Scaling 使用 Amazon EC2 執行個體狀態檢查和系統狀態檢查的結果來判斷執行個體的運作狀態。如果執行個體的狀態是 `running` 以外的任何 Amazon EC2 狀態，或是狀態檢查的狀態變為 `impaired`，則 Amazon EC2 Auto Scaling 會認定此執行個體運作狀態不佳，並將其取代。這包括執行個體具有下列任何狀態時：
+  `stopping` 
+  `stopped` 
+  `shutting-down` 
+  `terminated` 

Amazon EC2 狀態檢查不需要任何特殊組態，並且會永遠啟用。如需詳細資訊，請參閱《*Amazon EC2 使用者指南*》中的[狀態檢查類型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-system-instance-status-check.html#types-of-instance-status-checks)。

**重要**  
Amazon EC2 Auto Scaling 允許狀態檢查偶爾失敗，而不採取任何動作。當狀態檢查失敗時，Amazon EC2 Auto Scaling 會等待幾分鐘 AWS 讓 修正問題。當執行個體狀態檢查的狀態變為 `impaired` 時，其不會立即將執行個體標示為 `Unhealthy`。此外，EC2 Auto Scaling 不會將執行個體標記為 `Unhealthy` 狀態檢查傳回 `insufficient-data`。  
然而，如果 Amazon EC2 Auto Scaling 偵測到執行個體不再處於 `running` 狀態，但是，此情況可視為立即失敗。在這種情況下，它會立即將執行個體標記為 `Unhealthy`並取代它。

**排程事件**  
Amazon EC2 偶爾可以將您執行個體上的事件安排在特定時間戳之後執行。如需詳細資訊，請參閱《*Amazon EC2 使用者指南*》中的[執行個體的已排程事件](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-instances-status-check_sched.html)。

若您其中一個執行個體受到排程事件影響，Amazon EC2 Auto Scaling 會認定此執行個體運作狀態不佳，並會進行取代。在達到時間戳記中指定的日期和時間之前，執行個體不會開始關閉。

## Elastic Load Balancing 運作狀態檢查
<a name="elastic-load-balancing-health-checks"></a>

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

在您可以為 Auto Scaling 群組開啟 Elastic Load Balancing 運作狀態檢查之前，您必須設定 Elastic Load Balancing 負載平衡器，並為其設定運作狀態檢查，以判斷您的執行個體是否正常運作。如需詳細資訊，請參閱[準備連接 Elastic Load Balancing 負載平衡器](getting-started-elastic-load-balancing.md)。

將負載平衡器連接到 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 群組](attach-load-balancer-asg.md)。  
當您開啟群組的 Elastic Load Balancing 運作狀態檢查時，Amazon EC2 Auto Scaling 可以取代 Elastic Load Balancing 回報為運作狀態不佳的執行個體，但僅限於負載平衡器處於 `InService` 狀態之後。如需詳細資訊，請參閱[確認負載平衡器的連接狀態](load-balancer-status.md)。

## VPC Lattice 運作狀態檢查
<a name="vpc-lattice-health-checks"></a>

預設情況下，Amazon EC2 Auto Scaling 會忽略 VPC Lattice 運作狀態檢查的結果。您可以選擇性地為 Auto Scaling 群組開啟這些運作狀態檢查。之後，當 VPC Lattice 將註冊的執行個體報告為 `Unhealthy`，Amazon EC2 Auto Scaling 會在下次定期執行運作狀態檢查時將執行個體標示為 `Unhealthy` 並將其取代。註冊執行個體然後檢查其健康狀態的程序，與 Elastic Load Balancing 運作狀態檢查的程序相同。

**注意**  
如需如何連接 VPC Lattice 目標群組和開啟 Auto Scaling 群組 VPC Lattice 運作狀態檢查的說明，請參閱 [將 VPC Lattice 目標群組連接到 Auto Scaling 群組](attach-vpc-lattice-target-group-asg.md)。  
當您開啟群組的 VPC Lattice 運作狀態檢查時，Amazon EC2 Auto Scaling 可以取代 VPC Lattice 回報為運作狀態不佳的執行個體，但僅限於目標群組處於 `InService` 狀態之後。如需詳細資訊，請參閱[確認 VPC Lattice 目標群組的連接狀態](verify-target-group-attachment-status.md)。

## Amazon EC2 Auto Scaling 如何將停機時間降至最低
<a name="minimize-downtime"></a>

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

如果 Amazon EC2 Auto Scaling 判斷任何執行個體不再執行 （或使用 `Unhealthy` [set-instance-health](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/set-instance-health.html) 命令標記），則會立即取代它們。但是，如果發現其他執行個體運作狀態不佳，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 會取代運作狀態不佳的執行個體。這可能會導致群組產生一些停機時間。
您可以透過[設定執行個體維護政策](https://docs.aws.amazon.com//autoscaling/ec2/userguide/set-instance-maintenance-policy-on-group.html)來變更 Auto Scaling 取代運作狀態不佳執行個體的速率，以修改預設的 10% 值。不過，Auto Scaling 可能仍會調節將執行個體標記為運作狀態不佳的速率。  
例如，如果 Elastic Load Balancing 運作狀態檢查報告 Auto Scaling 群組中的所有執行個體運作狀態不佳，且負載平衡器處於 `InService` 狀態，則 Amazon EC2 Auto Scaling 可能會一次將運作狀態不佳的執行個體標記為較少。這可能導致一次替換的執行個體比在其他案例中套用的 10% 少得多。這可讓您有時間修正問題，而無需 Amazon EC2 Auto Scaling 自動終止整個群組。

## 暖集區中執行個體的運作狀態檢查
<a name="health-checks-for-instance-in-a-warm-pool"></a>

Amazon EC2 Auto Scaling 也會對暖集區中的執行個體執行運作狀態檢查。如需詳細資訊，請參閱[檢視運作狀態檢查狀態和運作狀態檢查失敗的原因](warm-pools-health-checks-monitor-view-status.md)。

## 運作狀態檢查注意事項
<a name="health-check-considerations"></a>

以下是使用 Amazon EC2 Auto Scaling 運作狀態檢查時的考量事項。
+ 如果您需要對正在終止的執行個體或正在啟動的執行個體做些什麼，可以使用 lifecycle hook。使用這些掛鉤，您可以執行自訂動作，如 Amazon EC2 Auto Scaling 啟動或終止執行個體。如需詳細資訊，請參閱[Amazon EC2 Auto Scaling lifecycle hook](lifecycle-hooks.md)。
+ Amazon EC2 Auto Scaling 不提供從運作狀態檢查中移除 Amazon EC2 狀態檢查和排程事件的方法。如果不想要取代執行個體，建議您暫停任何個別 Auto Scaling 群組的 `ReplaceUnhealthy` 和 `HealthCheck` 程序。如需詳細資訊，請參閱[暫停和繼續 Amazon EC2 Auto Scaling 程序](as-suspend-resume-processes.md)。
+ 若要手動將運作不佳的執行個體的運作狀態設回 `Healthy`，您可以試著使用 [set-instance-health](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/set-instance-health.html) 命令。如果您看見錯誤，這可能是因為執行個體已終止。通常，使用 [set-instance-health](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/set-instance-health.html) 命令將執行個體的運作狀態設回 `Healthy` 的作法，只適用於 `ReplaceUnhealthy` 程序或 `Terminate` 程序已暫停處理的情況。
+ 如果您需要對執行個體進行故障診斷，而不會受到運作狀態檢查的干擾，您可以將執行個體置於 `Standby` 狀態。在您讓執行個體恢復服務之前，Amazon EC2 Auto Scaling 不會對處於 `Standby` 狀態的執行個體執行運作狀態檢查。如需詳細資訊，請參閱[從 Auto Scaling 群組暫時移除執行個體](as-enter-exit-standby.md)。
+ 當您的執行個體終止後，所有與彈性 IP 地址相關聯的設定，都會解除，且不會自動關聯到新的執行個體。您必須手動將這些彈性 IP 地址關聯到新的執行個體，或使用 lifecycle hook 型解決方案自動進行。如需詳細資訊，請參閱*《Amazon EC2 使用者指南》*中的[彈性 IP 位址](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html)。
+ 同樣地，當您的執行個體終止後，其連接的 EBS 磁碟區會分開 (或刪除，具體取決於磁碟區的 `DeleteOnTermination` 屬性)。您必須手動將這些 EBS 磁碟區連接到新的執行個體，或使用 lifecycle hook 型解決方案自動進行。如需詳細資訊，請參閱「Amazon EBS 使用者指南」**中的[將 Amazon EBS 磁碟區連接到執行個體](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-attaching-volume.html)。