我正在尝试使用 AWS 配置 Wordpress。目前,我拥有以下内容:
EC2
2 个 t2.small 服务器 (两个服务器都装有 Wordpress)
ELB 配置完毕,并与这两台服务器协同工作
带有数据库的 RDS(两个 Wordpress 都指向这里)
这可能是一个愚蠢的疑问,但我想配置它们,使它们在两个服务器中具有相同的信息(例如:现在,一个服务器中存在另一个服务器中不存在的图像)。我还想一次性更新所有插件,而不必在每个实例中输入以更新它们。
据我所知,我必须为所有图片等设置一个 S3,但我担心插件。您能给我一些建议吗?
提前致谢。
[编辑] 非常感谢。我想我会按照用户 @tex 的建议尝试,我认为这是最容易做到的,而且我认为我不会遇到太多问题。感谢所有帮助过的人。
答案1
看看 Amazon CloudFormation,它有一个模板可以帮助实现这一点。你也可以使用 EFS,弹性文件存储,用于共享文件系统。将 Wordpress(包括所有插件和媒体)放在共享 EFS 驱动器上,以便两台服务器都可以访问它。如果两台服务器都试图以冲突的方式更改内容,则可能会出现问题,但我认为不会有问题。如果您这样做,请定期对 EFS 驱动器进行良好的备份。
您的问题太过宽泛,如果因为太过宽泛或仅基于个人观点而被关闭,我也不会感到惊讶。您应该自己研究一下,如果有其他问题,请回来。
答案2
就我使用 WordPress 的经验而言,这很难做到。也许不可能(取决于你想在 WP 上进行多少破解)。
正如您所指出的,问题在于 WP 对本地文件所做的修改。也许最好的办法是只使用一个 ELB、一个更大的 EC2 用于 WordPress 以及一个大小合理的 RDS 实例用于数据库。
我敢打赌,这样做可以为你节省很多时间和麻烦。也许你可以将 EFS 卷安装到 EC2 实例上,将 WordPress 放在那里,并配置一个固定大小的 AutoScaling 组来防止实例故障。
答案3
S3 将帮助您将媒体内容(只要您为此使用插件,最好是像 static.mydomain.com 这样的子域)分发到基础设施“外部”,分发给您的最终用户:他们将下载 css/js/img,以便浏览器从离他们最近的 s3 端点构建页面。相反,您想要同步媒体(主要是 wp-content)的是一种能够在所有虚拟机之间复制文件更改的机制。这可以从老式的 cron+rsync 到像 gluster 这样的分布式存储来实现。我建议您遵循 KISS 方法,从各种基本的 cron+rsync 开始。祝你好运