

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

# 使用启动配置创建自动扩缩组
<a name="create-auto-scaling-groups-launch-configuration"></a>

**重要**  
限制：  
自 **2023 年 1 月 1 日起**，启动配置已不再支持新的 Amazon EC2 实例类型。这包括支持在初始区域启动 AWS 区域 后添加到中的任何实例类型。
**2023 年 6 月 1 日**当天或之后创建的账户无法使用控制台创建新启动配置。
**2024 年 10 月 1 日**当天或之后创建的账户无法使用任何方法（控制台 AWS CLI、API 或 CloudFormation）创建新的启动配置。
 迁移到启动模板以确保您现在或将来都不需要创建新的启动配置。有关为自动扩缩组创建启动模板的更多信息，请参阅 [将自动扩缩组迁移到启动模板](migrate-to-launch-templates.md)。

如果您已经创建了启动配置或 EC2 实例，则可以创建一个自动扩缩组，将启动配置用作其 EC2 实例的配置模板。启动配置可以为实例指定一些信息，例如，AMI ID、实例类型、密钥对、安全组和块储存设备映射。有关创建启动配置的信息，请参阅[创建启动配置](create-launch-config.md)。

您必须具有足够的权限来创建自动扩缩组。您还必须具有足够的权限来创建服务相关角色，以便 Amazon EC2 Auto Scaling 在该角色还不存在的情况下用它来代表您执行操作。有关管理员在向您授予权限时可参考的 IAM policy 示例，请参阅 [基于身份的策略示例](security_iam_id-based-policy-examples.md)。

**Topics**
+ [

# 使用启动配置创建 Auto Scaling 组
](create-asg-launch-configuration.md)
+ [

# 使用现有实例创建 Auto Scaling 组 AWS CLI
](create-asg-from-instance.md)

# 使用启动配置创建 Auto Scaling 组
<a name="create-asg-launch-configuration"></a>

**重要**  
我们为尚未从启动配置迁移到启动模板的客户提供有关启动配置的信息。有关为自动扩缩组创建启动模板的更多信息，请参阅 [将自动扩缩组迁移到启动模板](migrate-to-launch-templates.md)。

在创建 Auto Scaling 组时，您必须指定配置 Amazon EC2 实例所需的信息、实例的可用区和 VPC 子网、所需容量以及最小和最大容量限制。

以下过程演示如何使用启动配置创建 Auto Scaling 组。您无法在创建启动配置后进行修改，但可以替换 Auto Scaling 组的启动配置。有关更多信息，请参阅 [更改 Auto Scaling 组的启动配置](change-launch-config.md)。

**先决条件**
+ 您必须已创建启动配置。有关更多信息，请参阅 [创建启动配置](create-launch-config.md)。

**使用启动配置创建 Auto Scaling 组（控制台）**

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

1. 在屏幕顶部的导航栏上，选择与创建启动配置时相同的 AWS 区域 配置。

1. 选择**创建自动扩缩组**。

1. 在**选择启动模板或配置**页面上，对于 **Auto Scaling 组名称**，输入 Auto Scaling 组的名称。

1. 要选择启动配置，请执行以下操作：

   1. 对于 **Launch Template** (启动模板)，选择 **Switch to launch configuration** (切换以启动配置)。

   1. 对于 **Launch configuration (启动配置)**，请选择现有启动配置。

   1. 验证您的启动配置是否支持您计划使用的所有选项，然后选择 **Next (下一步)**。

1. 在**配置实例启动选项**页面的**网络**下方，对于 **VPC**，选择相应的 VPC。必须在您于启动配置中指定的安全组所在的 VPC 中创建 Auto Scaling 组。

1. 对于**可用区和子网**，选择指定 VPC 中的一个或多个子网。可以在多个可用区中使用子网以提供高可用性。有关更多信息，请参阅 [选择 VPC 子网时的注意事项](asg-in-vpc.md#as-vpc-considerations)。

1. 选择**下一步**。

   或者，您可接受其余默认值，然后选择 **Skip to review** (跳到审核)。

1. （可选）在 **Configure advanced options（配置高级选项）**页面上，配置以下选项，然后选择 **Next（下一步）**：

   1. （可选）对于**运行状况检查**、**其他运行状况检查类型**，选择**开启 Amazon EBS 运行状况检查**。有关更多信息，请参阅 [使用运行状况检查监控具有受损 Amazon EBS 卷的 Auto Scaling 实例](monitor-and-replace-instances-with-impaired-ebs-volumes.md)。

   1. （可选）对于**运行状况检查宽限期**，输入时间长短（以秒为单位）。此时间是 Amazon EC2 Auto Scaling 在实例进入 `InService` 状态后需要等待完成实例运行状况检查的时间。有关更多信息，请参阅 [设置自动扩缩组的运行状况检查宽限期](health-check-grace-period.md)。

   1. 在 **“其他设置”** 下的 “**监控**” 下，选择是否启用 CloudWatch 群组指标收集。这些指标提供的测量值可以指示潜在的问题，例如终止实例的数量或挂起实例的数量。有关更多信息，请参阅 [CloudWatch 监控您的 Auto Scaling 组和实例的指标](ec2-auto-scaling-cloudwatch-monitoring.md)。

   1. 对于**启用默认实例预热**，选择此选项并选择应用程序的预热时间。如果您正在创建具有扩展策略的 Auto Scaling 组，则默认实例预热功能会改进用于动态扩展的 Amazon CloudWatch 指标。有关更多信息，请参阅 [为 Auto Scaling 组设置原定设置实例预热](ec2-auto-scaling-default-instance-warmup.md)。

1. （可选）在 **Configure group size and scaling policies** (配置组大小和扩展策略) 页面上，配置以下选项，然后选择 **Next** (下一步)：

   1. 在**组大小**下，对于**所需容量**，请输入要启动的实例的初始数量。

   1. 在**扩展**部分的**扩展限制**下，如果**所需容量**的新值大于**所需的最小容量**和**最大所需容量**，则**所需的最大容量**将自动增加到新的所需容量值。您可以按需更改这些限制。有关更多信息，请参阅 [为自动扩缩组设置扩缩限制](asg-capacity-limits.md)。

   1. 对于**自动扩缩**，请选择是否要创建目标跟踪扩展策略。您也可以在创建自动扩缩组后再创建此策略。

      如果您选择**目标跟踪扩展策略**，请按照 [创建目标跟踪扩缩策略](policy_creating.md) 中的说明创建策略。

   1. 对于**实例维护策略**，请选择是否要创建实例维护策略。您也可以在创建自动扩缩组后再创建此策略。要创建策略，请按照[设置实例维护政策](set-instance-maintenance-policy.md)中的指导操作。

   1. 在 **Instance scale-in protection**（实例缩减保护）下，选择是否启用实例缩减保护。有关更多信息，请参阅 [使用实例横向缩减保护以控制实例终止](ec2-auto-scaling-instance-protection.md)。

1. （可选）要接收通知，请为 **Add notification**（添加通知）配置通知，然后选择 **Next**（下一步）。有关更多信息，请参阅 [Amazon EC2 Auto Scaling 的 Amazon SNS 通知选项](ec2-auto-scaling-sns-notifications.md)。

1. （可选）要添加标签，请选择 **Add tag**（添加标签），为每个标签提供标签键和值，然后选择 **Next**（下一步）。有关更多信息，请参阅 [为 Auto Scaling 组和实例添加标签](ec2-auto-scaling-tagging.md)。

1. 在 **Review（查看）**页面上，选择 **Create Auto Scaling group（创建 Auto Scaling 组）**。

**使用命令行创建 Auto Scaling 组**

您可以使用以下任一命令：
+ [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) (AWS CLI)
+ [新-ASAuto ScalingGroup](https://docs.aws.amazon.com/powershell/latest/reference/items/New-ASAutoScalingGroup.html) (AWS Tools for Windows PowerShell)

# 使用现有实例创建 Auto Scaling 组 AWS CLI
<a name="create-asg-from-instance"></a>

**重要**  
我们为尚未从启动配置迁移到启动模板的客户提供有关启动配置的信息。有关为自动扩缩组创建启动模板的更多信息，请参阅 [将自动扩缩组迁移到启动模板](migrate-to-launch-templates.md)。

如果这是您第一次创建 Auto Scaling 组，我们建议您使用控制台从现有 EC2 实例创建启动模板。然后使用启动模板创建新的 Auto Scaling 组。有关此步骤，请参阅 [使用 Amazon EC2 启动向导创建 Auto Scaling 组](create-asg-ec2-wizard.md)。

以下程序演示了如何通过如下方法创建 Auto Scaling 组：指定要用作启动其他实例基础的现有实例。创建 EC2 实例需要多个参数，例如 Amazon Machine Image (AMI) ID、实例类型、密钥对和安全组。Amazon EC2 Auto Scaling 还使用所有这些信息，以便在需要扩展时代表您启动实例。此信息存储在启动模板或启动配置中。

当您使用现有实例时，Amazon EC2 Auto Scaling 会创建一个 Auto Scaling 组，该组将根据同时创建的启动配置启动实例。Auto Scaling 组的名称与 Auto Scaling 组相同，并且包括来自已识别实例的某些配置详细信息。

以下配置详细信息会从已识别的实例复制到启动配置中：
+ AMI ID
+ 实例类型
+ 密钥对
+ 安全组
+ IP 地址类型（公有或私有）
+ IAM 实例配置文件（如果适用）
+ 监控（true 或 false）
+ EBS 优化（true 或 false）
+ 租期设置 (如果在 VPC (共享或专用) 中启动)
+ 内核 ID 和 RAM 磁盘 ID (如果适用)
+ 用户数据，如果指定 
+ Spot（最高）价格

VPC 子网和可用区将从已识别的实例复制到自动扩缩组自己的资源定义中。

如果已识别的实例位于置放群组中，则新 Auto Scaling 组将在与已识别实例相同的置放群组中启动实例。由于启动配置设置不允许指定置放群组，因此将置放群组复制到新 Auto Scaling 组的 `PlacementGroup` 属性。

不会从已识别实例中复制以下配置详细信息，
+ 存储：不会从已识别的实例中复制块储存设备（EBS 卷和实例存储卷）。相反，作为创建 AMI 的一部分而创建的块储存设备映射决定了使用哪些设备。
+ 网络接口数量：网络接口未从已识别的实例中复制。相反，Amazon EC2 Auto Scaling 会使用其默认设置创建一个网络接口，即主网络接口 (eth0)。
+ 实例元数据选项：不会从已识别的实例中复制元数据可访问、元数据版本和令牌响应跃点数限制设置。相反，Amazon EC2 Auto Scaling 会使用其默认设置。有关更多信息，请参阅 [配置实例元数据选项](create-launch-config.md#launch-configurations-imds)。
+ 负载均衡器：如果识别的实例适用一个或多个负载均衡器进行注册，则有关负载均衡器的信息不会复制到负载均衡器或新 Auto Scaling 组的目标组属性。
+ 标签：如果识别的实例有标签，标签不会复制到新 Auto Scaling 组的 `Tags` 属性。

## 先决条件
<a name="create-asg-from-instance-prerequisites"></a>

EC2 实例必须符合以下标准：
+ 实例不是其他 Auto Scaling 组的成员。
+ 实例处于 `running` 状态。
+ 用于启动实例的 AMI 必须仍然存在。

## 从 EC2 实例创建 Auto Scaling 组 (AWS CLI)
<a name="create-asg-from-instance-aws-cli"></a>

以下示例过程向您展示了如何使用 CLI 命令从 EC2 实例创建自动扩缩组。

此程序不会将实例添加到 Auto Scaling 组中。要连接实例，必须在创建 Auto Scaling 组之后运行 [attach-instances](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/attach-instances.html) 命令。

开始之前，请使用 Amazon EC2 控制台或 [describe-instances](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-instances.html) 命令查找 EC2 实例的 ID。

**将当前实例用作模板**
+ 使用以下[create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html)命令从 EC2 实例创建 Auto Scaling 组`i-123456789abcdefg0`。`my-asg-from-instance`

  ```
  aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg-from-instance \
    --instance-id i-123456789abcdefg0 --min-size 1 --max-size 2 --desired-capacity 2
  ```

**验证 Auto Scaling 组已启动实例**
+ 使用以下[describe-auto-scaling-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-auto-scaling-groups.html)命令验证 Auto Scaling 组是否已成功创建。

  ```
  aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg-from-instance
  ```

  以下示例响应显示该组的所需容量为 2，该组有 2 个正在运行的实例，启动配置命名为 `my-asg-from-instance`。

  ```
  {
    "AutoScalingGroups":[
      {
        "AutoScalingGroupName":"my-asg-from-instance",
        "AutoScalingGroupARN":"arn",
        "LaunchConfigurationName":"my-asg-from-instance",
        "MinSize":1,
        "MaxSize":2,
        "DesiredCapacity":2,
        "DefaultCooldown":300,
        "AvailabilityZones":[
          "us-west-2a"
        ],
        "LoadBalancerNames":[],
        "TargetGroupARNs":[],
        "HealthCheckType":"EC2",
        "HealthCheckGracePeriod":0,
        "Instances":[
          {
            "InstanceId":"i-34567890abcdef012",
            "InstanceType":"t2.micro",
            "AvailabilityZone":"us-west-2a",
            "LifecycleState":"InService",
            "HealthStatus":"Healthy",
            "LaunchConfigurationName":"my-asg-from-instance",
            "ProtectedFromScaleIn":false
          },
          {
            "InstanceId":"i-012345abcdefg6789",
            "InstanceType":"t2.micro",
            "AvailabilityZone":"us-west-2a",
            "LifecycleState":"InService",
            "HealthStatus":"Healthy",
            "LaunchConfigurationName":"my-asg-from-instance",
            "ProtectedFromScaleIn":false
          }
        ],
        "CreatedTime":"2020-10-28T02:39:22.152Z",
        "SuspendedProcesses":[ ],
        "VPCZoneIdentifier":"subnet-0abc1234",
        "EnabledMetrics":[ ],
        "Tags":[ ],
        "TerminationPolicies":[
          "Default"
        ],
        "NewInstancesProtectedFromScaleIn":false,
        "ServiceLinkedRoleARN":"arn",
        "TrafficSources":[]
      }
    ]
  }
  ```

**查看启动配置**
+ 使用以下[describe-launch-configurations](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-launch-configurations.html)命令查看启动配置的详细信息。

  ```
  aws autoscaling describe-launch-configurations --launch-configuration-names my-asg-from-instance
  ```

  下面是示例输出：

  ```
  {
    "LaunchConfigurations":[
      {
        "LaunchConfigurationName":"my-asg-from-instance",
        "LaunchConfigurationARN":"arn",
        "ImageId":"ami-234567890abcdefgh",
        "KeyName":"my-key-pair-uswest2",
        "SecurityGroups":[
          "sg-12abcdefgh3456789"
        ],
        "ClassicLinkVPCSecurityGroups":[ ],
        "UserData":"",
        "InstanceType":"t2.micro",
        "KernelId":"",
        "RamdiskId":"",
        "BlockDeviceMappings":[ ],
        "InstanceMonitoring":{
          "Enabled":true
        },
        "CreatedTime":"2020-10-28T02:39:22.321Z",
        "EbsOptimized":false,
        "AssociatePublicIpAddress":true
      }
    ]
  }
  ```

**终止实例**
+ 如果您不再需要实例，可终止它。以下 [terminate-instances](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/terminate-instances.html) 命令可终止实例`i-123456789abcdefg0`。

  ```
  aws ec2 terminate-instances --instance-ids i-123456789abcdefg0
  ```

  终止 Amazon EC2 实例后，您无法重新启动实例。终止后，卷上的数据都不复存在，并且再也不能附加到任何实例。要了解有关终止实例的更多信息，请参阅《Amazon EC2 用户指南》**中的[终止实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#terminating-instances-console)。