建立混合執行個體群組的設定概觀 - Amazon EC2 Auto Scaling

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

建立混合執行個體群組的設定概觀

本主題提供建立 Auto Scaling 混合執行個體群組的概觀和最佳做法。

概要

若要建立混合執行個體群組,您有兩種選擇:

Manual selection

下列步驟說明如何透過手動選擇執行個體類型來建立混合執行個體群組:

  1. 選擇包含啟動 EC2 執行個體的參數的啟動範本。啟動範本中的參數是可選性的,但是如果啟動範本中缺少Amazon Machine Image (AMI)ID,則 Amazon EC2 Auto Scaling 無法啟動執行個體。

  2. 選擇覆寫啟動範本的選項。

  3. 手動選擇適合您工作負載的執行個體類型。

  4. 指定要啟動的隨需執行個體和 Spot 執行個體百分比。

  5. 選擇決定 Amazon EC2 Auto Scaling 如何利用可能的執行個體類型滿足隨需和 Spot 容量所需容量的分配策略。

  6. 選擇您要在其中啟動執行個體的可用區域和 VPC 子網路。

  7. 指定群組的初始大小 (所需容量) 以及群組的最小和最大大小。

有必要進行覆寫動作,以覆寫啟動範本中宣告的執行個體類型,並使用內嵌在 Auto Scaling 群組本身資源定義中的多個執行個體類型。如需有關可用執行個體類型的詳細資訊,請參閱 Amazon EC2 使用者指南中的執行個體類型

您也可以為每個執行個體類型設定下列選用參數:

  • LaunchTemplateSpecification-您可以視需要將不同的啟動範本指派給執行個體類型。此選項目前在主控台中無法使用。如需詳細資訊,請參閱 為執行個體類型使用不同的啟動範本

  • WeightedCapacity— 您可以決定執行個體計入所需容量的數量 (相對於群組中的其餘執行個體)。如果為某個執行個體類型指定了 WeightedCapacity 值,則必須為所有執行個體類型指定 WeightedCapacity 值。預設情況下,每個執行個體會在所需容量中計為 1。如需詳細資訊,請參閱 設定 Auto Scaling 群組以使用執行個體權重

Attribute-based selection

若要讓 Amazon EC2 Auto Scaling 根據執行個體的特定屬性自動選擇執行個體類型,請使用以下步驟指定運算要求來建立混合執行個體群組:

  1. 選擇包含啟動 EC2 執行個體的參數的啟動範本。啟動範本中的參數是可選性的,但是如果啟動範本中缺少Amazon Machine Image (AMI)ID,則 Amazon EC2 Auto Scaling 無法啟動執行個體。

  2. 選擇覆寫啟動範本的選項。

  3. 指定與您的運算要求 (例如 vCPU 和記憶體要求) 相符的執行個體屬性。

  4. 指定要啟動的隨需執行個體和 Spot 執行個體百分比。

  5. 選擇決定 Amazon EC2 Auto Scaling 如何利用可能的執行個體類型滿足隨需和 Spot 容量所需容量的分配策略。

  6. 選擇您要在其中啟動執行個體的可用區域和 VPC 子網路。

  7. 指定群組的初始大小 (所需容量) 以及群組的最小和最大大小。

有必要進行覆寫動作,以覆寫啟動範本中宣告的執行個體類型,並使用一組描述您運算要求的執行個體屬性。如需支援的屬性,請參閱 Amazon EC2 Auto Scaling API 參考InstanceRequirements中的。或者,您也可以使用已具有執行個體屬性定義的啟動範本。

您也可以在覆寫結構中設定 LaunchTemplateSpecification 參數,視需要將不同的啟動範本指派給一組執行個體需求。此選項目前在主控台中無法使用。如需詳細資訊,請參閱 Amazon EC2 Auto Scaling API 參考LaunchTemplateOverrides中的。

根據預設,您可以將執行個體數量設定為 Auto Scaling 群組的所需容量。

或者,您可以將所需容量的值設定為 vCPU 的數量或記憶體量。若要這麼做,請使用 CreateAutoScalingGroup API 作業中的 DesiredCapacityType 屬性或 AWS Management Console中的所需容量類型下拉式欄位。這是一個可以替代執行個體加權的有用方案。

執行個體類型彈性

若要加強可用性,請跨多個執行個體類型部署應用程式。最佳的方式是使用多個執行個體類型來滿足容量需求。這樣,如果所選可用區域中的執行個體容量不足,則 Amazon EC2 Auto Scaling 可以啟動其他執行個體類型。

如果 Spot 執行個體的執行個體容量不足,則 Amazon EC2 Auto Scaling 會繼續嘗試從其他 Spot 執行個體集區啟動。(其使用的集區取決於您選擇的執行個體類型和分配策略。) 執行 Spot 執行個體,而非執行隨需執行個體。Amazon EC2 Auto Scaling 從而幫助您利用 Spot 執行個體節省成本。

建議您有彈性地對每個工作負載至少使用 10 個執行個體類型。選擇執行個體類型時,不要侷限於最熱門的新執行個體類型。選擇舊版執行個體類型往往可以達到減少 Spot 中斷的效果,因為隨需客戶的需求較少。

可用區域彈性

強烈建議您讓您的 Auto Scaling 群組跨越多個可用區域。使用多個可用區域,您可以設計在區域之間自動容錯移轉的應用程式,以獲得更高的彈性。

相較於單一可用區域中的群組,您可以存取更深層的 Amazon EC2 容量集區,這是一項額外的好處。因為每個可用區域內每一個執行個體類型的容量會獨立變動,因此您通常可以透過執行個體類型和可用區域的靈活性來取得更多運算容量。

如需使用多個可用區域的詳細資訊,請參閱 範例:跨可用區域分配執行個體

Spot 最高價格

使用 AWS CLI 或 SDK 建立「Auto Scaling」群組時,您可以指定SpotMaxPrice參數。SpotMaxPrice 參數決定您願意為 Spot 執行個體支付的每小時最高價。

當您在覆寫 (或群組層級的 "DesiredCapacityType": "vcpu""DesiredCapacityType": "memory-mib") 中指定 WeightedCapacity 參數時,最高價代表單價上限,而不是整個執行個體的最高價。

強烈建議您不要指定最高價。如果您未收到 Spot 執行個體 (例如當您的最高價太低時),則您的應用程式可能不會執行。如果您未指定最高價格,則預設的最高價格是隨需價格。您只需為您啟動的 Spot 執行個體支付 Spot 價格。您仍然可以獲得 Spot 執行個體提供的大幅折扣。因為使用 Spot 定價模式可提供穩定的 Spot 定價,所以可以享有這些折扣。如需詳細資訊,請參閱 Amazon EC2 使用者指南中的定價和節省成本

主動容量重新平衡

如果您的使用案例允許,建議您重新平衡容量。容量重新平衡可協助您維持工作負載可用性,方法是在執行中的 Spot 執行個體收到兩分鐘的 Spot 執行個體中斷通知之前,使用新的 Spot 執行個體主動擴增機群。

建立容量重新平衡時,Amazon EC2 Auto Scaling 會嘗試主動取代已收到重新平衡建議的 Spot 執行個體。這樣一來,您即可有機會將工作負載重新平衡至未處於升高中斷風險的新的 Spot 執行個體。

如需詳細資訊,請參閱 使用容量重新平衡來處理 Amazon EC2 Spot 中斷

擴展行為

建立混合執行個體群組時,預設會使用隨需執行個體。若要使用 Spot 執行個體,您必須修改群組以隨需執行個體形式啟動的百分比。您可以為隨需百分比指定從 0 到 100 的任意數量。

或者,您也可指定隨需執行個體基本數量來開始。如果這樣做,Amazon EC2 Auto Scaling 會在群組橫向擴展時啟動隨需執行個體的基本容量後啟動 Spot 執行個體。超過基本容量的項目會使用隨需百分比來決定要啟動多少隨需執行個體和 Spot 執行個體。

Amazon EC2 Auto Scaling 會將百分比轉換為同等數量的執行個體。如果產生的結果是小數,則會四捨五入到下一個整數,以便隨需執行個體使用。

下表說明了 Auto Scaling 群組大小增加和降低時的行為。

範例:擴展行為
購買選項 購買選項中的群組大小和執行中的執行個體總數
10 20 30 40

範例 1:以 10、50/50% 的隨需/Spot 為基準

隨需執行個體 (基本金額) 10 10 10 10
隨需執行個體 0 5 10 15
Spot 執行個體 0 5 10 15

範例 2:以 0、0/100% 的隨需/Spot 為基準

隨需執行個體 (基本金額) 0 0 0 0
隨需執行個體 0 0 0 0
Spot 執行個體 10 20 30 40

範例 3:以 0、60/40% 隨需/Spot 為基準

隨需執行個體 (基本金額) 0 0 0 0
隨需執行個體 6 12 18 24
Spot 執行個體 4 8 12 16

範例 4:以 0、100/0% 隨需/Spot 為基準

隨需執行個體 (基本金額) 0 0 0 0
隨需執行個體 10 20 30 40
Spot 執行個體 0 0 0 0

範例 5:以 12、0/100% 隨需/Spot 為基準

隨需執行個體 (基本金額) 10 12 12 12
隨需執行個體 0 0 0 0
Spot 執行個體 0 8 18 28

當群組大小增加時,Amazon EC2 Auto Scaling 會嘗試在指定的可用區域之間平均地平衡容量。然後,其會根據指定的分配策略啟動執行個體類型。

當群組的大小降低時,Amazon EC2 Auto Scaling 會先確定應終止兩種類型中的哪一種 (Spot 或隨需)。接著,它會嘗試在指定的可用區域之間以平衡的方式終止執行個體。這也有利於以更接近配置策略的方式終止執行個體。若要取得有關終止政策的資訊,請參閱 設定 Amazon EC2 Auto Scaling 的終止政策

執行個體類型的區域可用性

EC2 執行個體類型的可用性視您的 AWS 區域. 例如,最新一代的執行個體類型也許尚無法用於特定的區域。由於不同區域的執行個體可用性差異,如果您的區域中無法使用覆寫中的多個執行個體類型,則在提出程式設計請求時可能會遇到問題。使用您區域中不可用的多個執行個體類型可能會導致請求完全失敗。若要解決此問題,請重試不同的執行個體類型的請求,確保每個執行個體類型都在區域中可用。若要搜尋依位置提供的例證類型,請使用describe-instance-type-offerings指令。如需詳細資訊,請參閱 Amazon EC2 使用者指南中的尋找 Amazon EC2 執行個體類型

如需競價型執行個體的更多最佳實務,請參閱 Amazon EC2 使用者指南中的 EC2 Spot 最佳實務。

限制

使用混合執行個體政策將覆寫新增至 Auto Scaling 群組後,您可以使用 UpdateAutoScalingGroup API 呼叫更新覆寫,但不能刪除覆寫。若要完全移除覆寫,您必須先將 Auto Scaling 群組切換為使用啟動範本或啟動設定,而非混合執行個體原則。然後,您可以再次新增混合執行個體政策,而不需要任何覆寫。