【问题标题】:Repeated AWS EC2 Autoscaling重复的 AWS EC2 自动扩展
【发布时间】:2019-07-17 09:15:46
【问题描述】:

我正在研究 AWS EC2 Auto-Scaling with Cloud Watch 功能。

我无法收集的是自动缩放只能应用一次还是重复应用?不过我想只有一次。

例如如果达到 60% cpu,则从 2 到 4 最大缩放。

那么,如果从 2 变为 4,然后根据 Cloud Watch 目标规则再次达到 60% 的 cpu,我们可以再次重新应用自动缩放吗?

我看到了一个 "step" 选项,但这似乎适用于不同的目标值。该步骤是否可以重复 60% 的配置,还是需要 60、70% 等等?这方面并不完全清楚。

或者这种迭代方法根本不可能?暗示需要重新设定初始分配的基线?我认为不是基于步骤的方法。

【问题讨论】:

    标签: amazon-web-services autoscaling


    【解决方案1】:

    当您的警报超出您的阈值时,CloudWatch 警报将触发自动缩放。

    因此,如果您的策略是在整个队列的平均 CPU 超过 60% 超过 15 分钟时增加 50% 的容量,则警报将触发您的扩展组中的更改,从而增加您的“所需容量”属性的值,假设从 2 到 3 个实例。然后,自动缩放将做出反应并使车队达到“所需容量”

    如果稍后相同的警报仍然存在,则会对您的扩展组触发新的更改,从而将所需容量增加到 4。然后 AutoScaling 将创建 EC2 实例以使您的队列达到新的所需容量。

    等等。

    当然,您不希望机队规模超出预算。因此,您可以定义 MAX 队列规模,AutoScaling 永远不会超过该规模。如果您的最大机队规模为 3,则我示例中的第二个警报将保持所需容量为 (3),因为新的所需容量 > 最大容量。这将结束缩放过程。

    要恢复正常,除了横向扩展策略之外,您还必须创建横向扩展策略:即当我的队列中的平均 CPU 在 1 小时内低于 15% 时,让我们删除一个实例。您的 CloudWatch 警报将触发,导致您的队列的所需容量发生变化,并且 AutoScaling 将调整(终止实例)以达到新的所需容量值。

    当然,您不希望 AutoScaling 杀死队列中的最后一个实例(从所需容量 1 变为所需容量 0),因此,与 MAX Capacity 值类似,您还定义了 MIN 容量,即保留在您的队列中的最小实例数,无论触发什么警报并尝试更改所需容量。

    【讨论】:

    • 3 到 4 不是 50%。
    • 在您的示例中,它听起来像是基于原始基线。
    • 大约:3 到 4。3 + 50% = 4.5。从技术上讲,AutoScaling 无法创建半个实例,因此它将变为 4 或 5 个。我需要验证文档中哪个是正确的。四舍五入对您的预算更好,所以我认为这是实施的政策。等待被文档证明是错误的
    • 原始基线是您创建组时所需的容量。之后,所需的容量将发生变化。 CloudWatch 警报、API 调用或控制台都是更改所需容量的有效方法。 AutoScaling 将始终尽最大努力使您的队列规模达到所需的容量。所需容量永远不会低于最小容量或高于最大容量
    • 但我的第二点更相关。该规则保持活动状态并基于 3。然后基于 4 或 5。
    猜你喜欢
    • 2022-01-23
    • 2014-01-25
    • 2016-11-14
    • 2018-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-06
    • 2013-02-06
    相关资源
    最近更新 更多