Batch
AWS Batch Overview
A fully managed service for running batch computing workloads on AWS infrastructure (EC2 or ECS/Fargate).
Key Benefits
Zero infrastructure management overhead
Automatic provisioning and scaling
No installation required
Core Components
1. Jobs
Basic unit of work in AWS Batch
Can be implemented as:
Shell scripts
Executable files
Docker containers
2. Job Definitions
Blueprints for job execution
Specify:
Resource requirements
Environment configuration
Job parameters
3. Job Queues
Holding area for submitted jobs
Jobs wait here until:
Resources are available
Scheduling conditions are met
Can set multiple priority levels
4. Compute Environments
Types:
Managed
AWS handles capacity and instance management
Automatic scaling
ECS/Fargate support
Unmanaged
User controls compute resources
Greater customization options
Manual scaling
Here's a visual representation of how these components interact:
Recommended approach for MOST workloads
Need more control over instance selection
Requires fast start times (<30 seconds)
Elastic Fabric Adapter
16 vCPU or less
custom AMIs
no GPUs
GPUs
max 120 GiB of memory
High levels of cocurrency
access to Linux Parameters
no time limit
15 min execution time
limited native disk space, and EFS requires functions live within a VPC. It addes overhead and costs.
Batch uses Docker so can have any runtime
fully serverless with limited runtimes
AWS manages capacity and instance types
managed your own resouces
Compute resource specs are defined when environment is created
AmI must meet ECS AMI specs
ECS instances are launched into VPC subnets
you manage everything
Default is the most recetn and approved Amazon ECS AMI
Good choice for extremely complex or specific requirements
You can use own AMI
Last updated
Was this helpful?