AWS Batch is a service that enables IT professionals to schedule and execute batch processing jobs in the Amazon Web Services public cloud.
Batch processing refers to a series of programs -- which IT teams typically defined through scripts, command lines, or a programming language -- that execute without human intervention, which makes sequencing and scheduling those programs especially important. Examples of applications that typically use batch computing include those for deep learning, animation rendering and engineering simulations.
With AWS Batch, an IT professional -- such as a developer, data scientist or engineer -- does not need to install batch software or provision resources for jobs. AWS Batch assesses the volume of processing jobs to provision the quantity and type of Elastic Compute Cloud instances needed. AWS Batch spins up On-Demand Instances to process jobs, but an IT team can select Spot Instances, as well.
To get started with the service, a developer defines a job, in terms of its variables and resource requirements, and submits that information into a queue. AWS Batch then executes jobs from that queue and processes them in what it calls compute environments – or a group of compute resources, such as instances. The service provisions resources for those jobs, and scales capacity up and down as needed.
A developer can choose between managed compute environments, which are managed by AWS, or unmanaged compute environments, which grant the flexibility to use specialized resources, such as Dedicated Hosts, and users manage themselves.
Any job that can execute in a Docker container can run in AWS Batch. An AWS user must install the Amazon EC2 Container Service (ECS) Agent to allow the service to execute containerized jobs. A developer can assign AWS Identity and Access Management roles to AWS Batch jobs to facilitate integration with other Amazon cloud services, such as Amazon Simple Storage Service, Amazon DynamoDB and Amazon AI tools.
Amazon does not charge a fee for customers using AWS Batch. A customer only pays for the AWS resources he or she uses during processing and storage.