本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
计算资源 AMI
默认情况下,Amazon Batch托管计算环境使用最近批准的 Amazon ECS 优化 AMI 版本来计算资源。但是,您可能需要考虑创建自己的 AMI 以用于托管计算环境和非托管计算环境。如果您还需要以下操作,请执行此操作:
-
增加 AMI 根卷或数据卷的存储大小
-
为支持的 Amazon EC2 实例类型添加实例存储卷
-
使用自定义选项配置 Amazon ECS 容器代理
-
将 Docker 配置为使用自定义选项
-
配置 GPU 工作负载 AMI,以允许容器访问支持的 Amazon EC2 实例类型上的 GPU 硬件
创建计算环境后,Amazon Batch 不会升级该计算环境中的 AMI。例如,当有更新版本的 Amazon ECS 优化 AMI 可用时,它也不会更新计算环境中的 AMI。你负责管理客户机操作系统。这包括任何更新和安全补丁。您还需要负责在计算资源上安装的任何其他应用程序软件或实用程序。要为您的 Amazon Batch 作业使用新的 AMI,请执行以下操作:
-
使用新的 AMI 创建新计算环境。
-
将计算环境添加到现有作业队列。
-
从您的作业队列中删除早期的计算环境。
-
删除早期的计算环境。
2022 年 4 月,Amazon Batch添加了对更新计算环境的增强支持。有关更多信息,请参阅 更新计算环境。要使用计算环境的增强更新来更新 AMI,请遵循以下规则:
-
要么不设置服务角色 (
serviceRole
) 参数或将其设置为AWSServiceRoleForBatch服务相关角色。 -
设置分配策略 (
allocationStrategy
) 参数BEST_FIT_PROGRESSIVE
要么SPOT_CAPACITY_OPTIMIZED
. -
将更新设置为最新映像版本 (
updateToLatestImageVersion
) 参数true
. -
请勿在中指定 AMI ID
imageId
、imageIdOverride
(在ec2Configuration
)或在启动模板中(launchTemplate
)。在这种情况下Amazon Batch将选择支持的最新 Amazon ECS 优化 AMIAmazon Batch在启动基础架构更新时。或者,您可以在imageId
要么imageIdOverride
参数或由LaunchTemplate
属性。更改其中任何属性都将触发基础架构更新。如果在启动模板中指定了 AMI ID,则无法通过在imageId
要么imageIdOverride
参数。只能通过指定不同的启动模板或启动模板版本设置为来替换它$Default
要么$Latest
,方法是为启动模板设置新的默认版本(如果$Default
) 或者通过向启动模板添加新版本(如果$Latest
)。
如果遵循这些规则,触发基础架构更新的任何更新都将导致重新选择 AMI ID。如果version
在启动模板中设置 (launchTemplate
) 设置为$Latest
要么$Default
,将在基础架构更新时对启动模板的最新或默认版本进行评估,即使launchTemplate
未更新。
计算资源 AMI 规范
基本Amazon Batch计算资源 AMI 规范包含以下项目:
必填
-
在 HVM 虚拟化类型 AMI 上运行至少 3.10 版 Linux 内核的现代 Linux 分配。不支持 Windows 容器。
重要 多节点 parallel 作业只能在 Amazon Linux 实例上启动的计算资源上运行,这些资源使用
ecs-init
安装了程序包。我们建议您在创建计算环境时使用默认的 Amazon ECS 优化 AMI。您可以通过不指定自定义 AMI 来执行此操作。有关更多信息,请参阅 多节点并行作业。 -
Amazon ECS 容器代理 建议您使用最新版本。有关更多信息,请参阅 。安装 Amazon ECS 容器代理中的Amazon Elastic Container Service 开发人员.
-
这些区域有:
awslogs
必须使用ECS_AVAILABLE_LOGGING_DRIVERS
启动 Amazon ECS 容器代理时的环境变量。有关更多信息,请参阅 。Amazon ECS 容器代理配置中的Amazon Elastic Container Service 开发人员. -
运行至少 1.9 版的 Docker 守护程序以及任何 Docker 运行时依赖项。有关更多信息,请参阅 Docker 文档中的检查运行时依赖项
。 注意 要获得更好的体验,建议您使用所使用的相应 Amazon ECS 代理版本附带的且经测试的 Docker 版本。有关更多信息,请参阅 。Amazon ECS 容器代理版本中的Amazon Elastic Container Service 开发人员.
推荐
-
用于运行和监控 Amazon ECS 代理的初始化和保姆流程。经 Amazon ECS 优化的 AMI 使用
ecs-init
开创流程以及其他操作系统可能使用systemd
. 查看使用的几个示例用户数据配置脚本systemd
要启动和监控 Amazon ECS 容器代理示例容器实例用户数据配置脚本中的Amazon Elastic Container Service 开发人员. 有关ecs-init
的更多信息,请参阅 GitHub 上的ecs-init
项目。托管计算环境至少需要 Amazon ECS 代理才能在启动时启动。如果 Amazon ECS 代理未在计算资源上运行,则无法接受来自的作业Amazon Batch.
经 Amazon ECS 优化的 AMI 已根据这些要求和建议进行预配置。建议您使用 Amazon ECS 优化的 AMI 或 Amazon Linux AMI 与ecs-init
为计算资源安装的程序包。如果您的应用程序需要特定的操作系统或这些 AMI 中尚未提供的 Docker 版本,请选择另一个 AMI。有关更多信息,请参阅 。经 Amazon ECS 优化的 AMI中的Amazon Elastic Container Service 开发人员.