如何使用多台 EC2 服务器分担 Apache 流量?

如何使用多台 EC2 服务器分担 Apache 流量?

我有一台运行 Apache(上面有 WP)的 Amazon EC2 服务器。目前,我正在运行一个 t1.micro 实例 - 目前很好,但我听说如果流量很大,它就不好了 - Amazon 将 CPU 限制为短时间的突发,导致搜索引擎抓取网站时无法使用。

我相信在某个时候我会希望能够在两个实例之间分配流量 - 最好是两台或三台服务器各占一半。然而,我越想越不知道该怎么做。需要在服务器之间同步数据 - mySQL、文件夹等。另外,我使用 GoDaddy 作为我的域名,它允许我指向一个 IP - 我没有看到指向两个 IP 并共享负载的选项。

所以,我的问题是:使用 Apache、EC2 和 Godaddy,如何在两个实例之间平等地路由流量?我认为我可以处理数据同步。

答案1

虽然添加第二个 IP 可以让后续 DNS 查询在这两个 IP 地址之间轮换,但大多数客户端都位于解析器和 DNS 缓存服务器后面,这可能会对拥有多个 DNS 记录的自然轮询产生不利影响。如果您需要偶尔更改 IP 或关闭实例进行维护,这也会给您带来解析问题。

AWS 提供 Elastic Load Balancer 服务。您可以将主记录指向负载均衡器,该负载均衡器将根据您的配置在多个(如果需要,甚至超过 2 个)实例之间进行路由,并允许您规模。它还将增加暂时或永久退出维护实例的能力。

https://aws.amazon.com/elasticloadbalancing/

答案2

这就是负载均衡器发挥作用的地方。

查看 AWS 的紧急负载平衡服务。

您可以将域名指向 ELB 的 IP,ELB 会负责将请求分发到您的后端服务器,并且如果后端服务器出现故障或运行状况不佳,还会将其从轮换中移除。

维护状态并将应用程序部署到后端服务器是另一个主题。

相关内容