动手实验 | 理解 AWS Batch 的运行原理


  实验目标

本次实验目标是掌握 AWS Batch 批量计算服务的核心运行逻辑,通过实操熟悉 AWS Batch 从提交作业、调度资源、执行任务到完成退出的完整流程。

  技术要点

AWS Batch 是 AWS 提供的托管式批量计算服务,无需用户自行管理集群、服务器调度和资源伸缩。该服务的核心功能是自动配置和扩展计算资源,根据作业队列的优先级与资源需求,动态分配 EC2 实例或使用 Fargate 无服务器环境,批量调度、执行和监控大规模批处理作业。该服务主要由计算环境、作业队列、作业定义、作业任务组成。计算环境提供算力资源,作业队列负责排队和优先级管理,作业定义规定任务镜像、内存、CPU 等参数,作业任务执行具体的数据处理。AWS Batch 提供两种计算环境,分别是托管计算环境与无服务器计算环境。

  作业步骤

本次采用 AWS Console 界面完成作业。
注意:根据项目的具体情况,可以采用不同的实施方法。比如使用命令行(CLI)部署、代码部署 (CloudFomation、Terraform等)、以及其它开发语言(SDK)完成作业。

步骤一:创建托管型计算环境。
登录 AWS 控制台,进入 AWS Batch 服务,创建托管型计算环境,选择 Fargate 无服务器类型,设定最大 vCPUs 数值和网络配置参数。

步骤二:创建作业定义。
选择"作业定义"→"创建",名称填 job-def,容器镜像输入 amazonlinux,
命令填写
/bin/bash -c "echo 'AWS Batch 测试任务开始'; date; echo 'CPU 内存信息:'; free -h; sleep 10; echo '任务执行完成'"
vCPU 设为 2,内存设为 500 MiB,重试次数为 1 次,日志为选择 CloudWatch Logs,点击创建。

步骤三:创建作业队列。
选择"作业队列"→"创建",命名 job-queue,关联上一步创建的计算环境,优先级设为 1,点击创建。

步骤四:提交作业。
选择"作业"→"提交",作业定义选 job-def,作业队列选 Job-queue,作业名称填 batch-job,点击提交。

  结果验证

1. 在 AWS Batch 控制台中查看作业状态,确认作业从提交、排队、运行到完成的状态;查看计算环境实例数量变化,验证算力自动启动与释放。
2. 通过 CloudWatch 日志查看容器输出内容,确认批处理任务正常执行并输出预期结果。