【问题标题】:Create AWS Batch Managed Compute Environment passing UserData to Container Instances创建将 UserData 传递给容器实例的 AWS Batch 托管计算环境
【发布时间】:2018-02-09 18:36:22
【问题描述】:

我想为AWS Batch 创建一个Managed Compute Environment,但使用EC2 User Data 来配置实例,因为它们被引入Batch 调度作业的ECS 队列。

没关系,但用户数据脚本的目的是将大型数据文件下载到 Docker 容器将引用的 InstanceStore。

这个is possible in ECS,但我找不到将用户数据传递到托管批处理计算环境的方法。

我最多可以指定 AMI。但是由于我们要使用托管,我们必须使用Amazon ECS-optimized AMI

我更喜欢使用EC2 User Data 作为解决方案,因为它为我们希望执行的任何其他引导程序提供了一个入口点。但我对其他黑客或解决方案持开放态度,只要它们适用于托管计算环境

【问题讨论】:

  • 我想在这个问题中添加 amazon-batch 标签,但缺少代表

标签: amazon-web-services docker amazon-ec2 amazon-ecs aws-batch


【解决方案1】:

您可以基于 AWS 提供的 AMI 创建一个 AMI,并对其进行自定义。由于 Batch 和/或 ECS 守护程序正在其上运行,因此仍将对其进行管理。

作为旁注,我正在尝试做同样的事情,但到目前为止还没有运气。我最终可能会创建一个自定义 AMI,并将配置脚本包含在 AMI 本身的 /etc/rc.local 中。不理想,但我认为 Batch 不能传递除了它需要的用户数据脚本。我还在调查这个。

【讨论】:

  • 我已将此答案标记为正确,因为这也是我们的 AWS 解决方案架构师所建议的,而且它奏效了。
【解决方案2】:

您可以创建一个包含您的用户数据的启动模板。然后将此启动模板分配给您的计算环境。请记住,您可能必须清理 AMI 中的 cloud init 目录,因为它可能已经启动过一次(在 ami 创建时)。 Launch template userguide

【讨论】:

  • 这应该是正确的答案,尽管在撰写问题时@Ryan 的答案是我们使用的解决方法。 Launch 模板方法不需要重新处理他们的 AMI,可以在 CloudFormation 模板中获取变量,更适合自动化等。
猜你喜欢
  • 2019-06-28
  • 1970-01-01
  • 2014-09-15
  • 2018-09-29
  • 2015-09-18
  • 2012-01-14
  • 1970-01-01
  • 2019-11-03
相关资源
最近更新 更多