Amazon EC2 Auto Scaling 的手动扩缩 - Amazon EC2 Auto Scaling
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon EC2 Auto Scaling 的手动扩缩

您可以随时手动更改现有 Auto Scaling 组的大小。您可以更新 Auto Scaling 组的所需容量,或更新附加到 Auto Scaling 组的实例。当不需要自动扩展或需要将容量保持为固定数量的实例时,手动扩展组非常有用。

更改 Auto Scaling 组的大小(控制台)

在更改 Auto Scaling 组的所需容量时,Amazon EC2 Auto Scaling 将管理启动或终止实例的过程以维护新的组大小。

以下示例假设您创建了一个最小大小为 1,最大大小为 5 的 Auto Scaling 组。因此,该组目前正在运行的实例是 1 个。

要更改 Auto Scaling 组的大小
  1. 访问 https://console.aws.amazon.com/ec2/,打开 Amazon EC2 控制台,然后从导航窗格中选择 Auto Scaling Groups(Auto Scaling 组)。

  2. 选中您的 Auto Scaling 组旁边的复选框。

    这时将在 Auto Scaling groups(Auto Scaling 组)页面底部打开一个拆分窗格。

  3. Details(详细信息)选项卡上,选择 Group details(组详细信息)、Edit (编辑)

  4. 对于 Desired capacity(所需容量),请将所需容量增加一。例如,如果当前值是 1,请输入 2

    理想容量必须小于或等于组的最大容量。如果 Desired capacity(所需容量)的新值大于 Maximum capacity(最大容量),则必须更新 Maximum capacity(最大容量)。

  5. 完成后,选择 Update(更新)。

接下来,验证 Auto Scaling 组是否已另外启动一个实例。

要验证 Auto Scaling 组的容量是否已更改
  1. Activity(活动)选项卡上的 Activity history(活动历史状态)中,Status(状态)列显示实例的当前状态。使用刷新按钮,直到您看到实例的状态更改为 Successful (成功)。这表明您的 Auto Scaling 组已成功启动新实例。

    注意

    如果实例无法启动,您可以在Amazon EC2 Auto Scaling 问题排查中找到问题排查提示。

  2. Instance management (实例管理) 选项卡的 Instances (实例) 中,Lifecycle (生命周期) 列显示实例的状态。启动实例只需很短的时间。实例启动后,其状态将更改为 InService。您可以看到 Auto Scaling 组启动了 1 个新实例,并且实例处于 InService 状态。

更改 Auto Scaling 组的大小(Amazon CLI)

更改 Auto Scaling 组的大小时,Amazon EC2 Auto Scaling 将管理启动或终止实例的过程以维护新的组大小。默认行为是不等待默认冷却时间完成,但您可以覆盖默认设置并等待冷却时间完成。有关更多信息,请参阅Amazon EC2 Auto Scaling 的缩放冷却时间

以下示例假设您创建了一个最小大小为 1,最大大小为 5 的 Auto Scaling 组。因此,该组目前正在运行的实例是 1 个。

要更改 Auto Scaling 组的大小

使用 set-desired-capacity 命令更改 Auto Scaling 组的大小,如下面的示例所示。

aws autoscaling set-desired-capacity --auto-scaling-group-name my-asg \ --desired-capacity 2

如果您选择遵守 Auto Scaling 组的默认冷却时间,必须指定 –-honor-cooldown 选项,如下面的示例所示。

aws autoscaling set-desired-capacity --auto-scaling-group-name my-asg \ --desired-capacity 2 --honor-cooldown
验证 Auto Scaling 组的大小

使用 describe-auto-scaling-groups 命令确认已更改 Auto Scaling 组的大小,如下面的示例所示。

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

以下是示例输出,包含关于组和已启动实例的详细信息。

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

注意 DesiredCapacity 显示了新值。Auto Scaling 组已启动另一个实例。