【问题标题】:ECS autoscaling behind NLB based on request count per target基于每个目标的请求计数在 NLB 后面自动扩展 ECS
【发布时间】:2020-04-10 02:35:24
【问题描述】:

目前,我们在 ALB 后面提供 ECS 服务。我们的自动缩放基于 RequestCountPerTarget 指标 (https://aws.amazon.com/about-aws/whats-new/2017/07/application-load-balancer-adds-support-for-new-requestcountpertarget-cloudwatch-metric/)

由于我们需要将服务公开为 VPC 端点,因此我们正在考虑迁移到 NLB 而不是 ALB。使用 NLB 时是否可以根据每个目标的请求数自动缩放?

据我所知,根据 cloudwatch 文档:https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-cloudwatch-metrics.html 没有公开此类指标,但我可能遗漏了一些东西。

【问题讨论】:

    标签: amazon-web-services amazon-ecs autoscaling nlb


    【解决方案1】:

    据我所知,没有 NLB 的请求计数这样的指标。如果您想了解负载均衡器活动,可以使用 ActiveFlowCount 或 ProcessedBytes,但这并不完全相同。

    由于其他原因,我们在 ALB 前面使用 NLB(不使用容器),我可以告诉您 ActiveFlowCount 和 RequestCounts 之间存在巨大差异。

    要根据请求计数进行扩展,您可以将 NLB 设置为将其放在 ALB 前面,但您必须处理通过 Lambda 刷新的目标 IP(因为 ALB IP 不是静态的),并且您将有额外的费用。您在 AWS 博客上有完整的教程:Using static IP addresses for Application Load Balancers

    我想您有充分的理由不扩展后端容器聚合资源指标,但我认为您应该根据您的目标组指标自动扩展(您可以通过发送自定义指标进行尽可能多的调整通过 AWS API 从您的容器中获取指标)。这样,您只会在有效需要更多资源时进行扩展。

    最后,我不确定这是否对您有用,但根据文档,您可以通过 AWS PrivateLink 为您的 ECS 设置 VPC 端点:Amazon ECS Interface VPC Endpoints

    【讨论】:

    • 如此处所述,由于 NLB 运行在 TCP 层,因此无法对请求进行计数(因为它不知道 TCP 之上运行的是什么)
    猜你喜欢
    • 2020-03-03
    • 2018-07-20
    • 2021-09-17
    • 1970-01-01
    • 2021-04-22
    • 2019-12-01
    • 2012-04-21
    • 1970-01-01
    • 2022-06-14
    相关资源
    最近更新 更多