在Elastic Beanstalk上部署WordPress?

Arv*_*ind 8 amazon-web-services amazon-elastic-beanstalk

假设我在Wordpress中创建一个站点,该站点在Elastic Beanstalk上运行.现在,在正在运行的应用程序上,我将创建帖子/页面,上传图像等.也就是说,数据库中的一些数据,视频,文件和记录将被添加到正在运行的应用程序中.

3个问题:

  1. 如果WordPress在Elastic Beanstalk上运行,而多个Amazon EC2实例实际运行我的WordPress安装,那么这些文件会自动传播到所有正在运行的实例吗?如果启动新的EC2实例 - 例如,为了处理增加的负载,这也会发生吗?

  2. 从我在AWS控制台中看到的,我可以部署不同版本的应用程序 - 但是根据上面的场景,如果我部署新版本,我不会丢失直接上传到正在运行的应用程序(即文件和数据库记录)的所有文件吗?如何保留这些并同时部署我的应用程序的新版本?

  3. WordPress团队不断发布升级.我可以通过Web界面直接升级运行的WordPress安装吗?或者我是否必须首先升级我的本地版本的WordPress,然后将新版本的应用程序上传到Beanstalk?如果我必须升级我的本地版本然后上传,那么我又回到第1点,即用户直接对旧版本的正在运行的应用程序进行的更改.我该如何保留这些变化?

Nea*_*gee 8

我也一直在研究这个问题,并且已经学到了一些与此相关的事情 - 特别是关于上传的问题一直在我的脑海中:

(1)在我看来,处理上传的最好方法是按照你的建议去NFS/NAS路线,但更好的方法是使用适用于WordPress的Amazon S3插件,以便任何上传自动复制到S3和WordPress媒体库中的URL反映了您的存储桶的FQDN,而不是您的特定网站.这样,您可以在Beanstalk中拥有一个或十个WP节点,并且媒体/图像独立于任何一个服务器.

(2)你绝对应该在这里使用RDS.很少有东西比多可见区,保留的MySQL RDS实例更容易使用和无压力.运行MySQL的那个或你自己的EC2独立于Beanstalk,但为什么在RDS更容易的时候运行它?

(3)是的,你肯定得先提交更改您的Git仓库或本地文件(新的插件,改变主题,WP升级),然后上传/安装的修订魔豆代码.否则,您通过Web界面对一个节点所做的所有更改将永远不会出现在新节点的新负载中 - 事实上,您将拥有升级的数据库,但Beanstalk应用程序中的代码集较旧,因此很可能创造某种或那种错误.

我参加了AWS架构课程,他们对EC2和Beanstalk的建议是开始考虑服务器实例是非常一次性的 - 所以你应该考虑让你的盒子在引导过程中自行配置的简单方法并采取在一个盒子上没有任何宝贵资源的情况下为彼此工作.所以失去一个实例永远不应该是一个大问题.(这绝对不是我们在物理服务器世界中的想法,我们已经调整了所有内容'就是这样'.)

祝好运!


Arv*_*ind 0

好吧,我对这个特定问题进行了很多研究,这就是我学到的——

(1) 如果一个wordpress用户上传了一些文件,那么他的文件只会上传到当时实际服务于他请求的虚拟机上。例如,如果当前 WordPress 站点是云部署的并且正在使用 5 个虚拟机,那么现在当用户发出请求时,他会被定向到一台虚拟机——当时负载最低的虚拟机...他的上传内容仅存储在该虚拟机上服务器。当前的平台即服务解决方案(例如 Amazon Elastic Beanstalk 和 App Fog)无法将更改传播到所有正在运行的实例。要么(将更改传播到所有服务器),要么由所有正在运行的实例使用公共存储——这是解决此问题的唯一两种解决方案。(例如,公共存储将是所有 5 个使用网络附加存储 (NAS) 运行的虚拟机...)

(2) 例如,参考当前可用的平台,例如 Amazon Elastic Beanstalk 和 App Fog,即使用户直接对正在运行的应用程序进行更改 - 这些平台依赖于本地版本的代码(管理员最初将其部署到云) - 并且无法使用用户对正在运行的应用程序所做的更改来更新代码的本地版本(在管理员的 PC 上) - 因此这些更改即文件会丢失 - 同样,用户对正在运行的应用程序所做的数据库更改也会丢失丢失 - 除非管理员为其本地应用程序使用完全相同的数据库(他部署到云)

(3) 对正在运行的应用程序的任何更改都必须首先对管理员 PC 上的本地应用程序进行,然后推送到云端。

我正在开发一个解决所有这些问题的云 PaaS——即可以对正在运行的应用程序进行更新,对正在运行的应用程序所做的代码更改也会在用户可访问的代码存储库中更新......概念证明已经准备好,希望它能够实现将会像我希望的那样好:) - 目前唯一实际存在的是网站 (anyacloudpanel.com) - 设计工作正在进行中:)

如果有一些规则不允许我提及我的网站(安雅云面板)——那么我很抱歉——请随意编辑并从我的答案中删除我的网站 URL :)

谢谢,阿尔文德。