

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

# Amazon EC2 Auto Scaling 是什麼？
<a name="what-is-amazon-ec2-auto-scaling"></a>

Amazon EC2 Auto Scaling 能確保您有數量正確的 Amazon EC2 執行個體來處理應用程式的負載。您可以建立 EC2 執行個體的集合，此集合稱為「Auto Scaling 群組」**。您可以為每一個 Auto Scaling 群組指定執行個體數量的最小值，如此 Amazon EC2 Auto Scaling 可確保您的群組數絕不會低於此值。您可以為每一個 Auto Scaling 群組指定執行個體數量的最大值，如此 Amazon EC2 Auto Scaling 可確保您的群組數絕不會大於此值。如果指定了所需要的容量，在建立群組之時或之後的任何時刻，Amazon EC2 Auto Scaling 都會確保您的群組擁有這個數量的執行個體。如果指定了擴展政策，Amazon EC2 Auto Scaling 就會隨著應用程式需求的增加或減少，而啟動或終止執行個體。

例如，下列 Auto Scaling 群組的最小大小為 4 個執行個體、所需容量為 6 個執行個體，最大大小為 12 個執行個體。您定義的擴展政策，會根據您指定的條件，在您的執行個體數最大和最小值間，調整執行個體的數量。

![\[VPC 內 Auto Scaling 群組的基本架構圖。\]](http://docs.aws.amazon.com/zh_tw/autoscaling/ec2/userguide/images/asg-basic-arch.png)


## Amazon EC2 Auto Scaling 的功能
<a name="ec2-auto-scaling-features"></a>

使用 Amazon EC2 Auto Scaling，您的 EC2 執行個體會組織成 Auto Scaling 群組，以便將其視為邏輯單位，以進行擴展和管理。Auto Scaling 群組使用啟動範本 （或啟動組態） 做為其 EC2 執行個體的組態範本。

以下是 Amazon EC2 Auto Scaling 的主要功能：

**監控執行中執行個體的運作狀態**  
Amazon EC2 Auto Scaling 會使用 EC2 運作狀態檢查自動監控執行個體的運作狀態和可用性，並取代已終止或受損的執行個體，以維持所需的容量。

**自訂運作狀態檢查**  
除了內建的運作狀態檢查之外，您還可以定義應用程式特有的自訂運作狀態檢查，以確認其是否如預期回應。如果執行個體未通過您的自訂運作狀態檢查，會自動取代它以維持所需的容量。

**在可用區域之間平衡容量**  
您可以為 Auto Scaling 群組指定多個可用區域，而 Amazon EC2 Auto Scaling 會隨著群組擴展，跨可用區域平均平衡執行個體。這透過保護您的應用程式免於在單一位置發生故障，提供高可用性和彈性。

**使用多種執行個體類型與購買選項**  
在單一 Auto Scaling 群組中，您可以啟動多個執行個體類型和購買選項 (Spot 和隨需執行個體），讓您透過 Spot 執行個體用量來最佳化成本。您也可以搭配 群組中的隨需執行個體使用預留執行個體和 Savings Plans 折扣。

**自動替換 Spot 執行個體**  
如果您的群組包含 Spot 執行個體，Amazon EC2 Auto Scaling 可以在 Spot 執行個體中斷時自動請求替代 Spot 容量。透過容量重新平衡，Amazon EC2 Auto Scaling 也可以監控並主動取代具有較高中斷風險的 Spot 執行個體。

**Load balancing**  
您可以使用 Elastic Load Balancing 負載平衡和運作狀態檢查，確保應用程式流量均勻分佈至運作狀態良好的執行個體。每當執行個體啟動或終止時，Amazon EC2 Auto Scaling 會自動從負載平衡器註冊和取消註冊執行個體。

**可擴展性**  
Amazon EC2 Auto Scaling 也提供數種擴展 Auto Scaling 群組的方式。使用自動擴展可讓您透過新增處理尖峰負載的容量，以及在需求較低時移除容量，來維持應用程式可用性並降低成本。您也可以視需要手動調整 Auto Scaling 群組的大小。

**執行個體重新整理**  
當您更新 AMI 或啟動範本時，執行個體重新整理功能提供以滾動方式更新執行個體的機制。您也可以使用稱為 Canary 部署的分階段方法，在小型執行個體上測試新的 AMI 或啟動範本，然後再將其推展到整個群組。

**lifecycle hook**  
生命週期掛鉤有助於定義在新執行個體啟動時或在執行個體終止之前叫用的自訂動作。此功能特別適用於建置事件驅動型架構，但也可協助您管理執行個體的整個生命週期。

**支援具狀態工作負載**  
生命週期掛鉤也提供在關閉時持續狀態的機制。為了確保具狀態應用程式的持續性，您也可以使用縮減保護或自訂終止政策，以防止具有長時間執行程序的執行個體提早終止。

如需有關 Amazon EC2 Auto Scaling 優點的詳細資訊，請參閱[應用程式架構的 Auto Scaling 優勢](auto-scaling-benefits.md)。

## Amazon EC2 Auto Scaling 的價格
<a name="as-pricing"></a>

Amazon EC2 Auto Scaling 無需額外費用，因此您可以輕鬆地試用它，並查看它如何讓您的 AWS 架構受益。您只需支付使用 AWS 的資源 （例如 EC2 執行個體、EBS 磁碟區和 CloudWatch 警示）。

## 開始使用
<a name="what-is-auto-scaling-next-steps"></a>

若要開始，請完成[建立您的第一個 Auto Scaling 群組](create-your-first-auto-scaling-group.md)教學課程，以建立 Auto Scaling 群組，並查看該群組中的執行個體終止時的回應方式。

## 使用 Auto Scaling 群組
<a name="auto-scaling-group-interfaces"></a>

您可以使用下列任一介面來建立、存取和管理您的 Auto Scaling 群組：
+ **AWS 管理主控台** – 提供 Web 介面，讓您用來存取 Auto Scaling 群組。如果您已註冊 AWS 帳戶，則可以登入 來存取 Auto Scaling 群組 AWS 管理主控台，使用導覽列上的搜尋方塊來搜尋 **Auto Scaling 群組**，然後選擇 **Auto Scaling 群組**。
+ **AWS Command Line Interface (AWS CLI)** – 提供一組廣泛的命令 AWS 服務，並支援 Windows、macOS 和 Linux。若要開始使用，請參閱[準備使用 AWS CLI](setting-up.md#set-up-cli)。如需詳細資訊，請參閱《AWS CLI 命令參考》**中的 [autoscaling](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/)。
+ **AWS Tools for Windows PowerShell** – 為在 PowerShell 環境中編寫指令碼的人員提供廣泛的 AWS 產品命令。若要開始使用，請參閱《[AWS Tools for PowerShell 使用者指南](https://docs.aws.amazon.com/powershell/latest/userguide/)》。如需詳細資訊，請參閱《[AWS Tools for PowerShell Cmdlet 參考](https://docs.aws.amazon.com/powershell/latest/reference/Index.html)》。
+ **AWS SDKs** – 提供特定語言的 API 操作，並負責許多連線詳細資訊，例如計算簽章、處理請求重試和處理錯誤。如需詳細資訊，請參閱 [AWS 開發套件](https://aws.amazon.com/developer/tools/#SDKs)。
+ **Query API** – 提供您可以使用 HTTPS 請求呼叫的低層級 API 動作。使用查詢 API 是存取 AWS 服務最直接的方式。不過，查詢 API 需要您的應用程式處理低階詳細資訊，例如產生雜湊以簽署要求以及處理錯誤。如需詳細資訊，請參閱《[Amazon EC2 Auto Scaling API 參考](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/)》。
+ **CloudFormation** – 支援使用 CloudFormation 範本建立 Auto Scaling 群組。如需詳細資訊，請參閱[使用 建立 Auto Scaling 群組 AWS CloudFormation](creating-auto-scaling-groups-with-cloudformation.md)。

若要以程式設計方式連線至 AWS 服務，您可以使用 端點。如需 Amazon EC2 Auto Scaling 呼叫端點的相關資訊，請參閱[《 機密區域使用者指南》中的中國 Amazon Web Services 端點和 ARN》中的 Amazon EC2 Auto Scaling 端點和配額](https://docs.aws.amazon.com/general/latest/gr/as.html)*AWS 一般參考*《中國 Amazon Web Services 入門》中的「最高機密區域」使用者指南》中的「最高 

# 應用程式架構的 Auto Scaling 優勢
<a name="auto-scaling-benefits"></a>

將 Amazon EC2 Auto Scaling 新增至應用程式架構，是將 AWS 雲端的優勢最大化的一種方式。使用 Amazon EC2 Auto Scaling 後，您的應用程式將獲得以下好處：
+ 較佳的容錯能力。Amazon EC2 Auto Scaling 可以偵測並終止運作狀態不佳的執行個體，然後啟動執行個體來取代它。您也可設定 Amazon EC2 Auto Scaling，以使用於多個可用區域。如果一個可用區域無法使用，Amazon EC2 Auto Scaling 可以在另一個可用區域啟動執行個體來補償。
+ 較佳的可用性。Amazon EC2 Auto Scaling 可協助您確保應用程式隨時都有適當的容量，能夠處理目前的流量需求。
+ 較佳的成本管理。Amazon EC2 Auto Scaling 可以視需要動態增加和減少容量。因為您付費使用 EC2 執行個體，需要執行個體時再啟用它們，不需要時則終止它們，這樣可以節省費用。

**Contents**
+ [範例：涵蓋變數需求](#autoscaling-benefits-example)
+ [範例：Web 應用程式架構](#autoscaling-design-example)
+ [範例：跨可用區域分配執行個體](#arch-AutoScalingMultiAZ)
  + [執行個體分佈](#AutoScalingBehavior.Rebalancing)
  + [重新平衡活動](#AutoScalingBehavior.InstanceUsage)

## 範例：涵蓋變數需求
<a name="autoscaling-benefits-example"></a>

為了展現 Amazon EC2 Auto Scaling 的一些優點，請考慮在 AWS上執行基本 Web 應用程式。這個應用程式可讓員工搜尋想要用來開會的會議室。在一週開始和結束時，此應用程式使用最少。在週間時，許多員工會利用此排程會議，因此大幅提高此應用程式的需求。

下圖顯示一週間，此應用程式所使用的容量。

![\[應用程式容量需求範例。\]](http://docs.aws.amazon.com/zh_tw/autoscaling/ec2/userguide/images/capacity-example-diagram.png)


按照傳統做法，有兩種方式可以針對這些容量做變化。第一個選擇是新增足夠的伺服器，讓應用程式永遠有足夠的容量，可以滿足需求。不過，此選項有缺點在於當有天應用程式不再需要這麼多的容量時。未使用的多餘容量，會使維持應用程式執行的成本提高。

![\[顯示的範例從成本角度來看，說明為何購買多過於所需的容量會造成沒效率。\]](http://docs.aws.amazon.com/zh_tw/autoscaling/ec2/userguide/images/capacity-example-over-diagram.png)


第二個選擇是擁有足夠的容量來處理應用程式的平均需求。此選擇較便宜，因為您未購買偶爾使用的設備。不過，當應用程式需求超過其容量時，會有使客戶體驗品質下降的風險。

![\[範例說明為何購買低於所需容量，會導致不佳的客戶體驗品質。\]](http://docs.aws.amazon.com/zh_tw/autoscaling/ec2/userguide/images/capacity-example-under-diagram.png)


透過新增 Amazon EC2 Auto Scaling 到此應用程式上，您有第三個方案。您可以在需要時新增新的執行個體到應用程式上，且能在不需要它們的時候，將其終止。由於 Amazon EC2 Auto Scaling 使用 EC2 執行個體，當您使用時，您只需支付所使用之執行個體的費用。您現在擁有成本效益的架構，可供客戶體驗最佳的使用品質，同時又能減少費用。

![\[範例說明 Amazon EC2 Auto Scaling 如何視需要調整容量。\]](http://docs.aws.amazon.com/zh_tw/autoscaling/ec2/userguide/images/capacity-example-with-as-diagram.png)


## 範例：Web 應用程式架構
<a name="autoscaling-design-example"></a>

在常見的 Web 應用程式案例中，您可同時執行多個應用程式的複本，以涵蓋客戶流量的磁碟區。這些應用程式的多個副本由相同的 EC2 執行個體託管 (雲端伺服器)，每個都會處理客戶的要求。

Amazon EC2 Auto Scaling 會代表您管理 EC2 執行個體的啟動與終止。您可以定義一組條件 (例如 Amazon CloudWatch 警示)，判斷 Auto Scaling 群組何時啟動或終止 EC2 執行個體。將 Auto Scaling 群組新增到您的網路架構，有助於提高應用程式的可用性和容錯能力。

![\[具有 Auto Scaling 群組的三層基本架構。\]](http://docs.aws.amazon.com/zh_tw/autoscaling/ec2/userguide/images/sample-3-tier-architecture-auto-scaling-diagram.png)


您可以視需要建立任意數量的 Auto Scaling 群組。例如，您可以為每個層級建立 Auto Scaling 群組。

若要將流量分散到 Auto Scaling 群組中的執行個體間，您可以在架構中引進負載平衡器。如需詳細資訊，請參閱[Elastic Load Balancing](autoscaling-load-balancer.md)。

## 範例：跨可用區域分配執行個體
<a name="arch-AutoScalingMultiAZ"></a>

可用區域是給定 AWS 區域內的隔離位置。每個區域都有多個可用區域，旨在為該區域提供高可用性。可用區域是獨立的，因此當您將應用程式設計為使用多個區域時，可提高應用程式的可用性。如需詳細資訊，請參閱[Amazon EC2 Auto Scaling 中的彈性](disaster-recovery-resiliency.md)。

可用區域由 AWS 區域 程式碼識別，後面接著字母識別符 （例如，`us-east-1a`)。如果選擇建立 VPC 和子網路，而非使用預設 VPC，則可以在每個可用區域中定義一個或多個子網路。各個子網必須完全位於某一可用區域內，不得跨越多個區域。如需詳細資訊，請參閱*《Amazon VPC 使用者指南》*中的 [Amazon VPC 的運作方式](https://docs.aws.amazon.com/vpc/latest/userguide/how-it-works.html)。

當您建立 Auto Scaling 群組時，您必須選擇要在其中部署 Auto Scaling 群組的 VPC 和子網路。Amazon EC2 Auto Scaling 會在您選擇的子網路中建立執行個體。因此，每個執行個體都與 Amazon EC2 Auto Scaling 選擇的特定可用區域相關聯。執行個體啟動時，Amazon EC2 Auto Scaling 會嘗試在區域之間平均分配，以實現高可用性和可靠性。

下圖顯示跨三個可用區域部署的多層架構概觀。

![\[橫跨三個可用區域的典型 Auto Scaling 群組。\]](http://docs.aws.amazon.com/zh_tw/autoscaling/ec2/userguide/images/sample-3-tier-architecture-with-azs-diagram.png)


### 執行個體分佈
<a name="AutoScalingBehavior.Rebalancing"></a>

Amazon EC2 Auto Scaling 會自動嘗試在每個已啟用的可用區域中維持同等數量的執行個體。為此，Amazon EC2 Auto Scaling 會嘗試在可用區域中使用最少的執行個體啟動新的執行個體。如果為可用區域選擇多個子網路，Amazon EC2 Auto Scaling 會嘗試啟動子網路中可用 IP 地址數量最高的執行個體。不過，若嘗試失敗了，Amazon EC2 Auto Scaling 則會在另一個可用區域中嘗試啟動執行個體，直到成功為止。

在可用區域運作狀態不佳或無法使用的情況下，執行個體在各可用區域之間的分佈可能會變得不均勻。當可用區域恢復後，Amazon EC2 Auto Scaling 會自動重新平衡 Auto Scaling 群組。方法為在已啟用且具有最少執行個體的可用區域中啟動執行個體並終止其他地方的執行個體。

### 重新平衡活動
<a name="AutoScalingBehavior.InstanceUsage"></a>

重新平衡活動分為兩類：可用區域重新平衡和容量重新平衡。

**可用區域重新平衡**

在特定動作發生後，Auto Scaling 群組會在可用區域間呈現不平衡狀態。Amazon EC2 Auto Scaling 會重新平衡可用區域來加以補償。以下動作可以觸發重新平衡活動：
+ 您變更與您 Auto Scaling 群組相關聯的可用區域。
+ 您明確終止或分開執行個體，或將執行個體置於待命狀態，然後群組就變得不平衡。
+ 先前容量不足的可用區域恢復，現在具有額外的容量。
+ 先前可用區域的 Spot 價格高過最高價，現在 Spot 價格則低於最高價格。

重新平衡時，Amazon EC2 Auto Scaling 會先啟動新的執行個體，然後再終止之前的執行個體。以此方式，重新平衡不會影響您應用程式的性能或可用性。

由於 Amazon EC2 Auto Scaling 會在終止之前的執行個體前嘗試啟動新執行個體，在達到或接近最大指定容量時即會阻止或完全停止重新平衡的活動。

若要避免這個問題，在重新平衡活動期間，系統可以暫時超過指定的群組最大容量。預設方法為採用 10% 的餘裕或一個執行個體 (以較大者為準)。只有當群組達到最大容量或接近最大容量且需要重新平衡時，才會擴大餘裕。只要需要重新平衡群組，邊界就會延伸 (通常只會持續幾分鐘)。

或者，您也可以使用執行個體維護政策為 Auto Scaling 群組建立閾值，而群組只能在該閾值範圍內增減容量。這樣，您就可以控制群組重新平衡自身的速度。如需詳細資訊，請參閱[執行個體維護政策](ec2-auto-scaling-instance-maintenance-policy.md)。

**容量重新平衡**

使用 Spot 執行個體時，您可以打開 Auto Scaling 群組的容量重新平衡功能。這讓 Amazon EC2 Auto Scaling 會在 Amazon EC2 報告 Spot 執行個體的中斷風險提高時，嘗試啟動 Spot 執行個體。啟動新的執行個體後，即會終止之前的執行個體。如需詳細資訊，請參閱[Auto Scaling 中的容量重新平衡，以取代具有風險的 Spot 執行個體](ec2-auto-scaling-capacity-rebalancing.md)。

# 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)。

# Auto Scaling 資源和群組的配額
<a name="ec2-auto-scaling-quotas"></a>

您的 AWS 帳戶 具有每個 AWS 服務的預設配額，先前稱為限制。除非另有說明，否則每個配額都是區域特定的。您可以請求提高某些配額，而其他配額無法提高。

若要檢視 Amazon EC2 Auto Scaling 的配額，請開啟 [Service Quotas console](https://console.aws.amazon.com/servicequotas/home) (Service Quotas 主控台)。在導覽窗格中，請選擇 **AWS services** ( 服務)，然後選取 **Amazon EC2 Auto Scaling**。

若要請求提升配額，請參閱《[Service Quotas 使用者指南](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html)》中的*請求提升配額*。若 Service Quotas 中尚未提供配額，請使用 [Auto Scaling 限額表單](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&limitType=service-code-auto-scaling)。提高的配額會繫結到提出請求的區域。

**Amazon EC2 Auto Scaling 資源**  
您的 AWS 帳戶 具有與您可以建立的 Auto Scaling 群組數量和啟動組態相關的下列配額。


| 資源 | 預設配額 | 
| --- | --- | 
| 每個區域的 Auto Scaling 群組 | 500 | 
| 每個區域的啟動組態 | 200 | 

**Auto Scaling 群組組態**  
您的 AWS 帳戶 具有與 Auto Scaling 群組組態相關的下列配額。您無法對其進行變更。


| 資源 | 配額 | 
| --- | --- | 
| 每個 Auto Scaling 群組的擴展政策數量 | 50 | 
| 每個 Auto Scaling 群組的排程動作數量 | 125 | 
| 每個步驟擴展政策的步驟調整數量 | 20 | 
| 每個 Auto Scaling 群組的 lifecycle hook 數量 | 50 | 
| 每個 Auto Scaling 群組的 SNS 主題數量 | 10 | 
| 每個 Auto Scaling 群組的 Classic Load Balancer 數量 | 50 | 
| 每個 Auto Scaling 群組的 Elastic Load Balancing 目標群組 | 50 | 
| 每個 Auto Scaling 群組的 VPC Lattice 目標群組 | 5 | 

**Auto Scaling 群組 API 操作**  
Amazon EC2 Auto Scaling 會提供 API 操作，以批次變更 Auto Scaling 群組。以下是單次 API 操作中允許的最大項目數量 (最大陣列成員數量)。您無法對其進行變更。


| 作業 | 最大陣列成員數量 | 
| --- | --- | 
| [AttachInstances](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_AttachInstances.html) | 20 個執行個體 ID  | 
| [AttachLoadBalancers](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_AttachLoadBalancers.html) | 10 個負載平衡器 | 
| [AttachLoadBalancerTargetGroups](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_AttachLoadBalancerTargetGroups.html) | 10 個目標群組 | 
| [BatchDeleteScheduledAction](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_BatchDeleteScheduledAction.html) | 50 個排定的動作 | 
| [BatchPutScheduledUpdateGroupAction](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_BatchPutScheduledUpdateGroupAction.html) | 50 個排定的動作 | 
| [DetachInstances](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DetachInstances.html) | 20 個執行個體 ID | 
| [DetachLoadBalancers](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DetachLoadBalancers.html) | 10 個負載平衡器 | 
| [DetachLoadBalancerTargetGroups](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DetachLoadBalancerTargetGroups.html) | 10 個目標群組 | 
| [EnterStandby](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_EnterStandby.html) | 20 個執行個體 ID | 
| [ExitStandby](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_ExitStandby.html) | 20 個執行個體 ID | 
| [SetInstanceProtection](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_SetInstanceProtection.html) | 50 個執行個體 ID | 

## Amazon EC2 Auto Scaling API 的請求限流
<a name="api-request-throttling"></a>

Amazon EC2 Auto Scaling API 請求會使用字符儲存貯體方案調節，以維持服務頻寬。如需詳細資訊，請參閱《*Amazon EC2 Auto Scaling API 參考》中的 API* [請求率](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/Welcome.html)。

## EC2 終止率
<a name="instance-termination-rates"></a>

Auto Scaling 群組縮減時，Amazon EC2 Auto Scaling 會動態確定其一次可以執行的 EC2 執行個體終止作業數量。這表示您可能會發現 Auto Scaling 群組同時終止的執行個體數量有所差異。這些差異是因外部考量所造成，例如 Amazon EC2 Auto Scaling 是否必須向負載平衡器取消註冊執行個體。

## 其他服務
<a name="quotas-for-other-services"></a>

其他服務的配額，例如 Amazon EC2 和 Amazon VPC，可能會影響 Auto Scaling 群組。您可以使用 Service Quotas 來更新 EC2 執行個體和 中其他資源的配額 AWS 帳戶。在 Service Quotas 主控台中，您可以檢視所有可用的服務配額，並請求增加服務配額。如需詳細資訊，請參閱《Service Quotas 使用者指南》中的[請求增加配額](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html)。

如需啟動範本特定的配額，請參閱《*Amazon EC2 使用者指南*》中的[啟動範本限制](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/launch-template-restrictions.html)。