Application Auto Scaling 的计划扩缩
根据计划扩缩使您可以按照可预测的负载变化来设置您自己的扩缩计划。例如,假设您的 Web 应用程序的流量会在每周的星期三开始增加,并在星期四保持高流量状态,然后在星期五开始下降。您可以配置 Application Auto Scaling 的计划,以在星期三增加容量并在星期五减少容量。
要使用计划的扩缩,请创建指示 Application Auto Scaling 在特定时间执行扩缩活动的计划操作。创建计划的操作时,请指定可扩展目标、应进行扩缩活动的时间以及最小和最大容量。您可以创建仅扩展一次或按重复计划扩展的计划操作。
在指定的时间,Application Auto Scaling 通过将当前容量与指定的最小容量和最大容量进行比较,根据新容量值进行扩展。
-
如果当前容量小于指定的最小容量,Application Auto Scaling 将横向扩展(增加容量)到指定的最小容量。
-
如果当前容量大于指定的最大容量,Application Auto Scaling 将横向缩减(减少容量)到指定的最大容量。
您可以在同一资源上同时使用计划的扩缩和扩缩策略,以获得两者的好处。运行计划的操作后,扩缩策略可以继续决定是否进一步扩展容量。这有助于确保您有足够的容量来处理应用程序的负载。当您的应用程序扩展以满足需求时,当前容量必须在计划操作设置的最小容量和最大容量范围内。
有关使用计划扩缩的详细示例,请参阅 Amazon 计算博客上的博客文章计划 Amazon Lambda 预置并发性以实现重复使用峰值
注意事项
创建计划的操作时,请记住以下内容:
-
计划操作将
MinCapacity
和MaxCapacity
设置为由计划操作在指定的日期和时间指定的内容。请求可以选择只包含这些大小中的一个。例如,您可以创建仅指定最小容量的计划操作。但是,在某些情况下,您必须包括两种大小,以确保新的最小容量不大于最大容量,或者新的最大容量不小于最小容量。 -
预设情况下,您设置的重复计划采用协调世界时 (UTC)。您可以更改时间以符合本地时区或您的网络中其他部分的时区。如果您指定的时区遵守夏令时,则操作会自动调整夏令时 (DST)。有关更多信息,请参阅使用 cron 表达式安排重复发生的扩缩操作。
-
您可以临时关闭可扩展目标的计划扩缩。这有助于防止计划操作处于活动状态,而无需将其删除。然后,当您想要再次使用时,您可以恢复计划的扩展。有关更多信息,请参阅暂停和恢复 Application Auto Scaling 的扩缩。
-
将会保证同一可扩展目标的计划操作运行顺序,但不保证不同可扩展目标中的计划操作的执行顺序。
-
要成功完成计划操作,目标服务中的指定资源必须位于可扩展状态。如果不是此状态,则请求将会失败,并返回错误消息,例如:
Resource Id [ActualResourceId] is not scalable. Reason: The status of all DB instances must be 'available' or 'incompatible-parameters'
。 -
由于 Application Auto Scaling 和目标服务的分布式特性,计划操作触发时间与目标服务实际执行扩缩操作的时间之间的延迟可能有几秒钟。因为系统将按照指定操作的顺序来运行计划的操作,所以开始时间彼此接近的计划操作可能需要更长时间才能运行。
计划操作创建、管理和删除的常用命令
使用计划扩缩的常用命令包括:
-
register-scalable-target 将 Amazon 或自定义资源注册为可扩展目标(Application Auto Scaling 可以扩展的资源),并暂停和恢复扩缩。
-
put-scheduled-action 可添加或修改现有可扩展目标的计划操作。
-
describe-scaling-activities 可返回关于 Amazon 区域中扩缩活动的信息。
-
describe-scheduled-actions 可返回关于 Amazon 区域中计划操作的信息。
-
delete-scheduled-action 可删除计划的操作。
限制
以下是使用计划的扩缩时的限制:
-
每个可扩展目标的计划操作的名称必须是唯一的。
-
Application Auto Scaling 不在计划表达式中提供二级精度。使用 Cron 表达式的最高解析精度是一分钟。
-
可扩展目标不能是 Amazon MSK 集群。Amazon MSK 不支持计划的扩缩。