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

发布于 2024-08-17 09:08:40 字数 343 浏览 5 评论 0原文

在一些源文件频繁更改的应用服务器上,是否推荐使用以下方法?

使用 S3tools 的 cron 作业将源文件与 S3 专用存储桶同步(例如每 15 分钟一次)。

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

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

缺点: 将源代码保存在 S3 上 其他?

您对这种方法有何看法?当源代码频繁更改(一天几次)时,这是使用 EC2 的正确方法吗?请推荐在源代码经常更改的情况下运行 EC2 实例的最佳方法。

On an app server in which a few source files change frequently, Is the following approach recommended?

Use a cron job with S3tools to sync the source files with S3 private bucket (every 15 mins for example).

On server start up - Use user data script to sync with the sources bucket to retrieve the latest sources.

Advantages:
1. No need to attach EBS for app server just to save a few files
2. Similar setup to all app servers
3. Sources automatically backed up.
4. As a byproduct, distributes code to multiple app servers automatically.

Disadvantages:
keeping source code on S3
other?

What do you think about this methodology? Is this the right way to use EC2 when source code change frequently (a few times a day) please recommend the best approach to run EC2 instances where sources change often.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

疯狂的代价 2024-08-24 09:08:41

我认为您最好使用适当的源代码存储库,例如 Subversion 或 Git,而不是将源文件存储在 S3 上。这样您就可以拥有源文件的中心位置,同时避免 kdgregory 提到的更新一致性问题。

您可以将源存储库放在 EC2 之外的您自己的服务器上,或者将其托管在 EC2 实例上(在后一种情况下,请确保存储库文件位于 EBS 卷上)。

I think you're better off using a proper source code repository, like Subversion or Git, rather than storing the source files on S3. That way you can have a central location for the source files while avoiding the update consistency problems that kdgregory mentioned.

You can put the source repository on one of your own servers outside of EC2, or host it on an EC2 instance (make sure the repository files are on an EBS volume in the latter case).

春夜浅 2024-08-24 09:08:41

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

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

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

If you're going to be running a large number of EC2 instances, then it will be less effort to have them sync themselves from a central location (ie, you sync to private bucket, app-servers sync from that bucket).

HOWEVER, recognize that updates to an S3 bucket are atomic only at the object level, and more importantly, are not guaranteed to be immediately consistent (although I recall seeing a recent note that the us-west endpoint does offer read-after-write consistency).

This means that your app-servers may load a set of new files that are internally inconsistent -- some will be old, some will be new. If this is a problem for you, then you should implement a scheme that uploads directly to the app-servers, and ensures changeset consistency (perhaps by uploading to a temporary directory that is then renamed).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文