設定 Auto Scaling 群組以使用執行個體權重 - Amazon EC2 Auto Scaling

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

設定 Auto Scaling 群組以使用執行個體權重

使用多個例證類型時,您可以指定與每個例證類型產生關聯的單位數,然後以相同的測量單位指定群組的容量。此產能規格選項稱為重量。

例如,假設您執行運算密集型應用程式,該應用程式至少要 8 個 vCPU 和 15 GiB 的 RAM 來執行最佳效能。如果您使用 c5.2xlarge 做為基本單位,則下列任何 EC2 執行個體類型都可以滿足您的應用程式需求。

執行個體類型範例
執行個體類型 vCPU 記憶體 (GiB)
c5.2xlarge 8 16
c5.4xlarge 16 32
c5.12xlarge 48 96
c5.18xlarge 72 144
c5.24xlarge 96 192

預設情況下,所有執行個體類型無論大小為何,都具有相同的權重。換句話說,無論 Amazon EC2 Auto Scaling 啟動的是大型或小型執行個體類型,每個執行個體都會相同地計入 Auto Scaling 群組的所需容量。

但是,使用權重時,您可以指定一個數字值,指定與每個執行個體類型相關聯的單位數量。例如,如果執行個體大小不同,c5.2xlarge 執行個體的權重可能為 2,而 c5.4xlarge (兩倍大) 的權重可能為 4,依此類推。然後,當 Amazon EC2 Auto Scaling 擴展群組時,這些權重就會轉換為每個執行個體計入所需容量的單位數量。

權重不會改變 Amazon EC2 Auto Scaling 選擇啟動的執行個體類型,而會改為配置策略執行此動作。如需詳細資訊,請參閱 分配策略

重要

若要設定 Auto Scaling 群組以使用 vCPU 數量或每個執行個體類型的記憶體量來滿足所需容量,建議您選擇屬性型執行個體類型。設定DesiredCapacityType參數會根據您為此參數設定的值,自動指定與每個例證類型相關聯的單位數目。如需詳細資訊,請參閱 使用屬性型執行個體類型選取範圍來建立混合執行個體群組

考量事項

本節討論有效導入權重的主要考量事項。

  • 選擇一些符合您應用程式效能需求的執行個體類型。根據每個執行個體類型的功能,決定每個執行個體類型應計入 Auto Scaling 群組所需容量的權重。這些權重適用於目前和 future 的執行個體。

  • 避免重量之間的大範圍。例如,當下一個較大的執行個體類型的權重為 200 時,請勿為執行個體類型指定加權 1。最小權重和最大權重之間的差異也不應過於極端。極大的重量差異會對成本效能最佳化產生負面影響。

  • 以單位指定群組所需的容量,而不是執行個體。例如,如果您使用以 vCPU 為基礎的權重,請設定所需的核心數目,以及最小和最大值。

  • 設定您的權重和所需的容量,使所需的容量至少比您最大權重大兩到三倍。

更新現有群組時,請注意下列事項:

  • 當您將權重加入現有群組時,請包含目前使用中的所有執行個體類型的權重。

  • 當您新增或變更權重時,Amazon EC2 Auto Scaling 會啟動或終止執行個體,以根據新的加權值達到所需的容量。

  • 如果移除執行個體類型,執行中該類型的執行個體會保留其最後一個權重,即使不再定義也是如此。

實體權重行為

當您使用執行個體權重時,Amazon EC2 Auto Scaling 的行為方式如下:

  • 目前容量將達到所需的容量或高於它。如果啟動的執行個體超過剩餘所需容量單位,則目前的容量可能會超過所需的容量。例如,假設您指定兩個執行個體類型 c5.2xlargec5.12xlarge,以及指派 c5.2xlarge 執行個體權重為 2 和 c5.12xlarge 為 12。如果剩餘五個單位可以滿足所需容量,並且 Amazon EC2 Auto Scaling 佈建的是 c5.12xlarge,則所需容量會超過七個單位。

  • 啟動執行個體時,Amazon EC2 Auto Scaling 會優先處理跨可用區域分配容量,並遵守超過所需容量的配置策略。

  • Amazon EC2 Auto Scaling 可以超過最大容量限制,以使用您偏好的配置策略在各個可用區域保持平衡。Amazon EC2 Auto Scaling 強制執行的硬性限制是您想要的容量加上您的最大重量。

設定 Auto Scaling 群組以使用權重

您可以設定 Auto Scaling 群組以使用權重,如下列 AWS CLI 範例所示。如需使用主控台的說明,請參閱「手動選擇執行個體類型以建立混合執行個體群組」。

設定新的 Auto Scaling 群組以使用權重 (AWS CLI)

使用 create-auto-scaling-group 命令。例如,以下命令會藉由指定下列項目,從而建立新的 Auto Scaling 群組並指派權重:

  • 要以隨需執行個體形式啟動的群組百分比 (0)

  • 每個可用區域中 Spot 執行個體的分配策略 (capacity-optimized)

  • 按照優先順序啟動的執行個體類型 (m4.16xlargem5.24xlarge)

  • 與執行個體類型 (1624) 之間的相對大小差異 (vCPU) 對應的執行個體權重

  • 要在其中啟動執行個體的子網路 (subnet-5ea0c127subnet-6194ea3bsubnet-c934b782),每條子網路各自對應至不同的可用區域

  • 啟動範本 (my-launch-template) 和啟動範本的版本 ($Latest)

aws autoscaling create-auto-scaling-group --cli-input-json file://~/config.json

config.json 檔案包含下列內容。

{ "AutoScalingGroupName": "my-asg", "MixedInstancesPolicy": { "LaunchTemplate": { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "$Latest" }, "Overrides": [ { "InstanceType": "m4.16xlarge", "WeightedCapacity": "16" }, { "InstanceType": "m5.24xlarge", "WeightedCapacity": "24" } ] }, "InstancesDistribution": { "OnDemandPercentageAboveBaseCapacity": 0, "SpotAllocationStrategy": "capacity-optimized" } }, "MinSize": 160, "MaxSize": 720, "DesiredCapacity": 480, "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782", "Tags": [] }
設定現有的 Auto Scaling 群組以使用權重 (AWS CLI)

使用 update-auto-scaling-group 命令。例如,下列命令透過指定下列項目,從而對現有 Auto Scaling 群組中的執行個體類型指派權重:

  • 按照優先順序啟動的執行個體類型 (c5.18xlargec5.24xlargec5.2xlargec5.4xlarge)

  • 與執行個體類型 (182424) 之間的相對大小差異 (vCPU) 對應的執行個體權重

  • 新的、已增加的所需的容量,大於最大的權重

aws autoscaling update-auto-scaling-group --cli-input-json file://~/config.json

config.json 檔案包含下列內容。

{ "AutoScalingGroupName": "my-existing-asg", "MixedInstancesPolicy": { "LaunchTemplate": { "Overrides": [ { "InstanceType": "c5.18xlarge", "WeightedCapacity": "18" }, { "InstanceType": "c5.24xlarge", "WeightedCapacity": "24" }, { "InstanceType": "c5.2xlarge", "WeightedCapacity": "2" }, { "InstanceType": "c5.4xlarge", "WeightedCapacity": "4" } ] } }, "MinSize": 0, "MaxSize": 100, "DesiredCapacity": 100 }
使用命令列驗證權重

請使用以下其中一個命令:

每單位小時 Spot 價格範例

下列表格將美國東部 (維吉尼亞北部) 不同可用區域中 Spot 執行個體每單位小時的價格,與相同區域中隨需執行個體的價格做比較。顯示的價格是範例的定價,而不是目前的定價。這些是您每個執行個體小時的成本。

範例:每個執行個體小時的 Spot 定價
執行個體類型 us-east-1a us-east-1b us-east-1c 隨需定價
c5.2xlarge 0.180 USD 0.191 USD 0.170 USD 0.34 USD
c5.4xlarge 0.341 USD 0.361 USD 0.318 USD 0.68 USD
c5.12xlarge 0.779 USD 0.777 USD 0.777 USD 2.04 USD
c5.18xlarge 1.207 USD 1.475 USD 1.357 USD 3.06 USD
c5.24xlarge 1.555 USD 1.555 USD 1.555 USD 4.08 USD

透過執行個體權重,您可以根據每單位小時使用量來評估成本。您可以透過將執行個體類型價格除以它所代表的單位數,來判斷每單位小時的價格。對於隨需執行個體,部署一個執行個體類型時的每單位小時價格與部署相同執行個體類型的不同大小價格相同。不過,每單位小時的 Spot 價格會因 Spot 集區而有所不同。

下列範例示範每單位小時競價型價格計算如何與執行個體權重搭配使用。為了方便計算,假設您只想在 us-east-1a 中啟動 Spot 執行個體。下表中擷取了每單位小時的價格。

範例:每單位小時 Spot 價格範例
執行個體類型 us-east-1a 執行個體權重 每個單位小時的價格
c5.2xlarge 0.180 USD 2 0.090 USD
c5.4xlarge 0.341 USD 4 0.085 USD
c5.12xlarge 0.779 USD 12 0.065 USD
c5.18xlarge 1.207 USD 18 0.067 USD
c5.24xlarge 1.555 USD 24 0.065 USD