

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

# Amazon EC2 Auto Scaling 執行個體生命週期
<a name="ec2-auto-scaling-lifecycle"></a>

Auto Scaling 群組中 EC2 執行個體有路徑或者生命週期，這使其與其他 EC2 執行個體有所不同。當 Auto Scaling 群組啟動執行個體並使其執行服務，生命週期就會開始。當您終止執行個體，或 Auto Scaling 群組停止並終止執行個體的服務，生命週期也隨之結束。

**注意**  
在執行個體啟動後，馬上就會向您收取費用，即使它們尚未提供服務。

下圖顯示在 Amazon EC2 Auto Scaling 生命週期中，執行個體狀態之間的轉換。

![\[Auto Scaling 群組中執行個體的生命週期。\]](http://docs.aws.amazon.com/zh_tw/autoscaling/ec2/userguide/images/auto-scaling-instance-lifecycle.png)


## 擴展
<a name="as-lifecycle-scale-out"></a>

以下擴增事件指揮 Auto Scaling 群組啟動 EC2 執行個體，並將它們連接到群組：
+ 您可以手動方式增加群組的大小。如需詳細資訊，請參閱[更改現有 Auto Scaling 群組的所需容量](ec2-auto-scaling-scaling-manually.md#change-desired-capacity)。
+ 您可建立一個擴展政策，依照指定的增加需求來自動擴大群組大小。如需詳細資訊，請參閱[Amazon EC2 Auto Scaling 動態擴展](as-scale-based-on-demand.md)。
+ 您可藉由排程來設定擴展，在特定時間增加群組的大小。如需詳細資訊，請參閱[Amazon EC2 Auto Scaling 排程擴展](ec2-auto-scaling-scheduled-scaling.md)。

當水平擴展事件發生時，Auto Scaling 群組使用其指派的啟動範本來啟動所需數量的 EC2 執行個體。這些執行個體在開始時為 `Pending` 狀態。如果新增 lifecycle hook 到 Auto Scaling 群組，您可以在此執行自訂動作。如需詳細資訊，請參閱[lifecycle hook](#as-lifecycle-hooks)。

當每個執行個體設定完全且通過 Amazon EC2 運作狀態檢查，就會將它連接到 Auto Scaling 群組並進入 `InService` 狀態。執行個體會計入 Auto Scaling 群組的所需容量。

如果 Auto Scaling 群組已設定為從 Elastic Load Balancing 負載平衡器接收流量，則 Amazon EC2 Auto Scaling 會自動向負載平衡器註冊執行個體，再將執行個體標記為 `InService`。

以下摘要說明向負載平衡器註冊執行個體以進行向外擴展事件的步驟。

![\[橫向擴展事件的高階圖表。\]](http://docs.aws.amazon.com/zh_tw/autoscaling/ec2/userguide/images/scale-out-diagram.png)


## 服務中的執行個體
<a name="as-lifecycle-inservice"></a>

執行個體會保留組於 `InService` 狀態，除非以下狀況發生：
+ 當發生縮減事件時，則 Amazon EC2 Auto Scaling 會選擇終止此執行個體，以縮減 Auto Scaling 群組的大小。如需詳細資訊，請參閱[控制縮減期間應終止的 Auto Scaling 執行個體](as-instance-termination.md)。
+ 您將執行個體設為 `Standby` 狀態。如需詳細資訊，請參閱[進入和結束待命](#as-lifecycle-standby)。
+ 您從 Auto Scaling 群組分開執行個體。如需詳細資訊，請參閱[從 Auto Scaling 群組分離或連接執行個體](ec2-auto-scaling-detach-attach-instances.md)。
+ 執行個體未成功通過運作狀態檢查的數量，所以會從 Auto Scaling 群組移除、終止及取代。如需詳細資訊，請參閱[Auto Scaling 群組中的執行個體運作狀態檢查](ec2-auto-scaling-health-checks.md)。

## 縮減
<a name="as-lifecycle-scale-in"></a>

以下縮減事件指揮 Auto Scaling 群組將 EC2 執行個體從群組中分開，並將它們終止：
+ 您可以手動縮減群組的大小。如需詳細資訊，請參閱[更改現有 Auto Scaling 群組的所需容量](ec2-auto-scaling-scaling-manually.md#change-desired-capacity)。
+ 您可建立擴展政策，依照指定的需求縮減自動減少群組大小。如需詳細資訊，請參閱[Amazon EC2 Auto Scaling 動態擴展](as-scale-based-on-demand.md)。
+ 您可以按照時間表設定擴展，在特定的時間減少群組的大小。如需詳細資訊，請參閱[Amazon EC2 Auto Scaling 排程擴展](ec2-auto-scaling-scheduled-scaling.md)。

每建立一個擴增事件，就必須建立對應的縮減事件。這有助於確保指派給您的應用程式的資源盡可能符合那些資源的需求。

縮減事件發生時，Auto Scaling 群組會終止一個或多個執行個體。Auto Scaling 群組使用終止政策來決定終止哪一個執行個體。正在從 Auto Scaling 群組終止的執行個體會進入 `Terminating` 狀態，無法回到服務狀態。

如果 Auto Scaling 群組設定為從 Elastic Load Balancing 負載平衡器接收流量，Amazon EC2 Auto Scaling 會自動從負載平衡器取消註冊正在終止的執行個體。取消註冊執行個體可確保所有新要求都會重新導向至負載平衡器的目標群組中的其他執行個體，同時允許與該執行個體的現有連線繼續，直到取消註冊延遲到期為止。

如果新增 lifecycle hook 到 Auto Scaling 群組，您可以在正在終止的執行個體上執行自訂動作。如需詳細資訊，請參閱[lifecycle hook](#as-lifecycle-hooks)。最後，執行個體已完全終止，並進入 `Terminated` 狀態。

以下摘要說明使用負載平衡器取消註冊執行個體以縮減事件的步驟。

![\[縮減事件的高階圖表。\]](http://docs.aws.amazon.com/zh_tw/autoscaling/ec2/userguide/images/scale-in-diagram.png)


## 分開執行個體
<a name="as-lifecycle-detach"></a>

您可以將執行個體從 Auto Scaling 群組分開。在執行個體分開後，您可以分別管理 Auto Scaling 群組和執行個體，或將它連接到不同的 Auto Scaling 群組。

如需詳細資訊，請參閱[從 Auto Scaling 群組分離或連接執行個體](ec2-auto-scaling-detach-attach-instances.md)。

## 連接執行個體
<a name="as-lifecycle-attach"></a>

您可以連接符合特定條件的執行中 EC2 執行個體至您的 Auto Scaling 群組。在連接執行個體之後，它將以身為 Auto Scaling 群組的一部分受管理。

如需詳細資訊，請參閱[從 Auto Scaling 群組分離或連接執行個體](ec2-auto-scaling-detach-attach-instances.md)。

## lifecycle hook
<a name="as-lifecycle-hooks"></a>

您可以新增 lifecycle hook 到 Auto Scaling 群組，讓您可以在執行個體啟動或終止時執行自訂動作。

當 Amazon EC2 Auto Scaling 回應擴增事件，它會啟動一或多個執行個體。這些執行個體在開始時為 `Pending` 狀態。如果您新增 `autoscaling:EC2_INSTANCE_LAUNCHING` lifecycle hook 至 Auto Scaling 群組，此執行個體會從 `Pending` 狀態變成 `Pending:Wait` 狀態。在您完成生命週期動作後，此執行個體會進入 `Pending:Proceed` 狀態。當執行個體完全設定時，它們會連接到 Auto Scaling 群組並進入 `InService` 狀態。

當 Amazon EC2 Auto Scaling 回應縮減事件，它會終止一或多個執行個體。這些執行個體已從 Auto Scaling 群組分開，並進入 `Terminating` 狀態。如果您新增 `autoscaling:EC2_INSTANCE_TERMINATING` lifecycle hook 至 Auto Scaling 群組，此執行個體會從 `Terminating` 狀態變成 `Terminating:Wait` 狀態。在您完成生命週期動作後，此執行個體會進入 `Terminating:Proceed` 狀態。當執行個體已完全終止，則會進入 `Terminated` 狀態。

如需詳細資訊，請參閱[Amazon EC2 Auto Scaling lifecycle hook](lifecycle-hooks.md)。

## 進入和結束待命
<a name="as-lifecycle-standby"></a>

您可以將任何執行個體從 `InService` 狀態改為 `Standby` 狀態。這可讓您從服務中移除執行個體、疑難排解或變更，然後回到服務狀態。

處於 `Standby` 狀態的執行個體，會繼續由 Auto Scaling 群組管理。但是，它們不會成為您的應用程式中使用的一部分，除非您將其返回服務狀態。

如需詳細資訊，請參閱[從 Auto Scaling 群組暫時移除執行個體](as-enter-exit-standby.md)。