“大局观” 使用亚马逊负载均衡器解决方案为博客

“大局观” 使用亚马逊负载均衡器解决方案为博客

我有一个客户,他有一个很受欢迎的 Wordpress 博客,偶尔会经历短期流量高峰(当该网站在国家电视台上推广时)。该博客已托管在 Amazon EC2 实例上,我们正在探索使用 Amazon 的负载均衡器来帮助应对高峰。

关于此问题的两个一般“大局”问题:

  1. 要进行设置,我是否只需从现有服务器创建一个机器映像(AMI),然后将其复制到一个新实例中,并告诉负载均衡器在两个实例之间分配流量?(或者我想是两个以上......)

  2. 当我的客户需要编辑博客上的内容时,我似乎需要一种方法将他们指向一个特定的“主”实例,以便他们可以使用该服务器上的 WordPress 管理工具,然后将内容从该实例复制(rsync)到其他实例,这样每个人都有相同的数据。这是正确的方法吗?

任何其他提示/建议都将不胜感激。我是亚马逊负载均衡器的新手,所以我只是想在深入了解细节之前先了解一下大局。

更新:一些静态内容位于 Amazon CloudFront CDN 上。我不熟悉 APC,但现在我正在研究它(谢谢)。WP-SuperCache 是下一个要实施的项目。我相信数据库位于单独的服务器实例上。

谢谢你,埃里克

答案1

由于您尚未安装WP超级缓存,这确实应该是您的第一步。它的安装非常简单,并且在负载下可以带来一些显着的改进。此插件能够自动生成页面的静态 html 版本,并将它们提供给访问者,而不需要每次点击时都启动 PHP 来动态生成每个页面。

如果这还不能给你带来足够的性能提升,那么可能是时候考虑负载平衡了。标准负载平衡堆栈的基本架构如下:

    ---WP APP SERVER\
   /                 \
  /                   \
LB-----WP APP SERVER-----DB Server
  \                   /
   \                 /
    ---WP APP SERVER/

不过,我对 Wordpress 不太熟悉,不知道它处理负载平衡的效果如何。为了正常工作,每个应用服务器必须不是本地存储任何状态(会话等),而是必须使用数据库服务器处理所有事情。这样,客户端就可以定向到三个后端服务器中的任何一个,而不会被踢出已登录的 wordpress 会话。

不过,在开始实施负载平衡基础设施之前,您确实需要分析服务器并查看它遇到了哪些瓶颈。也许瓶颈实际上在数据库服务器中。也许您看到 iowait 异常高。也许您耗尽了可用 RAM 并迫使内核进入交换状态。谁知道呢。其中任何一个都可能显著降低性能,并且任何一个都可以通过调整 EC2 实例的大小相当轻松地解决。

相关内容