当虚拟主机连接数过多时生成新 EC2 服务器的策略

当虚拟主机连接数过多时生成新 EC2 服务器的策略

我正在 EC2 上构建基础设施,其中我将 nginx 作为 apache+php 服务器前面的负载均衡器。每个 apache 服务器都有一些虚拟主机。

我正在考虑当虚拟主机收到太多请求而无法处理时最好的扩展方法。

我想我可以限制每个虚拟主机的连接数,比如说 100 个,然后当连接数超过 100 个时,我会创建一个新实例(使用 ruby​​ 和 fog gem)并在该实例上配置另一个虚拟主机,使用新实例的 IP 在 nginx 平衡器中添加另一个后端。

这是可行的方法吗?或者您有什么建议?

答案1

这就像扩展物理硬件时一样需要平衡。专注于单一指标来决定何时生成新实例可能毫无帮助。

任意限制 100 个连接可能远低于实例实际能够处理的数量,因此您将在计算能力上花费过多。另一方面,您的实例在达到该点之前可能会因 RAM/CPU 或 I/O 而阻塞。

您应该了解一下 AWS 自动扩展功能。这将允许您设置策略,这些策略将在指定的硬限制内并基于大量 Cloud Watch 指标自动扩展和收缩计算集群。您需要使用 API 设置适当的策略,然后根据负载和预算观察和调整它们。

相关内容