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

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

重要

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

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

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

以下配置详细信息会从已识别的实例复制到启动配置中:

  • AMI ID

  • 实例类型

  • 密钥对

  • 安全组

  • IP 地址类型(公有或私有)

  • IAM 实例配置文件(如果适用)

  • 监控(true 或 false)

  • EBS 优化(true 或 false)

  • 租期设置 (如果在 VPC (共享或专用) 中启动)

  • 内核 ID 和 RAM 磁盘 ID (如果适用)

  • 用户数据,如果指定

  • Spot(最高)价格

不会从已识别实例中复制以下配置详细信息,

  • 存储:不会从已识别的实例中复制块储存设备(EBS 卷和实例存储卷)。相反,作为创建 AMI 的一部分而创建的块储存设备映射决定了使用哪些设备。

  • 网络接口数量:网络接口未从已识别的实例中复制。相反,Amazon EC2 Auto Scaling 会使用其默认设置创建一个网络接口,即主网络接口 (eth0)。

  • 实例元数据选项:不会从已识别的实例中复制元数据可访问、元数据版本和令牌响应跃点数限制设置。相反,Amazon EC2 Auto Scaling 会使用其默认设置。有关更多信息,请参阅 配置实例元数据选项

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

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

新的 Auto Scaling 组将实例启动到已识别实例所在的同一可用区、VPC 和子网中。

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

先决条件

开始之前,请使用 Amazon EC2 控制台或 describe-instances 命令 (Amazon CLI) 查找 EC2 实例的 ID。EC2 实例必须符合以下标准:

  • 实例位于要创建 Auto Scaling 组的子网和可用区中。

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

  • 实例处于 running 状态。

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

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

在本练习中,我们演示如何使用 Amazon CLI。控制台不提供从 EC2 实例创建 Auto Scaling 组的选项,除非您也将该实例连接到 Auto Scaling 组(如 限制 中所述)。

将当前实例用作模板

  • 请使用以下 create-auto-scaling-group 命令从 EC2 实例 i-0e69cc3f05f825f4f 创建 Auto Scaling 组,my-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" } ] }

查看启动配置

  • 请使用以下 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 用户指南中的终止实例

限制

此程序不会将实例添加到 Auto Scaling 组中。要从正在运行的实例创建 Auto Scaling 组,同时将该实例添加到可以作为其一部分进行管理的 Auto Scaling 组,请参阅 将 EC2 实例附上 Auto Scaling 组。