Drupal 在AWS上负载平衡的EC2 web服务器实例之间同步静态文件

Drupal 在AWS上负载平衡的EC2 web服务器实例之间同步静态文件,drupal,amazon-web-services,amazon-s3,amazon-ec2,rsync,Drupal,Amazon Web Services,Amazon S3,Amazon Ec2,Rsync,我正在运行一个Drupal网站,该网站正在使用RDS作为数据库。我有两个实例,将来可能会更多,它们是负载平衡的。一年中60-75%的时间内,静态内容不会发生变化。另外25-40%的时间里,我们将开发每天需要多次修改文件的模块和功能。我想实现一个系统来处理n个实例之间的文件同步。这个系统应该尽可能地解放双手和思想。注意:对于php邮件,这些实例只是带有ssmtp(是的,它是ssmtp而不是smtp)的web服务器,仅此而已 有些人说可以使用S3托管静态文件,并通过EC2实例为它们提供服务。其他人则

我正在运行一个
Drupal
网站,该网站正在使用
RDS
作为数据库。我有两个实例,将来可能会更多,它们是负载平衡的。一年中60-75%的时间内,静态内容不会发生变化。另外25-40%的时间里,我们将开发每天需要多次修改文件的模块和功能。我想实现一个系统来处理n个实例之间的文件同步。这个系统应该尽可能地解放双手和思想。注意:对于php邮件,这些实例只是带有
ssmtp
(是的,它是ssmtp而不是smtp)的web服务器,仅此而已

有些人说可以使用
S3
托管静态文件,并通过
EC2实例为它们提供服务。其他人则使用免费工具,如或付费工具。我甚至看到一些人使用
EBS图像
,并将它们复制到
EC2实例
——这似乎是最糟糕的方法。我看到的最后一种方法是使用
rsync
来完成文件分发

如何正确地比较这些方法并得出选择哪种实现的结论?另外,我不完全理解
S3
方法的实现。因为我知道它会出现,成本当然是一个关注点,但易用性和可靠性在这一点上更重要。(当然是合理的。)

堆栈溢出引用:


我建议将静态文件保留为S3对象。AmazonS3是二进制对象(文件)的高度持久和可靠的存储,可通过HTTP/S(如果需要)在公共web上访问。除此之外,您还可以通过AWS CloudFront(内容交付网络)让客户机访问这些对象。

第1点)Drupal可以很好地与GlusterFS配合使用。您可以创建一个或多个GlusterFS EC2实例作为公共存储池。您可以将所有Drupal EC2实例连接到公共GlusterFS存储池中。无论数据是什么,您放在公共存储池中的文件都可以立即跨所有Drupal EC2实例访问。这是AWS中可伸缩Drupal部署中使用的通用技术。此模型避免了体系结构中的rsync、S3和其他代码更改

第2点)如果您可以选择更改代码,那么将其与S3集成