Application Auto Scaling 计划扩展的工作原理
本主题描述了计划扩展的工作原理,并介绍了要有效使用它所需了解的关键考虑事项。
工作方式
要使用计划扩缩,请创建指示 Application Auto Scaling 在特定时间执行扩缩活动的计划操作。创建计划的操作时,请指定可扩展目标、应进行扩缩活动的时间以及最小和最大容量。您可以创建仅扩展一次或按重复计划扩展的计划操作。
在指定的时间,Application Auto Scaling 通过将当前容量与指定的最小容量和最大容量进行比较,根据新容量值进行扩展。
-
如果当前容量小于指定的最小容量,Application Auto Scaling 将横向扩展(增加容量)到指定的最小容量。
-
如果当前容量大于指定的最大容量,Application Auto Scaling 将横向缩减(减少容量)到指定的最大容量。
注意事项
创建计划的操作时,请记住以下内容:
-
计划操作将
MinCapacity
和MaxCapacity
设置为由计划操作在指定的日期和时间指定的内容。请求可以选择只包含这些大小中的一个。例如,您可以创建仅指定最小容量的计划操作。但是,在某些情况下,您必须包括两种大小,以确保新的最小容量不大于最大容量,或者新的最大容量不小于最小容量。 -
预设情况下,您设置的重复计划采用协调世界时 (UTC)。您可以更改时间以符合本地时区或您的网络中其他部分的时区。如果您指定的时区遵守夏令时,则操作会自动调整夏令时 (DST)。有关更多信息,请参阅 使用 Application Auto Scaling 安排重复性扩展操作。。
-
您可以临时关闭可扩展目标的计划扩缩。这有助于防止计划操作处于活动状态,而无需将其删除。然后,当您想要再次使用时,您可以恢复计划的扩展。有关更多信息,请参阅 暂停和恢复 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 将 AWS 或自定义资源注册为可扩展目标(Application Auto Scaling 可以扩展的资源),并暂停和恢复扩缩。
-
put-scheduled-action 可添加或修改现有可扩展目标的计划操作。
-
describe-scaling-activities 可返回关于 AWS 区域中扩缩活动的信息。
-
describe-scheduled-actions 可返回关于 AWS 区域中计划操作的信息。
-
delete-scheduled-action 可删除计划的操作。
相关资源
有关使用计划扩缩的详细示例,请参阅 AWS 计算博客上的博客文章计划 AWS Lambda 预置并发性以实现重复使用峰值
有关为自动扩缩组创建计划操作的信息,请参阅《Amazon EC2 Auto Scaling 用户指南》中的 Amazon EC2 Auto Scaling 的计划扩缩。
限制
以下是使用计划的扩缩时的限制:
-
每个可扩展目标的计划操作的名称必须是唯一的。
-
Application Auto Scaling 不在计划表达式中提供二级精度。使用 Cron 表达式的最高解析精度是一分钟。
-
可扩展目标不能是 Amazon MSK 集群。Amazon MSK 不支持计划的扩缩。
-
在可扩展资源上查看、添加、更新或移除计划操作的控制台访问权限取决于您使用的资源。有关更多信息,请参阅 可以与 Application Auto Scaling 结合使用的 AWS 服务。