我想在多个 EC2 节点(Web/应用服务器)上使用单个 EBS 存储。我读过一些关于快照共享的文章,但这不太适合我们的需求。
我们使用文件系统来存储数据库记录附件,因此如果创建了这样的附件,我们需要它立即可供所有节点使用(提供服务)。到目前为止,只有 NFS 似乎可行,但配置和维护起来很麻烦。
另一种选择是将这些附件存储在 S3 上,但这会使我们无法对这些数据进行任何分析。
这一定是在 AWS 扩展时相当常见的问题,有什么解决方案吗?
答案1
目前还没有办法在实例之间直接共享 EBS。但是!还有其他选择:
最具可扩展性的方式:S3。最复杂的方式:分布式文件系统(如 GlusterFS)。介于两者之间的解决方案:1 个安装了 lyncd 的主节点和从属节点。lsyncd 几乎以实时模式管理所有文件更新。此变体的缺点是所有文件更新操作都必须在主节点上完成。
对于小型项目(1-5 个节点),我会考虑 lsyncd 解决方案,对于较大的项目,我会使用 S3。
答案2
答案3
不使用直接文件系统访问,而是将数据库记录附件存储在可从多个 EC2 实例访问的服务后面怎么样?MySQL 数据库,或者像 Cassandra 这样的“NoSQL”选项可能是不错的选择。
我不明白为什么将附件存储在 S3 上会阻止您对数据进行分析;您能详细说明一下吗?