EC2 – 共享存储 – S3FS或EBS?

现在将我的Web服务构build到EC2上,并在负载均衡器后面有一个实例。 我当然会照顾多个实例。

我最初的想法是运行所有的实例愚蠢的奴隶,并使用S3作为本地存储。 为此,我已经开始使用S3FS,但是从我所见过的情况来看,它并没有真正准备好在Web服务环境中用于生产。 日志的写作似乎很晚,如果不是永远不会。 许多奇怪的caching问题,即使没有caching标志等。只是一般的噩梦发展。

但是,替代品看起来很less。 一个显然是EBS卷,可以附加到一个实例。 一些解决scheme来分享这个:

  • SMB共享到其他实例。 有一个主人和其余奴隶 – obv需要冗余在这里build立多个EBS卷或许?
  • Rsync分享到其他箱子。 这看起来很痛苦,考虑到它不会持久,并会定期更新。 如果在发生重大更改时强制脚本进行更新,可能是可以的。

问题是…人们做什么? 这似乎是一个完全常见的用例,但在论坛上甚至在SF上发现的各种答案,似乎表明没有一个简洁的答案…帮助想要!

这是因为有很多答案,取决于你对选项的熟悉程度,你对什么感觉舒服,什么是共享的,以及它将被同步的频率,它需要如何“同步”,如何“ (可用于心跳?只读与写入实例?平衡实例?)以及您希望设置的复杂程度以及您正在使用的应用程序(可同步自己的数据库?为共享存储构build的应用程序?…)

您可以使用Rsync来安排同步,从文件服务器,NFS服务器,DRBD“软件RAID 1”等共享……这取决于您的特定用例以及如何备份数据。

简短的答案是你的问题没有答案,因为这取决于使用情况。

推到S3 / CloudFront的EBS卷似乎是最好的举动,特别是如果你担心图像,CSS,JavaScript,这种types的东西。

EBS比S3更容易进行快照/备份,特别是对于服务器的文件系统。

您也可以指定一台服务器作为“主站”,另一台作为“从站”,例如只对“主站”进行更改。

至于日志logging,请查看http://loggly.com/或https://papertrailapp.com/上的一些云端日志logging服务。

HTH