我想使用 AWS 批处理启动许多作业(所有作业都使用相同的软件);就像使用作业调度程序在集群计算中所做的那样。该软件的 Docker 映像不可用,因此我需要创建自己的。在 Aws 批处理服务中,我看到可以定义容器映像(注册/域名)。我想我不能使用自己的私人图像,因为我没有域名。那么我是否必须为我的 docker 镜像购买弹性容器注册表,这是有代价的?或者有没有其他方法。此外,我更喜欢 AWS 中的命令行而不是控制台模式,但没有多少博客或教程可以详尽地解释 CLI。任何建议都非常感谢。
2 回答
我没有太多经验,仍在构建自己的基础架构,但与 NAT 网关相比,ECR(存储和传输)本身的定价似乎微不足道,您需要允许您的 VPC 内部的 EC2 实例进行通信到 ECR。也就是说,如果价格是您关心的问题。
我和你一样 - 我不使用 Web 控制台,因为它不可重复 - 将 Cloudformation 与 ansible 之类的东西一起使用。这是我主要关注的一个很好的示例项目:https ://github.com/aws-samples/aws-batch-genomics
如果您在本地构建 docker 映像,将其上传到 ECR 可能需要很长时间,因此我建议使用 Aws CodeBuild 构建它,这就是我所做的 - 再次,此基础架构可以在 Cloudformation 中表示,并与可靠的。
我想我不能使用自己的私人图像,因为我没有域名。
不是问题。给它一个唯一的名字作为名字,并将它用于你所有的 docker 图像。MyOwnName/MySpecificDocker
那么我是否必须为我的 docker 镜像购买弹性容器注册表,这是有代价的?
按照有关弹性容器注册表的说明进行操作。他们逐步完成它,然后您上传您的 docker 图像。免费。
此外,我更喜欢 AWS 中的命令行而不是控制台模式,但没有多少博客或教程可以详尽地解释 CLI。
从控制台开始,至少让它检查并工作。您可能需要在调试时重建不同版本的 docker 或更改作业描述。
一旦工作,您可以使用 CLI,但我倾向于使用 Python 或 Javascript。
对于 CLI,请查看: https ://docs.aws.amazon.com/cli/latest/reference/batch/index.html
并且您可能只需要在设置时提交作业: https ://docs.aws.amazon.com/cli/latest/reference/batch/submit-job.html