在 EC2 实例之间共享源代码的最佳方法是什么?

在 EC2 实例之间共享源代码的最佳方法是什么?

目前,我在负载均衡器后面的亚马逊云中有 4 个 EC2 实例,这个数字将增长到 20-30。我正在寻找在所有这些实例上管理源代码的最佳方法。所有实例上都运行着一个 http 服务器 + php。

我需要一种可以同时更新所有实例上的源代码的方法。经过一番研究,我想我找到了一个解决方案 - 创建一个 NFS 服务器并将包含源代码的目录导出到所有实例。每个实例都将挂载此导出的目录并将其用作 apache http 服务器的文档根目录。

这种方法正确吗?或者您建议其他方法吗?NFS 是否能够同时将源代码共享给所有 EC2 节点?

答案1

NFS 当然可以用于此目的,但这样做会给自己带来相当大的单点故障。如果 NFS 服务器宕机,你就完蛋了。此外,使用 NFS 时,由于 NFS 需要额外的网络跳转,磁盘 IO 性能会受到影响。

相反,我建议研究一下类似的部署工具织物或者卡皮斯特拉诺。这两种方法都可以快速将代码推送到您的服务器。如果您担心某些服务器在部署过程中会暂时“不同步”,那么您应该让您的 LB 在部署新代码之前将该服务器从轮换中拉出,然后在成功部署后重新添加到轮换中。

附录:“同时部署”只是个白日梦。忘掉它吧。几台服务器就已经够难的了,更别说几十台甚至几百台了。

相关内容