Auto Scaling
用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

计划的扩展

按时间表定期扩展,使您得以按照可预测的负载变化来扩展应用程序。例如,您的 Web 应用程序的流量会在每周的星期三开始增加,并在星期四保持高流量状态,然后在星期五开始下降。您可以根据 Web 应用程序的可预测流量模式来计划扩展活动。

要配置您的 Auto Scaling 组来根据计划进行扩展,您需要创建计划操作,用以告知 Auto Scaling 在指定的时间执行扩展操作。要创建计划的扩展操作,请指定希望扩展操作生效的开始时间,以及用于扩展操作的新的最小大小、最大大小和所需大小。在指定的时间,Auto Scaling 将用扩展操作指定的最小大小、最大大小和所需大小值来更新组。

您可以创建仅用于一次扩展的预先计划操作,或者创建用于按经常性计划进行扩展的预先计划操作。

计划的操作的注意事项

创建计划的操作时,请记住以下内容。

  • Auto Scaling 可以保证同组内计划操作的执行顺序正确,但不保证跨组的计划操作的执行顺序正确。

  • 计划操作的执行时间一般为几秒钟。然而,该操作可能会比计划的开始时间延迟最多两分钟。因为 Auto Scaling 将按照指定操作的顺序来执行 Auto Scaling 组内的操作,所以计划开始时间彼此接近的计划操作可能需要更长时间才能执行。

  • 您最多可以为每个 Auto Scaling 组创建 125 个计划的操作。

  • 计划的操作必须具有唯一时间值。如果您尝试计划在某个时间进行活动,但另一个扩展活动已计划占用该时间,系统将拒绝该请求,并向您发送关于该冲突的出错消息。

  • 不支持冷却时间。

使用控制台创建计划的操作

完成以下过程可创建计划的操作以扩展您的 Auto Scaling 组。

创建计划的操作

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格上的 Auto Scaling 下,选择 Auto Scaling Groups

  3. 选择您的 Auto Scaling 组。

  4. Scheduled Actions 选项卡上,选择 Create Scheduled Action

  5. Create Scheduled Action 页面上,执行以下操作:

    • 使用 MinMaxDesired Capacity 中的至少一项来指定组的大小。

    • Recurrence 选择一个选项。如果您选择 Once,则 Auto Scaling 将在指定的时间执行操作。如果您选择 Cron,请键入一个 Cron 表达式,此表达式指定 Auto Scaling 执行操作的时间(采用 UTC 时间)。如果您选择以 Every 开头的选项,则将为您创建 Cron 表达式。

    • 如果您为 Recurrence 选择了 Once,则在 Start Time 中指定操作的时间。

    • 如果您指定了重复计划,则可以为 Start TimeEnd Time 指定值。如果您指定开始时间,Auto Scaling 会在该时间执行操作,然后根据重复计划执行操作。如果您指定结束时间,Auto Scaling 在该时间后不执行操作。

  6. 选择 Create

更新计划的操作

如果您的需求发生变化,则可更新计划的操作。

更新计划的操作

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格上的 Auto Scaling 下,选择 Auto Scaling Groups

  3. 选择您的 Auto Scaling 组。

  4. Scheduled Actions 选项卡上,选择计划的操作。

  5. 选择 ActionsEdit

  6. Edit Scheduled Action 页面上,执行以下操作:

    • 使用 MinMaxDesired Capacity 根据需要更新组的大小。

    • 根据需要更新指定的重复。

    • 根据需要更新开始时间和结束时间。

    • 选择 Save

使用 AWS CLI 创建或更新计划的操作

您可以创建仅用于一次扩展的计划,或者按重复的时间表进行扩展。

仅计划一次扩展的步骤

要在特定时间(使用 UTC 的“YYYY-MM-DDThh:mm:ssZ”格式表示)增加您的 Auto Scaling 组中正在运行的实例数量,请使用以下 put-scheduled-update-group-action 命令:

Copy
aws autoscaling put-scheduled-update-group-action --scheduled-action-name ScaleUp --auto-scaling-group-name my-asg --start-time "2013-05-12T08:00:00Z" --desired-capacity 3

要在特定时间(使用 UTC 的“YYYY-MM-DDThh:mm:ssZ”格式表示)减少您的 Auto Scaling 组中正在运行的实例数量,请使用以下 put-scheduled-update-group-action 命令:

Copy
aws autoscaling put-scheduled-update-group-action --scheduled-action-name ScaleDown --auto-scaling-group-name my-asg --start-time "2013-05-13T08:00:00Z" --desired-capacity 1

按照重复的时间表来计划扩展

您可以使用 Cron 格式以 UTC 时间指定重复时间表。有关更多信息,请参阅 Cron Wikipedia 条目。

使用以下 put-scheduled-update-group-action 命令创建一个计划的操作,该计划的操作在每年的 1 月、6 月和 12 月的第一天的 00:30 运行。

Copy
aws autoscaling put-scheduled-update-group-action --scheduled-action-name scaleup-schedule-year --auto-scaling-group-name my-asg --recurrence "30 0 1 1,6,12 0" --desired-capacity 3

删除计划的操作

完成计划的操作后,可以将其删除。

使用控制台删除计划的操作

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格上的 Auto Scaling 下,选择 Auto Scaling Groups

  3. 选择您的 Auto Scaling 组。

  4. Scheduled Actions 选项卡上,选择计划的操作。

  5. 依次选择 ActionsDelete

  6. 当系统提示进行确认时,选择 Yes, Delete

使用 AWS CLI 删除计划的操作

使用以下 delete-scheduled-action 命令:

Copy
aws autoscaling delete-scheduled-action --scheduled-action-name ScaleUp