使用现有实例的参数创建 Auto Scaling 组 - Amazon EC2 Auto Scaling
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用现有实例的参数创建 Auto Scaling 组

重要

我们为尚未从启动配置迁移到启动模板的客户提供有关启动配置的信息。有关为自动扩缩组创建启动模板的更多信息,请参阅 迁移到启动模板

如果这是您第一次创建 Auto Scaling 组,我们建议您使用控制台从现有 EC2 实例创建启动模板。然后使用启动模板创建新的 Auto Scaling 组。有关此步骤,请参阅 使用 Amazon EC2 启动向导创建 Auto Scaling 组

以下程序演示了如何通过如下方法创建 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 会使用其默认设置。有关更多信息,请参阅 配置实例元数据选项

  • 负载均衡器:如果识别的实例适用一个或多个负载均衡器进行注册,则有关负载均衡器的信息不会复制到负载均衡器或新 Auto Scaling 组的目标组属性。

  • 标签:如果识别的实例有标签,标签不会复制到新 Auto Scaling 组的 Tags 属性。

先决条件

EC2 实例必须符合以下标准:

  • 实例不是其他 Auto Scaling 组的成员。

  • 实例处于 running 状态。

  • 用于启动实例的 AMI 必须仍然存在。

从 EC2 实例创建 Auto Scaling 组 (控制台)

从 EC2 实例创建 Auto Scaling 组 ()
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格上的 Instances(实例)下,选择 Instances(实例),然后选择一个实例。

  3. 依次选择操作实例设置附加到 Auto Scaling 组

  4. 附加到 Auto Scaling 组页面上,为 Auto Scaling 组,输入组名称,然后选择附加

    连接实例后,将其视为 Auto Scaling 组的一部分。将使用新的启动配置和为 Auto Scaling 组指定的相同名称创建新的 Auto Scaling 组。Auto Scaling 组的所需容量和最大容量为 1

  5. (可选)要编辑 Auto Scaling 组的设置,请在导航窗格的 Auto Scaling 下,选择 Auto Scaling Groups(Auto Scaling 组)。选中新 Auto Scaling 组旁边的复选框,选择组列表上方的编辑按钮,根据需要更改设置,然后选择更新

从 EC2 实例创建 Auto Scaling 组 (Amazon CLI)

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

此程序不会将实例添加到 Auto Scaling 组中。要连接实例,必须在创建 Auto Scaling 组之后运行 attach-instances 命令。

开始之前,请使用 Amazon EC2 控制台或 describe-instances 命令查找 EC2 实例的 ID。

将当前实例用作模板
  • 使用以下create-auto-scaling-group命令从 EC2 实例创建 Auto Scaling 组i-0e69cc3f05f825f4fmy-asg-from-instance

    aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg-from-instance \ --instance-id i-0e69cc3f05f825f4f --min-size 1 --max-size 2 --desired-capacity 2
验证 Auto Scaling 组已启动实例
  • 使用以下describe-auto-scaling-groups命令验证 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-06905f55584de02da", "InstanceType":"t2.micro", "AvailabilityZone":"us-west-2a", "LifecycleState":"InService", "HealthStatus":"Healthy", "LaunchConfigurationName":"my-asg-from-instance", "ProtectedFromScaleIn":false }, { "InstanceId":"i-087b42219468eacde", "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-6bea5f06", "EnabledMetrics":[ ], "Tags":[ ], "TerminationPolicies":[ "Default" ], "NewInstancesProtectedFromScaleIn":false, "ServiceLinkedRoleARN":"arn", "TrafficSources":[] } ] }
查看启动配置
  • 使用以下describe-launch-configurations命令查看启动配置的详细信息。

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

    下面是示例输出:

    { "LaunchConfigurations":[ { "LaunchConfigurationName":"my-asg-from-instance", "LaunchConfigurationARN":"arn", "ImageId":"ami-0528a5175983e7f28", "KeyName":"my-key-pair-uswest2", "SecurityGroups":[ "sg-05eaec502fcdadc2e" ], "ClassicLinkVPCSecurityGroups":[ ], "UserData":"", "InstanceType":"t2.micro", "KernelId":"", "RamdiskId":"", "BlockDeviceMappings":[ ], "InstanceMonitoring":{ "Enabled":true }, "CreatedTime":"2020-10-28T02:39:22.321Z", "EbsOptimized":false, "AssociatePublicIpAddress":true } ] }
终止实例
  • 如果您不再需要实例,可终止它。以下 terminate-instances 命令可终止实例i-0e69cc3f05f825f4f

    aws ec2 terminate-instances --instance-ids i-0e69cc3f05f825f4f

    终止 Amazon EC2 实例后,您无法重新启动实例。终止后,卷上的数据都不复存在,并且再也不能附加到任何实例。要了解有关终止实例的更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的终止实例