amazon-web-services - 各种 AWS EC2 实例在 AWS S3 存储桶中使用相同的库文件是一种好习惯吗?
问题描述
我正在将我的计算迁移到 aws。我计划拥有例如:10 个 aws EC2 实例,但它们需要使用例如:1000 个库文件(每个库文件(每个 5MB-10 MB),总共大约 10GB 的库文件。
我应该将这 10GB 的库文件上传到每个实例吗?它会更昂贵和更快吗?
或者,先创建一个 S3 存储桶,只上传 10GB 的文件到 S3 存储桶,然后让实例使用 S3 存储桶中的库文件?
或者是否可以将库文件上传到 EC2 实例(库实例)并让其他 EC2 实例使用该库实例?
这可能是一个非常愚蠢的问题。但由于我处于 AWS 的最初几天,我需要你的好主意。
提前致谢。
解决方案
您可以预先构建包含这些库的Amazon 系统映像(AMI),然后从该 AMI 启动 N 个实例。这将是在所有 EC2 实例上获取相同库的最快方式。
您还可以测量将它们全部从 S3 下载到 EC2 所需的时间,因为如果速度相当快,将减少维护 AMI 的开销(随着安全补丁可用等)
要将文件从 S3 引导到 EC2 实例,您可以在启动时使用userdata 脚本一次性执行此操作,或按需提取它们。
对于更复杂的选项,您可以查看 Code* 服务,例如 CodeDeploy、多附加 EBS 卷(这些是只读的)甚至EFS(在您的情况下这可能是多余的)。
推荐阅读
- php - 无法从 PHP 函数回显或打印
- c++ - 添加了 Info.plist 但 Xcode 仍然崩溃
- reactjs - 如何通过reactjs在点击事件上批准待处理按钮显示
- scala - Scalatra SwaggerSupport NPEs on simple case class?
- php - 我们可以在客户端或服务器端保护 JSON 文件数据吗
- python - 模块“tensorflow._api.v2.train”没有属性“GradientDescentOptimizer”
- android - 如何将布局(由java制作)附加到片段?
- javascript - 如何在 div 中显示 jquery 警报消息?
- azure - 部署到 Azure 应用服务时,Webpack 应用(办公插件)无法启动
- clojure - 将 clojure.spec 用于地图