【发布时间】:2021-02-21 04:29:33
【问题描述】:
我想在我用来运行一些 AWS Batch 作业的 Docker 容器上安装一个 AWS s3 存储桶。 我一直在研究解决这个问题的几种方法,但我仍然不清楚如何让它在 AWS Batch 上工作,AWS Batch 将根据作业定义动态分配 EC2 实例。 以下是我收集的想法,但我不确定如何将它们组合在一起:
- https://rexray.readthedocs.io/en/v0.9.0/user-guide/docker-plugins/ 我可以使用这个插件将 S3 存储桶挂载为 Docker 卷,但不确定如何在 AWS Batch 上执行此操作。这个插件应该是 Docker 镜像的一部分吗?
- 我可以使用 s3fs-fuse,但我被告知我将无法在 AWS Batch 实例上的 EC2 实例上安装或存储来自 S3 的任何文件,然后可以将其安装在 docker 中。 - 有没有办法通过在 AMI 中包含一些将文件从 s3 复制到实例的代码来做到这一点?
- 我还有其他方法可以让它工作吗?
如果我的问题太基本,请原谅我。我对 Docker 和 AWS Batch 还很陌生。非常感谢任何帮助!
谢谢!
【问题讨论】:
-
作为一条建议,您应该避免使用 S3 作为挂载。 EFS 服务旨在用作 NFS 挂载。
-
感谢您的建议。我正在使用工作流语言来运行我的作业,它可能与 EFS 不兼容。
-
您可以通过 AWS Storage Gateway 在 EC2 实例上挂载 S3 存储桶。不过真的不知道它是如何与 AWS Batch 集成的......
-
it may not be compatible with EFSEFS 至少是一个真正的 FS 并且以这种方式运行,S3 具有最终/写后读一致性,因此请认真考虑它是否适合您(我会避免使用 S3 作为FS),确实 S3 是更便宜的存储,但它不是任何文件系统,挂载 S3 始终是一种“解决方法”,但有一些警告。无论如何,容器内部的 s3fs-fuse should work
标签: amazon-web-services docker batch-processing