可用的预热和冷却设置
为了帮助优化扩缩性能,请为您的 Auto Scaling 组选择适当的预热和冷却设置。
我们建议使用 DefaultInstanceWarmup 设置,它统一了所有预热和冷却设置。如果需要,您也可以使用 HealthCheckGracePeriod 设置。
其他可用设置不宜与 DefaultInstanceWarmup 设置同时使用。例如,已经定义了 DefaultInstanceWarmup 时将不需要 EstimatedInstanceWarmup 和 InstanceWarmup,而 DefaultCooldown 和 Cooldown 仅在使用简单扩缩策略时才需要。(作为最佳实践,我们建议您使用目标跟踪扩缩策略和步进扩缩策略,而不是简单扩缩策略。) 但我们将继续支持所有这些设置,以便您可以根据自己的使用案例选择适当的设置。
DefaultInstanceWarmup (推荐)
API 操作:CreateAutoScalingGroup、UpdateAutoScalingGroup
在新实例进入 InService 状态后,认为它已经完成初始化和资源消耗变得稳定之前所需的时间(以秒为单位)。
在实例刷新期间,Amazon EC2 Auto Scaling 在替换一个实例之后等待预热期,然后再继续替换下一个实例。Amazon EC2 Auto Scaling 也会等待预热期,然后将新实例的指标与用于扩展的 Amazon CloudWatch 指标中的现有实例聚合在一起,从而获得更加可靠的使用数据。有关更多信息,请参阅为 Auto Scaling 组设置原定设置实例预热。
如果您使用生命周期挂钩准备新的实例以供使用,则可以降低预热期的值。有关更多信息,请参阅Amazon EC2 Auto Scaling 生命周期钩子。
重要
要在组级别管理各预热设置,我们建议您设置默认实例预热,即使其值设置为 0 秒。要移除先前设置的值,请包含该属性,但应将该值指定为 -1。但我们强烈建议您通过将值指定为 0 或其他标称值来保持启用默认实例预热。
默认值:无
EstimatedInstanceWarmup
定义了 DefaultInstanceWarmup 时不需要。
API 操作:PutScalingPolicy
新启动的实例可影响 CloudWatch 指标的估计时间(以秒为单位)。此预热时间适用于因特定目标跟踪扩缩策略或步进扩缩策略启动的实例。在此处指定预热时间时,它将覆盖原定设置实例预热。有关更多信息,请参阅 目标跟踪扩缩策略 和 步进和简单扩展策略:
原定设置:如果未定义,则此参数的值默认为为该组定义的原定设置实例预热的值。如果原定设置实例预热为空,则将回退到原定设置冷却时间的值。
InstanceWarmup
定义了 DefaultInstanceWarmup 时不需要。
API 操作:StartInstanceRefresh
一段时间(以秒为单位),在此期间,在新实例进入 InService 状态后,实例刷新在继续替换下一个实例之前等待。指定启动实例刷新时的预热时间将覆盖原定设置实例预热,但仅适用于当前的实例刷新。有关更多信息,请参阅基于实例刷新替换 Auto Scaling 实例。
原定设置:如果未定义,则此参数的值默认为为该组定义的原定设置实例预热的值。如果原定设置实例预热为空,则将回退为运行状况检查宽限期的值。
DefaultCooldown
仅在使用简单扩缩策略时才需要。
API 操作:CreateAutoScalingGroup、UpdateAutoScalingGroup
从因简单扩缩策略触发的一个扩缩活动结束到另一个扩缩活动开始之间的时长(秒)。有关更多信息,请参阅Amazon EC2 Auto Scaling 的缩放冷却时间。
原定设置:300 秒。
Cooldown
仅在使用简单扩缩策略时才需要。
API 操作:PutScalingPolicy
适用于特定简单扩缩策略的冷却时间(以秒为单位)。(不再建议使用简单扩缩策略。作为最佳实践,我们建议改为目标跟踪扩缩策略和步进扩缩策略。) 在此处指定冷却时间时,它将覆盖原定设置冷却。有关更多信息,请参阅Amazon EC2 Auto Scaling 的缩放冷却时间。
默认值:无
HealthCheckGracePeriod
API 操作:CreateAutoScalingGroup、UpdateAutoScalingGroup
Amazon EC2 Auto Scaling 在检查已投入使用的 EC2 实例的运行状况,并且会因 Elastic Load Balancing 或自定义运行状况检查失败而将其标记为运行不正常之前需要等待的时间(以秒为单位)。如果您的实例在进入 InService 状态后未立即通过这些运行状况检查,则这将非常有用。有关更多信息,请参阅设置自动扩缩组的运行状况检查宽限期。
如果您为实例启动使用了生命周期钩子,则可以将运行状况检查宽限期的值设置为 0。如果您的 Auto Scaling 组位于负载均衡器后面,则应考虑向组添加生命周期钩子,以确保实例在生命周期钩子结束时注册到负载均衡器之前,已准备好提供流量。有关更多信息,请参阅Amazon EC2 Auto Scaling 生命周期钩子。
原定设置:在 Amazon Web Services Management Console 中创建的 Auto Scaling 组为 300 秒。使用 Amazon CLI 或 SDK 创建的 Auto Scaling 组为 0 秒。