我正在使用Amazon CloudWatch服务来管理一组EC2实例。更确切地说,当警报从OK更改为ALARM状态时,我执行AutoScaling操作。
请考虑以下示例:当SQS队列长度连续5分钟小于1时,会有一个缩减操作终止一个实例。想象一下,有5个实例正在运行,然后发出警报,我们有4个正在运行的实例。但!我希望CloudWatch在处于警报状态时继续执行我的操作!我希望有3个,然后是2个,然后只有一个实例,当我无需处理时。
我尝试了另一种方法:在自动缩放操作后立即将警报状态重置为INSUFFICIENT_DATA。这样我可以有效地将我的池缩减为一个实例,但随后整个系统陷入'无限循环':我将状态更改为INSUFFICIENT_DATA,然后亚马逊立即再次发出警报,然后我改变状态等等。
所以,我想要:亚马逊在有警报状态时重复我的警报动作或者有一些警报的冷却时间,以防止亚马逊在状态改变后立即上升。
请帮我找到解决问题的正确方法。
答案 0 :(得分:1)
触发警报时,自动调节将根据您的自动调整策略进行调整。但是,它还会锁定自动缩放组,以便在该时间范围内不接受任何其他缩放请求。
一旦资源被配置/取消配置,则自动缩放冷却期开始,在此期间它不会接受任何其他云计算触发器。冷却期结束后,即可接受来自Cloudwatch警报的任何新扩展请求。
详细解释了整个过程here。
...所以
您真正想要的是自动缩放不停地响应云观察报警。换句话说,您不希望有冷却期,或者您希望冷却期为零。默认的冷却时间为300秒。您可以将自动缩放策略配置为零冷却时间,以便将实例数从5减少到4到3到2到1 ...等,前提是警报在该时间段内保持活动状态。
单击here以获取可配置冷却期的命令。
将冷静降至零会有什么影响?嗯,我不知道,但从技术上/理论上来说,这是你非常期待的。