AWS EC2-与S3同步源代码文件 - 这是一种正确的方法吗?

Nir*_*Nir 6 amazon-s3 amazon-ec2

在几个源文件经常更改的应用服务器上,是否建议采用以下方法?

使用带有S3tools的cron作业将源文件与S3私有桶同步(例如每隔15分钟).

在服务器启动时 - 使用用户数据脚本与源存储桶同步以检索最新的源.

优点:1.无需为app服务器附加EBS,只需保存一些文件2.对所有应用服务器进行类似的设置3.源自动备份.4.作为副产品,自动将代码分发到多个应用服务器.

缺点:在S3上保留源代码?

您如何看待这种方法?这是在源代码频繁更改(每天几次)时使用EC2的正确方法,请建议运行经常更改源的EC2实例的最佳方法.

kdg*_*ory 2

如果您要运行大量 EC2 实例,那么让它们从中央位置同步会更省力(即,您同步到专用存储桶,应用程序服务器从该存储桶同步)。

然而,要认识到对 S3 存储桶的更新仅在对象级别是原子的,更重要的是,不能保证立即一致(尽管我记得最近看到一篇说明,us-west 端点确实提供了写后读一致性) )。

这意味着您的应用程序服务器可能会加载一组内部不一致的新文件——有些是旧的,有些是新的。如果这对您来说是个问题,那么您应该实施一种直接上传到应用程序服务器的方案,并确保变更集一致性(也许通过上传到然后重命名的临时目录)。