View a markdown version of this page

使用分佈區段以多個容量保留類型為目標 - Amazon EC2 Auto Scaling

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

使用分佈區段以多個容量保留類型為目標

使用分佈區段來設定 Auto Scaling 群組,以使用多個容量保留類型:隨需容量保留、Capacity BlocksML 和可中斷的容量保留,並優先排序。您可以將 Auto Scaling 群組指向包含不同容量保留組合的容量保留資源群組,以鎖定這些保留類型。

當您設定分佈客群時,Auto Scaling 會依您指定的優先順序,跨保留類型啟動執行個體,並可選擇回復到隨需容量。

Auto Scaling 如何跨市場選項分配執行個體

Auto Scaling 會根據混合執行個體政策組態,將啟動的執行個體分散到不同的市場選項。

隨需和 Spot 分佈

您可以使用混合執行個體政策上的 OnDemandBaseCapacityOnDemandPercentageAboveBaseCapacity 欄位,在隨需和 Spot 容量之間分配執行個體。下列範例會啟動前 2 個執行個體做為隨需,其餘執行個體的 25% 做為隨需,其餘執行個體做為 Spot:

{ "InstancesDistribution": { "OnDemandBaseCapacity": 2, "OnDemandPercentageAboveBaseCapacity": 25 } }

使用分佈區段進行分佈

分佈區段是 Auto Scaling 群組上的組態,其中包含要按順序排序的容量類型清單。分佈區段是在混合執行個體政策的 DistributionSegments 欄位中設定。

Auto Scaling 目前每個 Auto Scaling 群組僅支援一個分佈區段。所有 Auto Scaling 群組容量都會分散在該區段中的目標容量類型 (TargetCapacityTypes)。

的有效值TargetCapacityTypes為:

  • on-demand-capacity-reservation – 隨需容量預留

  • capacity-block – Capacity Blocks 適用於 ML

  • interruptible-capacity-reservation – 可中斷的容量保留

  • on-demand – 隨需容量

清單的順序決定 Auto Scaling 如何分佈啟動的執行個體。Auto Scaling 會嘗試依列出類型的順序使用容量。當特定容量類型無法使用時,Auto Scaling 會略過該類型並繼續進行下一個類型。

下列範例會先以隨需容量保留後端啟動執行個體,再以 Capacity Block後端啟動執行個體,再以可中斷容量保留後端啟動執行個體,如果預留容量不足,最後以隨需啟動執行個體:

{ "InstancesDistribution": { "DistributionSegments": [ { "TargetCapacityTypes": [ "on-demand-capacity-reservation", "capacity-block", "interruptible-capacity-reservation", "on-demand" ] } ] } }

如果您在清單中on-demand包含 ,當預留容量無法使用時,Auto Scaling 會回復為隨需容量。如果您省略 on-demand,當預留容量無法使用時,執行個體無法啟動。如果您包含 on-demand,它必須是清單中的最後一個項目。

注意

目前不支援 Spot 容量做為目標容量類型。

先決條件

在 Auto Scaling 群組上設定分發客群之前,您必須先建立您要使用的容量保留,以及包含它們的容量保留資源群組。

若要建立容量保留,請參閱《Amazon EC2 使用者指南》中的下列其中一項:

若要建立包含不同容量保留混合的容量保留資源群組,請參閱《Amazon EC2 使用者指南》中的容量保留資源群組

設定 Auto Scaling 群組以使用分佈區段

若要將 Auto Scaling 群組設定為使用分佈區段,請將它們新增至混合執行個體政策,並將容量保留資源群組 ARN 設定為容量保留規格上的目標。

Auto Scaling 會嘗試以容量類型的優先順序啟動執行個體,並依照啟動範本中列出的執行個體類型順序在每個容量類型內啟動執行個體Overrides

Console
在新群組上設定分發客群 (主控台)
  1. 遵循 中的步驟使用 Amazon EC2 啟動精靈建立 Auto Scaling 群組,直到步驟 2。

  2. 選擇執行個體啟動選項頁面的執行個體類型需求下,選擇覆寫啟動範本,然後選擇覆寫分佈區段的啟動範本

  3. 執行個體分佈選項下,選擇分佈區段

  4. 針對選取目標容量保留類型,選取要在此分佈區段中包含的容量保留類型。請確定您的容量保留資源群組包含您選取的保留類型。

  5. 訂單目標容量保留類型下,將類型拖曳至您想要的優先順序。Auto Scaling 會依此順序在容量保留中啟動執行個體。如果您選取隨需執行個體,則必須是最後一個。

  6. 其他容量設定下,針對容量保留目標,選擇指定容量保留資源群組 (依 ARN 設定目標),然後選擇容量保留資源群組的 ARN。

  7. 繼續執行精靈的其餘步驟。

AWS CLI

使用 create-auto-scaling-group 命令來建立具有分佈區段的新 Auto Scaling 群組。

下列範例會先使用隨需容量保留的優先順序,再使用 Capacity Blocks,再使用可中斷容量保留,再使用隨需。

aws autoscaling create-auto-scaling-group \ --auto-scaling-group-name my-asg \ --min-size 0 --max-size 10 --desired-capacity 5 \ --vpc-zone-identifier "subnet-abc1234a" \ --mixed-instances-policy '{ "LaunchTemplate": { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template" }, "Overrides": [ {"InstanceType": "m5.24xlarge"}, {"InstanceType": "p5.48xlarge"} ] }, "InstancesDistribution": { "OnDemandAllocationStrategy": "prioritized", "DistributionSegments": [ { "TargetCapacityTypes": [ "on-demand-capacity-reservation", "capacity-block", "interruptible-capacity-reservation", "on-demand" ] } ] } }' \ --capacity-reservation-specification '{ "CapacityReservationTarget": { "CapacityReservationResourceGroupArns": [ "arn:aws:resource-groups:us-east-1:123456789012:group/my-crg" ] } }'

往返分佈區段的遷移

您可以遷移現有的 Auto Scaling 群組以使用分佈區段,並視需要遷移回標準組態。在所有遷移案例中,現有的執行個體會繼續執行。新的啟動會遵循更新的組態。

遷移混合執行個體群組以使用分佈區段

若要遷移現有的混合執行個體群組以使用分佈區段,請使用下列其中一種方法。當您新增分佈區段OnDemandPercentageAboveBaseCapacity時,Auto Scaling 會自動清除 OnDemandBaseCapacity和 。

Console
將現有群組遷移至分佈區段 (主控台)
  1. 在 開啟 Amazon EC2 主控台https://console.aws.amazon.com/ec2/,然後從導覽窗格中選擇 Auto Scaling 群組

  2. 從頂端的導覽列中 AWS 區域 ,選擇 Auto Scaling 群組所在的 。

  3. 選擇 Auto Scaling 群組的名稱以開啟其詳細資訊頁面。

  4. 執行個體類型需求區段中,選擇編輯

  5. 執行個體類型需求下,選擇覆寫啟動範本,然後選擇覆寫分佈區段的啟動範本

  6. 執行個體分佈選項下,選擇分佈區段

  7. 針對選取目標容量保留類型,選取要在此分佈區段中包含的容量保留類型。請確定您的容量保留資源群組包含您選取的保留類型。

  8. 訂單目標容量保留類型下,將類型拖曳至您想要的優先順序。如果您選取隨需執行個體,它必須是最後一個。

  9. 選擇更新

若要將容量保留資源群組設定為現有群組的目標,請參閱 更新現有的 Auto Scaling 群組

AWS CLI

使用 update-auto-scaling-group 命令將分佈區段新增至混合執行個體政策,並將容量保留資源群組 ARN 設定為目標。

aws autoscaling update-auto-scaling-group \ --auto-scaling-group-name my-asg \ --mixed-instances-policy '{ "InstancesDistribution": { "DistributionSegments": [ { "TargetCapacityTypes": [ "on-demand-capacity-reservation", "capacity-block", "interruptible-capacity-reservation", "on-demand" ] } ] } }' \ --capacity-reservation-specification '{ "CapacityReservationPreference": "default", "CapacityReservationTarget": { "CapacityReservationResourceGroupArns": [ "arn:aws:resource-groups:us-east-1:123456789012:group/my-crg" ] } }'

從分佈區段遷移

若要遷移回標準混合執行個體群組,請使用下列其中一種方法。

Console
從群組移除分佈區段 (主控台)
  1. 在 開啟 Amazon EC2 主控台https://console.aws.amazon.com/ec2/,然後從導覽窗格中選擇 Auto Scaling 群組

  2. 從頂端的導覽列中 AWS 區域 ,選擇 Auto Scaling 群組所在的 。

  3. 選擇 Auto Scaling 群組的名稱以開啟其詳細資訊頁面。

  4. 執行個體類型需求區段中,選擇編輯

  5. 執行個體類型需求下,選擇重設以啟動範本。這會移除啟動範本覆寫,這會清除混合執行個體政策和分佈區段。

  6. 選擇更新

AWS CLI

使用 update-auto-scaling-group 命令來設定 OnDemandBaseCapacityOnDemandPercentageAboveBaseCapacity。當您設定舊版欄位時,Auto Scaling 會自動清除分佈區段。

aws autoscaling update-auto-scaling-group \ --auto-scaling-group-name my-asg \ --mixed-instances-policy '{ "InstancesDistribution": { "OnDemandBaseCapacity": 2, "OnDemandPercentageAboveBaseCapacity": 25 } }' \ --capacity-reservation-specification '{ "CapacityReservationPreference": "capacity-reservations-first" }'

或者,您也可以將 DistributionSegments設定為空白清單,明確清除分佈區段。

如果您想要在沒有混合執行個體政策的情況下在 Auto Scaling 群組上使用啟動範本,請使用 update-auto-scaling-group命令搭配頂層啟動範本。當您提供最上層啟動範本時,Auto Scaling 會清除混合執行個體政策。

aws autoscaling update-auto-scaling-group \ --auto-scaling-group-name my-asg \ --launch-template LaunchTemplateName=my-launch-template \ --capacity-reservation-specification '{ "CapacityReservationPreference": "capacity-reservations-first" }'
注意

您也可以使用具有 --desired-configuration 參數的執行個體重新整理,在分佈區段之間進行遷移。

使用分佈區段的縮減行為

當 Auto Scaling 群組縮減時,Auto Scaling 會以 的相反順序終止執行個體TargetCapacityTypes。首先終止隨需執行個體,接著是最低優先順序容量類型的執行個體,以此類推,最高優先順序容量類型。

例如,當 TargetCapacityTypes 設定為 時["on-demand-capacity-reservation", "capacity-block", "interruptible-capacity-reservation", "on-demand"],Auto Scaling 會在縮減期間依下列順序終止執行個體:

  1. On-Demand

  2. 可中斷的容量預留後端

  3. Capacity Block 後端

  4. 支援隨需容量預留

如果您更新分發客群以移除保留類型,該已移除類型的現有執行個體會在類型仍在清單中的任何執行個體之前終止。

考量事項

  • 容量保留偏好設定 – 僅在設定分佈區段時default支援。如需詳細資訊,請參閱容量保留偏好設定

  • 隨需配置策略 – 只有在您設定分發客群時才prioritized支援。

  • 暖集區 – 分佈區段不支援暖集區。

  • Spot 容量 – 不支援 Spot 容量作為分佈區段中的目標容量類型。