在AWS上的Load Balanced EC2 Web服务器实例之间同步静态文件

时间:2013-06-03 16:12:47

标签: drupal amazon-web-services amazon-s3 amazon-ec2 rsync

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

有些人声明可以使用S3来托管静态文件并通过EC2 Instances提供这些文件。其他人使用Kwatee等免费工具或Scalr等付费工具。我甚至看到一些人使用EBS Images并将它们复制到EC2 Instances - 这似乎是最糟糕的方法。我看到的最后一个方法使用rsync来完成文件分发。

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

stackoverflow参考:

Load balancing web servers + keeping content synced

Deploy Content to Multiple Servers (EC2)

Where to put shared files on amazon AWS design for failure architecture?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

要点1)Drupal适用于GlusterFS。您可以将一个或多个GlusterFS EC2实例创建为公共存储池。您可以将所有Drupal EC2实例附加到公共GlusterFS存储池中。无论何种数据,您可以立即在所有Drupal EC2实例上轻松访问您放在公共存储池中的文件。这是AWS中可扩展Drupal部署中使用的一般技术。此模型避免了架构中的rsync,S3和其他代码更改

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