负载均衡器、健康检查和自动缩放器应如何处理激增?

负载均衡器、健康检查和自动缩放器应如何处理激增?

我有一项服务,如下所示: Internet -> 负载均衡器 -> 实例

我的服务中似乎发生了以下情况:

  1. 大量用户流量涌入,超出了当前实例的处理能力。

  2. 负载均衡器进行健康检查,并发现由于实例超载而导致检查失败。

  3. 负载平衡器会触发终止故障实例并用新实例替换它们。它会检测整个集群的高 CPU 使用率,并创建比以前更多的实例。

  4. 现在没有任何实例可以处理任何请求,并且服务完全瘫痪,直到新实例准备就绪为止。

显然,这是一个糟糕的状况。我们应该怎么做呢?

所涉及的工具是 AWS ECS Fargate 和 AWS Application Load Balancer。配置选项似乎主要包括调整各种值,而不会改变行为。

健康检查非常简单,只需加载一个静态文件即可。它基本上可以测量每个实例中的 Web 服务器是处于活动状态还是已停止活动。

自动缩放器设置为测量 CPU 负载并在 30 秒内扩大规模。

我不知道如何使用这套工具来改进架构。有没有更好的方法?

我认为从概念层面来说,我所追求的是所谓的“服务质量”,即单个用户不能干扰其他用户的可用性。这有点类似于防御 DDOS,只是流量是合法的。

相关内容