现在将我的 Web 服务构建到 EC2 上,并在负载均衡器后面有一个实例。我当然会满足多个实例的需求。
我最初的想法是让所有实例都运行在哑从属服务器上,并使用 S3 作为本地存储。为此,我开始使用 S3FS,但就我所见,它还未真正准备好在 Web 服务环境中用于生产。日志的写入似乎出现得很晚,甚至从未出现过。存在许多奇怪的缓存问题,甚至没有缓存标志等。总的来说,开发起来简直是噩梦。
但是,替代方案似乎很少。一个显然是 EBS 卷,它可以附加到单个实例。共享此卷的一些解决方案:-
- SMB 共享至其他实例。有一个主实例和其余的从实例 - obv 可能需要在此处使用多个 EBS 卷构建冗余?
- Rsync 共享到其他机器。这似乎很麻烦,因为它不是持久的,而且会定期更新。如果在发生重大变化时强制更新脚本,那么可能没问题。
问题是...人们会做什么?这似乎是一个非常常见的用例,但在论坛上甚至在 SF 上找到的各种答案似乎表明没有一个简洁的答案...需要帮助!
答案1
这是因为有很多答案,取决于您对选项的熟悉程度、您习惯的内容、您共享的内容以及同步频率、需要“同步”的程度、如何使用它们(备用心跳?只读与写入实例?平衡实例?)以及您希望设置的复杂程度以及您正在使用的应用程序(可以自我同步的数据库?为共享存储构建的应用程序?......)
您可以使用 Rsync 来安排同步、从文件服务器、NFS 服务器、DRBD“软件 RAID 1”等共享……这取决于您的特定用例以及您如何备份数据。
简短的回答是,您的问题没有答案,因为这取决于使用情况。
答案2
推送到 S3/CloudFront 的 EBS 卷似乎是最好的选择,特别是当您担心图像、CSS、javascript 等类型的东西时。
EBS 比 S3 更容易进行快照/备份,尤其是对于服务器的文件系统。
您还可以将一台服务器指定为“主服务器”,将另一台服务器指定为“从服务器”,并且仅在“主服务器”上进行更改。
至于日志记录,请查看一些云日志记录服务,例如http://loggly.com/或者 https://papertrailapp.com/。
高血压