【问题标题】:Is there a way to scale in "instance" (part of ASG ) on certain custom metric?有没有办法在某些自定义指标上扩展“实例”( ASG 的一部分)?
【发布时间】:2019-07-01 08:44:28
【问题描述】:

我正在使用 AutoScalingGroup 启动一组 EC2 实例。这些实例充当工作人员,不断监听 SQS 的任何新请求。

要求: 在吞吐量等方面进行升级(即 SQS 中存在的消息总数按实例总数)。

每当属于 ASG 的任何实例处于空闲状态 (CPUIdle) 超过 15 分钟时,我都想缩减规模。

注意:我不是在寻找任何整体适用于特定 ASG 的指标(例如:平均 CPU)。

一种方法是定义自定义指标并允许它触发 cloudwatch 警报来执行此操作。 有没有更好的方法来做到这一点?

【问题讨论】:

    标签: amazon-web-services amazon-ec2


    【解决方案1】:

    如果您在实例级别定义扩展策略,那么您就违背了 ASG 的全部目的。如果需要根据不断变化的条件(例如队列大小)进行扩展,则可以根据此处指定的条件配置 ASG

    https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-using-sqs-queue.html

    要发送到 Amazon CloudWatch 的自定义指标,用于衡量 Auto Scaling 组中每个 EC2 实例的队列中的消息数。

    一种目标跟踪策略,可将您的 Auto Scaling 组配置为根据 >自定义指标和设置的目标值进行扩展。 CloudWatch 警报调用扩展策略。

    如果您知道队列大小增加或减少的特定时间窗口,您还可以根据计划进行扩展。

    您始终可以从 ASG 中的实例计数非常低开始,然后设置所需的容量(例如 1)并根据队列进行扩展,这样您就可以继续使用 ASG 策略。

    【讨论】:

    • "如果您在实例级别定义扩展策略,那么您就违背了 ASG 的全部目的。" 我这样做是为了在请求量很高时处理大量负载,并且还想确保我不会在任何仍在工作的情况下进行扩展。我不认为按计划进行扩展对我来说是正确的方法,因为流量是不可预测的。
    • 您始终可以在自动缩放中使用连接耗尽功能,以避免在任何正在使用的实例中进行缩放。 aws.amazon.com/blogs/aws/…
    猜你喜欢
    • 1970-01-01
    • 2019-12-17
    • 2020-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-03
    • 1970-01-01
    相关资源
    最近更新 更多