

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 将自动扩缩组迁移到启动模板
<a name="migrate-to-launch-templates"></a>

自 **2023 年 1 月 1 日起**，启动配置已不再支持新的实例类型。这适用于在初始区域启动 AWS 区域 后添加到中的任何实例类型。此外，您也许能够使用某个区域不再支持的实例类型创建启动配置。有关更多信息，请参阅 [自动扩缩启动配置](launch-configurations.md)。

要将自动扩缩组从启动配置迁移到启动模板，请参阅以下步骤。

**重要**  
验证您拥有使用启动模板所需的权限。有关更多信息，请参阅 [使用启动模板的权限](launch-templates.md#launch-templates-permissions)。  
确保与启动配置相关的资源（例如安全组和 IAM 实例配置文件）不会在无意中删除。  
测试回滚操作，确保可以安全地恢复更改。

## 步骤 1：查找使用启动配置的自动扩缩组
<a name="find-groups-that-use-launch-configurations"></a>

要确定您的 Auto Scaling 组是否仍在使用启动配置，请使用运行以下[describe-auto-scaling-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-auto-scaling-groups.html)命令 AWS CLI。替换*REGION*为你的 AWS 区域。

```
aws autoscaling describe-auto-scaling-groups --region REGION \
  --query 'AutoScalingGroups[?LaunchConfigurationName!=`null`]'
```

下面是示例输出。

```
[
    {
	"AutoScalingGroupName": "group-1",
	"AutoScalingGroupARN": "arn",
	"LaunchConfigurationName": "my-launch-config",
	"MinSize": 1,
	"MaxSize": 5,
	"DesiredCapacity": 2,
	"DefaultCooldown": 300,
	"AvailabilityZones": [
            "us-west-2a",
            "us-west-2b",
            "us-west-2c"
        ],
	"LoadBalancerNames": [],
	"TargetGroupARNs": [],
	"HealthCheckType": "EC2",
	"HealthCheckGracePeriod": 300,
	"Instances": [
            {
                "ProtectedFromScaleIn": false,
                "AvailabilityZone": "us-west-2a",
                "LaunchConfigurationName": "my-launch-config",
                "InstanceId": "i-05b4f7d5be44822a6",
                "InstanceType": "t3.micro",
                "HealthStatus": "Healthy",
                "LifecycleState": "InService"
            },
            {
                "ProtectedFromScaleIn": false,
                "AvailabilityZone": "us-west-2b",
                "LaunchConfigurationName": "my-launch-config",
                "InstanceId": "i-0c20ac468fa3049e8",
                "InstanceType": "t3.micro",
                "HealthStatus": "Healthy",
                "LifecycleState": "InService"
            }
	],
	"CreatedTime": "2023-03-09T22:15:11.611Z",
	"SuspendedProcesses": [],
	"VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782",
	"EnabledMetrics": [],
	"Tags": [
            {
		"ResourceId": "group-1",
		"ResourceType": "auto-scaling-group",
		"Key": "environment",
		"Value": "production",
		"PropagateAtLaunch": true
            }
        ],
	"TerminationPolicies": [
	    "Default"
	],
	"NewInstancesProtectedFromScaleIn": false,
	"ServiceLinkedRoleARN": "arn",
       "TrafficSources": []
    },

    ... additional groups ...

]
```

或者，要删除除输出中包含相应启动配置名称和标签的自动扩缩组名称之外的所有内容，请运行以下命令：

```
aws autoscaling describe-auto-scaling-groups --region REGION \
  --query 'AutoScalingGroups[?LaunchConfigurationName!=`null`].{AutoScalingGroupName: AutoScalingGroupName, LaunchConfigurationName: LaunchConfigurationName, Tags: Tags}'
```

下面显示了示例输出。

```
[
    {
        "AutoScalingGroupName": "group-1",
        "LaunchConfigurationName": "my-launch-config",
        "Tags": [
            {
                "ResourceId": "group-1",
                "ResourceType": "auto-scaling-group",
                "Key": "environment",
                "Value": "production",
                "PropagateAtLaunch": true
            }
        ]
    },

    ... additional groups ...

]
```

有关筛选的更多信息，请参阅《*AWS Command Line Interface 用户指南》*中的[筛选 AWS CLI 输出](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-filter.html)。

## 步骤 2：将启动配置复制到启动模板
<a name="copy-launch-config"></a>

您可以使用以下过程将启动配置复制到启动模板。然后，您可以将其添加到自动扩缩组。

复制多个启动配置会生成同名的启动模板。要在复制过程中更改启动模板的名称，必须逐个复制启动配置。

**注意**  
复制功能只能从控制台提供。

**将启动配置复制到启动模板（控制台）**

1. 打开位于 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 的 Amazon EC2 控制台。

1. 在左侧导航窗格的**自动扩缩**下方，选择**自动扩缩组**。

1. 在页面顶部附近，选择**启动配置**。当提示您确认时，选择**查看启动配置**以确认您要查看**启动配置**页面。

1. 选择您要复制的启动配置，然后选择**复制到启动模板，复制所选**。这将设置一个与您所选启动配置具有相同名称和选项的新启动模板。

1. 对于**新建启动模板名称**，您可以使用启动配置的名称（默认值）或者输入新名称。启动模板名称必须是唯一的。

1. （可选）选择**使用新模板创建自动扩缩组**。

   您可以跳过此步骤以完成启动配置的复制。您无需创建新的自动扩缩组。

1. 选择**复制**。

**将所有启动配置复制到启动模板（控制台）**

1. 打开位于 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 的 Amazon EC2 控制台。

1. 在导航窗格中的 **Auto Scaling (自动调整)** 上，选择 **Launch Configurations (启动配置)**。

1. 选择**复制到启动模板，全部复制**。这将当前地区中的每个启动配置复制到具有相同名称和选项的新启动模板。

1. 选择 **Copy**（复制）。

## 步骤 3：更新自动扩缩组以使用启动模板
<a name="replace-launch-config"></a>

创建启动模板后，您可以将其添加到自动扩缩组。

**更新自动扩缩组以使用启动模板（控制台）**

1. 在上打开 Amazon EC2 控制台 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)，然后从导航窗格中选择 A **uto Scaling Gro** ups。

1. 选中您的自动扩缩组旁边的复选框。

   将在页面底部打开一个拆分窗格，其中显示有关所选组的信息。

1. 在**详细信息**选项卡上，选择**启动配置**、**编辑**。

1. 选择**切换到启动模板**。

1. 对于**启动模板**，选择您的启动模板。

1. 对于**版本**，根据需要选择启动模板版本。在创建启动模板版本之后，您可以选择 Auto Scaling 组在扩展时是使用启动模板的默认版本还是最新版本。

1. 选择**更新**。

**更新自动扩缩组以使用启动模板 (AWS CLI)**  
以下[update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html)命令更新指定的 Auto Scaling 组以使用指定启动模板的初始版本。

```
aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \
  --launch-template LaunchTemplateName=my-template-for-auto-scaling,Version='1'
```

有关使用 CLI 命令更新自动扩缩组以使用启动模板的更多示例，请参阅[更新 Auto Scaling 组以使用启动模板](examples-launch-templates-aws-cli.md#update-asg-launch-template-cli)。

## 步骤 4：替换实例
<a name="replace-instances"></a>

将启动配置替换为启动模板后，任何新实例都将使用新的启动模板。现有实例不会受到影响。

要更新现有的实例，您可以启动实例刷新替换自动扩缩组中的实例，而不是一次手动替换几个实例。有关更多信息，请参阅 [使用实例刷新更新自动扩缩组中的实例](asg-instance-refresh.md)。如果组很大，则实例刷新可能会特别有用。

或者，您可以允许自动扩展以根据组的[终止策略](as-instance-termination.md)逐步将现有实例替换为新实例，也可以将其终止。手动终止会强制您的自动扩缩组启动新实例以保持该组的所需容量。有关更多信息，请参阅《Amazon EC2 用户指南》**中的[终止实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#terminating-instances-console)。

## 附加信息
<a name="migrating-to-launch-templates-more-info"></a>

有关更多信息，请参阅 AWS 计算博客上[的 Amazon EC2 Auto Scaling 将不再为启动配置添加对新 EC2 功能的支持](https://aws.amazon.com/blogs/compute/amazon-ec2-auto-scaling-will-no-longer-add-support-for-new-ec2-features-to-launch-configurations/)。

有关引导您了解如何将 AWS CloudFormation 堆栈从启动配置迁移到启动模板的主题，请参阅[迁移 AWS CloudFormation 堆栈以启动模板](migrate-launch-configurations-with-cloudformation.md)。