使用多個啟動範本 - Amazon EC2 Auto Scaling

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

使用多個啟動範本

除了使用多個執行個體類型以外,您也可以使用多個啟動範本。

例如,假設為運算密集型應用程式設定 Auto Scaling 群組,並且想要混合使用 C5、C5a 和 C6g 執行個體類型。不過,C6g 執行個體具有以 64 位元 Arm 架構為基礎的 AWS Graviton 處理器,而 C5 和 C5a 執行個體在 64 位元 Intel x86 處理器上執行。C5 和 C5a 執行個體的 AMI 均適用於這兩種執行個體中的任一種,但不適用於 C6g 執行個體。若要解決此問題,請對 C6g 執行個體使用不同的啟動範本。您仍然可以對 C5 和 C5a 執行個體使用相同的啟動範本。

本節包含使用 AWS CLI 執行與使用多個啟動範本相關任務的程序。目前,僅在使用 AWS CLI 或開發套件時才能使用此功能,無法透過主控台使用。

設定 Auto Scaling 群組以使用多個啟動範本

您可以設定 Auto Scaling 群組以使用多個啟動範本,如下列範例所示。

設定新的 Auto Scaling 群組以使用多個啟動範本 (AWS CLI)

使用 create-auto-scaling-group 命令。例如,以下命令會建立新的 Auto Scaling 群組。其指定了 c5.largec5a.large 以及 c6g.large 執行個體類型,並為 c6g.large 執行個體類型定義新的啟動範本,確保使用適當的 AMI 來啟動 Arm 執行個體。Amazon EC2 Auto Scaling 群組在滿足隨需容量時,會使用執行個體類型順序決定先使用哪一種執行個體類型。

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

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

{ "AutoScalingGroupName":"my-asg", "MixedInstancesPolicy":{ "LaunchTemplate":{ "LaunchTemplateSpecification":{ "LaunchTemplateName":"my-launch-template-for-x86", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c6g.large", "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template-for-arm", "Version": "$Latest" } }, { "InstanceType":"c5.large" }, { "InstanceType":"c5a.large" } ] }, "InstancesDistribution":{ "OnDemandBaseCapacity": 1, "OnDemandPercentageAboveBaseCapacity": 50, "SpotAllocationStrategy": "capacity-optimized" } }, "MinSize":1, "MaxSize":5, "DesiredCapacity":3, "VPCZoneIdentifier":"subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782", "Tags":[ ] }
設定現有的 Auto Scaling 群組以使用多個啟動範本 (AWS CLI)

使用 update-auto-scaling-group 命令。例如,下列命令會將名為 my-launch-template-for-arm 的啟動範本指派給名為 my-asg 的 Auto Scaling 群組的 c6g.large 執行個體類型。

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

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

{ "AutoScalingGroupName":"my-asg", "MixedInstancesPolicy":{ "LaunchTemplate":{ "Overrides":[ { "InstanceType":"c6g.large", "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template-for-arm", "Version": "$Latest" } }, { "InstanceType":"c5.large" }, { "InstanceType":"c5a.large" } ] } } }
設定新的 Auto Scaling 群組以使用具有屬性型執行個體類型選擇的多個啟動範本 (AWS CLI)

使用 create-auto-scaling-group 命令。例如,下列命令會為具有 ARM AMI 的 AWS Graviton 執行個體指定啟動範本,並為具有 x86 AMI 的 AMD 或 Intel 型執行個體指定額外的啟動範本,以建立新的 Auto Scaling 群組。然後,它會使用屬性型執行個體選取兩次,為每個 CPU 架構選擇各種執行個體類型。您可以使用 update-autoscaling-group 命令,將類似的組態新增至現有的 Auto Scaling 群組。 update-autoscaling-group

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

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

{ "AutoScalingGroupName":"my-asg", "MixedInstancesPolicy":{ "LaunchTemplate":{ "LaunchTemplateSpecification":{ "LaunchTemplateName":"my-launch-template-for-arm", "Version":"$Latest" }, "Overrides":[ { "InstanceRequirements": { "VCpuCount": {"Min": 2}, "MemoryMiB": {"Min": 2048}, "CpuManufacturers": ["amazon-web-services"] } }, { "InstanceRequirements": { "VCpuCount": {"Min": 2}, "MemoryMiB": {"Min": 2048}, "CpuManufacturers": ["intel", "amd"] }, "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template-for-x86", "Version": "$Latest" } } ] }, "InstancesDistribution":{ "OnDemandPercentageAboveBaseCapacity": 0, "SpotAllocationStrategy": "price-capacity-optimized" } }, "MinSize":1, "MaxSize":10, "DesiredCapacity":6, "VPCZoneIdentifier":"subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782", "Tags":[ ] }
驗證 Auto Scaling 群組的啟動範本

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

您可以在 AWS re:Post 上的範本中找到使用屬性型執行個體類型選取來指定多個啟動 AWS CloudFormation 範本的範例。