

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

# 使用多個啟動範本
<a name="ec2-auto-scaling-mixed-instances-groups-launch-template-overrides"></a>

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

例如，假設為運算密集型應用程式設定 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 或開發套件時才能使用此功能，無法透過主控台使用。

**Topics**
+ [設定 Auto Scaling 群組以使用多個啟動範本](#configue-auto-scaling-group-to-use-multiple-launch-templates)
+ [相關資源](#multiple-launch-templates-related-resources)

## 設定 Auto Scaling 群組以使用多個啟動範本
<a name="configue-auto-scaling-group-to-use-multiple-launch-templates"></a>

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

**設定新的 Auto Scaling 群組以使用多個啟動範本 (AWS CLI)**  
使用 [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) 命令。例如，以下命令會建立新的 Auto Scaling 群組。其指定了 `c5.large`、`c5a.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](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) 命令。例如，下列命令會將名為 `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](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) 命令。例如，下列命令會為具有 ARM AMI 的 AWS Graviton 執行個體指定啟動範本，並為具有 x86 AMI 的 AMD 或 Intel 型執行個體指定額外的啟動範本，以建立新的 Auto Scaling 群組。然後，它會使用[屬性型執行個體選取](create-mixed-instances-group-attribute-based-instance-type-selection.md)兩次，為每個 CPU 架構選擇各種執行個體類型。您可以使用 update-autoscaling-group 命令，將類似的組態新增至現有的 Auto Scaling 群組。 [update-autoscaling-group](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/update-auto-scaling-group.html) 

```
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 群組的啟動範本**  
請使用以下其中一個命令：
+ [describe-auto-scaling-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-auto-scaling-groups.html) (AWS CLI)
+ [Get-ASAutoScalingGroup](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-ASAutoScalingGroup.html) (AWS Tools for Windows PowerShell)

## 相關資源
<a name="multiple-launch-templates-related-resources"></a>

您可以在 [AWS re：Post](https://repost.aws/articles/ARQeKDQX68TcqipYaaisl6bA/cloudformation-auto-scaling-group-sample-template-for-mixed-x86-intel-amd-and-aws-graviton-instances) 上的範本中找到使用屬性型執行個體類型選取來指定多個啟動 CloudFormation 範本的範例。