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

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

使用 EC2 实例创建 Auto Scaling 组

创建 Auto Scaling 组可能需要您首先配置和配置 Amazon EC2 实例。例如,您可能需要测试一切按您预期的方式运行。创建 EC2 实例需要多个属性,例如 AMI ID、实例类型、key pair 和安全组。Amazon EC2 Auto Scaling 还要求提供所有这些信息,以便在需要扩展时代表您启动实例。此信息存储在启动模板或启动配置中。

您可以通过三种方式之一使用现有 EC2 实例创建 Auto Scaling 组。

  • 从现有 EC2 实例创建启动模板。然后使用启动模板创建新 Auto Scaling 组。有关此过程,请参阅从现有实例创建启动模板(控制台).

  • 使用控制台从运行中的 EC2 实例创建 Auto Scaling 组。执行此操作时,Amazon EC2 Auto Scaling 将为您创建启动配置,并将其与 Auto Scaling 组关联。如果您希望将实例添加到新的 Auto Scaling 组中,在该组中可以由 Amazon EC2 自动扩展管理该实例,则此方法可以很好地运行。有关更多信息,请参阅 将 EC2 实例附加到 Auto Scaling 组

  • 在创建 Auto Scaling 组的 API 调用中指定现有 EC2 实例的 ID。此方法是以下过程的主题。

当您指定现有实例的 ID 时,Amazon EC2 Auto Scaling 将为您创建启动配置并将其与 Auto Scaling 组关联。此启动配置的名称与 Auto Scaling 组相同,同时它从指定的实例派生其属性,包括 AMI ID、实例类型、key pair 和安全组。块储存设备来自用于启动实例的 AMI,而不是来自实例。

限制和先决条件

以下是使用以下过程从 EC2 实例创建 Auto Scaling 组的限制条件:

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

  • Auto Scaling 组包括 AMI 的块储存设备映射,用来启动实例。它不包括在实例启动后附加的任何块储存设备。

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

在开始之前,请使用 Amazon EC2 控制台或描述实例命令 (Amazon CLI)。EC2 实例必须符合以下标准:

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

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

  • 实例处于 running 状态。

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

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

下面的示例演示如何使用Amazon CLI从 EC2 实例创建 Auto Scaling 组。

从 EC2 实例创建 Auto Scaling 组的步骤

  • 使用以下create-auto-scaling-group命令创建 Auto Scaling group (Auto Scaling group)my-asg-from-instance,从 EC2 实例i-0e69cc3f05f825f4f.

    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 组是否已启动实例

  • 使用以下Auto Scaling group命令验证是否已成功创建 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" } ] }

查看启动配置

  • 使用以下描述启动配置命令查看启动配置的详细信息。

    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 } ] }

终止实例

  • 如果不再需要实例,可以终止该实例。以下终止实例命令终止实例i-0e69cc3f05f825f4f.

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

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