Amazon EC2 Auto Scaling
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

适用于 Amazon EC2 Auto Scaling 的计划扩展

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

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

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

您还可以针对 Application Auto Scaling 使用计划扩展。有关更多信息,请参阅 Application Auto Scaling 用户指南 中的计划扩展

计划的操作的注意事项

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

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

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

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

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

  • 不支持冷却时间。

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

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

创建计划的操作

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

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

  3. 选择您的 Auto Scaling 组。

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

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

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

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

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

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

  6. 选择 Create

更新计划的操作

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

更新计划的操作

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

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

  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 命令:

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 命令:

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 时间指定重复时间表。有关此格式的更多信息,请参阅 Crontab

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

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 (Auto Scaling 组)

  3. 选择您的 Auto Scaling 组。

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

  5. 依次选择 ActionsDelete

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

使用 AWS CLI 删除计划的操作

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

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