我正在运行一个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?
答案 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集成。