我将在AWS的HA(高可用性)环境中运行WordPress站点。
我已经使用HA MySQL - Amazon Avrora。
现在我有几个问题:
AWS如何帮助WordPress HA设置?例如,我应该将AWS Beanstalk用于此目的吗?
为了为WordPress创建HA,我还应该注意什么?
答案 0 :(得分:3)
通常,为WordPress环境设置高可用性并不是一件容易的事。有几层应该高度可用(至少应有两个节点并正在进行复制):负载平衡,应用程序服务器,数据库,文件系统,对象缓存。
在Jelastic多云PaaS中,我们使用容器将软件堆栈分层放置,并配置每个容器以实现高可用性。下面显示了我们的WordPress Cluster拓扑的示例。
请注意,由于网络,电力或硬件故障,整个数据中心也可能会宕机。为了保护您的客户免遭这种不愉快的情况,当在两个不同的独立区域中部署两个WordPress群集时,您将不得不考虑多区域群集。
维护和更新这种复杂的部署可能是一个严峻的挑战,因此您必须对所有方面都有很好的了解,或者使用ready to go solution specifically designed for WordPress clustering。
在这种情况下,以下概述说明可能有助于更好地了解其如何在封面下工作:How to Offer Enterprise WordPress Services for Highly-Loaded Websites。值得一提的是,我们使用了与云无关的方法,因此这些群集拓扑可以部署在AWS,Azure,Google Cloud或任何其他基础架构之上。
答案 1 :(得分:1)
对于StackOverflow,您的问题可能有点广泛,但我处于您的情况,所以我可以同情。
换句话说,您需要粘性会话,这意味着您的应用程序依赖于服务器内存进行会话管理,因此,一旦会话初始化,该用户必须在整个会话期间保持在该服务器上。这没关系,但不太理想(相比之下,如果您的请求根本不关心它运行的是哪个服务器实例),因为如果您的流量速度减慢并且Elastic Beanstalk决定终止您所使用的实例,那么下一步请求当负载均衡器将您路由到另一个实例时,您的会话将被重置,您的用户将不得不再次登录。
另一方面,如果您的应用程序被编写为完全无状态(例如,通过将状态存储在数据库实例中),则您不关心每个请求命中的服务器,因为状态不会存储在服务器实例上。这将允许Beanstalk自由地向上和向下旋转实例,而不会以任何方式影响您的用户。
粘性会话的好处是,如果您的应用已经编写了依赖服务器内存,或者由于某种原因必须使用它,它允许您的应用无需更改代码即可运行。
这就像S3之类的东西派上用场。您的应用程序直接与S3进行交互,作为其存储解决方案,每个实例都将内容保存到S3存储桶中。然后,无论哪个节点正在运行,它都可以与同一个S3存储桶通信并获取所需的数据。
除此之外,我所能推荐的只是你进行实验,研究负载测试,并根据需要进行调整。