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

将 EC2 实例附上 Auto Scaling 组。

Amazon EC2 Auto Scaling 提供将一个或多个 EC2 实例附加到现有 Auto Scaling 组的选项。附加实例后,将其视为 Auto Scaling 组的一部分。

对于要附加的实例,必须满足以下条件:

  • 该实例通过 Amazon EC2 处于 running 的状态。

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

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

  • 实例会启动到您的 Auto Scaling 组中定义的某个可用区。

  • 如果 Auto Scaling 组具有附加的负载均衡器目标组,则实例和负载均衡器必须都位于同一 VPC 中。如果 Auto Scaling 组附加 Classic Load Balancer,则实例和该负载均衡器必须都位于 EC2-Classic 或同一 VPC 中。

当您附加实例时,该组的所需容量将增加要附加的实例数。如果要附加的实例数加上所需容量超过组的最大大小,请求将失败。

如果您将实例附加到已附加负载均衡器目标组或 Classic Load Balancer 的 Auto Scaling 组,则会将实例注册到该负载均衡器。

这些示例使用具有以下配置的 Auto Scaling 组:

  • Auto Scaling 组名称 = my-asg

  • 最小大小 = 2

  • 最大大小 = 5

  • 所需容量 = 2

  • 可用区 = us-west-2a

附加实例(控制台)

您可以将现有实例附加到现有 Auto Scaling 组或在创建时附加到新的 Auto Scaling 组。

将实例附上新 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 组。启动配置从所附加的实例获取其设置(例如,安全组和 IAM 角色)。Auto Scaling 组从所附加的实例获取设置(例如,可用区和子网),并且有所需的容量和最大大小 1

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

要将实例附上现有的 Auto Scaling 组

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. (可选)在导航窗格上的 AUTO SCALING 下,选择 Auto Scaling Groups(Auto Scaling 组)。选择 Auto Scaling 组并验证 Auto Scaling 组的最大大小足以再添加一个实例。否则,在 Details(详细信息)选项卡上,增加最大容量。

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

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

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

  6. 如果实例不符合条件,则会显示一条错误消息并提供详细信息。例如,实例可能没有位于与 Auto Scaling 组相同的可用区中。选择 Close(关闭)并使用符合条件的实例重试。

附加实例(Amazon CLI)

要将实例附上某个 Auto Scaling 组

  1. 使用 describe-auto-scaling-groups 命令描述特定的 Auto Scaling 组。

    aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names my-asg

    以下示例响应显示所需的容量为 2,并且组具有两个正在运行的实例。

    { "AutoScalingGroups": [ { "AutoScalingGroupARN": "arn", "ServiceLinkedRoleARN": "arn", "TargetGroupARNs": [], "SuspendedProcesses": [], "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "Tags": [], "EnabledMetrics": [], "LoadBalancerNames": [], "AutoScalingGroupName": "my-asg", "DefaultCooldown": 300, "MinSize": 1, "Instances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "HealthStatus": "Healthy", "LifecycleState": "Pending" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0c20ac468fa3049e8", "HealthStatus": "Healthy", "LifecycleState": "InService" } ], "MaxSize": 5, "VPCZoneIdentifier": "subnet-c87f2be0", "HealthCheckGracePeriod": 300, "TerminationPolicies": [ "Default" ], "CreatedTime": "2019-03-18T23:30:42.611Z", "AvailabilityZones": [ "us-west-2a" ], "HealthCheckType": "EC2", "NewInstancesProtectedFromScaleIn": false, "DesiredCapacity": 2 } ] }
  2. 使用 attach-instances 命令将实例附加到 Auto Scaling 组。

    aws autoscaling attach-instances --instance-ids i-0787762faf1c28619 --auto-scaling-group-name my-asg
  3. 要验证是否已附加实例,请使用如下的 describe-auto-scaling-groups 命令。

    aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names my-asg

    下面的示例响应显示所需容量已增加了 1 个实例(达到新容量 3),并且有一个新实例 i-0787762faf1c28619

    { "AutoScalingGroups": [ { "AutoScalingGroupARN": "arn", "ServiceLinkedRoleARN": "arn", "TargetGroupARNs": [], "SuspendedProcesses": [], "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "Tags": [], "EnabledMetrics": [], "LoadBalancerNames": [], "AutoScalingGroupName": "my-asg", "DefaultCooldown": 300, "MinSize": 1, "Instances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "HealthStatus": "Healthy", "LifecycleState": "Pending" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0c20ac468fa3049e8", "HealthStatus": "Healthy", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0787762faf1c28619", "HealthStatus": "Healthy", "LifecycleState": "InService" } ], "MaxSize": 5, "VPCZoneIdentifier": "subnet-c87f2be0", "HealthCheckGracePeriod": 300, "TerminationPolicies": [ "Default" ], "CreatedTime": "2019-03-18T23:30:42.611Z", "AvailabilityZones": [ "us-west-2a" ], "HealthCheckType": "EC2", "NewInstancesProtectedFromScaleIn": false, "DesiredCapacity": 3 } ] }