1

我正在使用 Amazon CloudWatch 服务来管理一组 EC2 实例。更准确地说,当警报从 OK 变为 ALARM 状态时,我会执行 AutoScaling 操作。

考虑以下示例:当 SQS 队列长度连续 5 分钟小于 1 时,有一个缩减操作终止一个实例。假设有 5 个实例正在运行,然后警报响起,我们有 4 个正在运行的实例。但!我希望 CloudWatch 在我处于警报状态时继续执行我的操作!我想要 3 个,然后是 2 个,然后只有一个实例,当我没有什么要处理的时候。

我尝试了另一种方法:在自动缩放操作后立即将警报状态重置为 INSUFFICIENT_DATA。这样我可以有效地将我的池缩减为一个实例,但随后整个系统陷入“无限循环”:我将状态更改为 INSUFFICIENT_DATA,然后亚马逊立即再次发出警报,然后我更改状态等等。

所以,我想要:亚马逊在有警报状态时重复我的警报动作,或者有一些警报冷却时间,以防止亚马逊在状态改变后立即升高它。

请帮助我找到解决我的问题的正确方法。

4

1 回答 1

1

触发警报时,自动缩放将根据您的自动缩放策略进行缩放。但是,它还将锁定自动缩放组,以便在该时间范围内不会接受任何其他缩放请求。

配置/取消配置资源后,自动缩放冷却期开始,在此期间它不会接受任何其他 cloudwatch 触发器。一旦冷却期结束,它就可以接受来自 Cloudwatch 警报的任何新的扩展请求。

这整个过程在这里详细解释。

所以....

您本质上想要的是让自动缩放能够不间断地响应 cloudwatch 警报。换句话说,您不希望有冷却期,或者您希望冷却期为零。默认冷却时间为 300 秒。您可以将自动扩展策略配置为零冷却期,以便它将实例数量从 5 减少到 4 到 3 到 2 到 1 ...等,前提是警报在该时间段内保持活动状态。

点击这里查看可以配置冷却时间的命令。

将冷却时间设为零有什么影响?好吧,我不知道,但从技术上/理论上讲,这是您所期待的。

于 2013-12-06T17:52:35.590 回答