600===Dev AWS

AWS Batch Introduced

블로글러 2024. 6. 7. 21:07

AWS Batch is a cloud-based service that allows you to efficiently run batch computing jobs of any scale using Amazon Web Services.

The Big Picture

Imagine you have a bakery that needs to bake thousands of cookies. You don't have enough ovens or staff to bake them all at once, so you need a system to manage the baking process. AWS Batch is like an automated bakery manager that decides which ovens to use, how many cookies to bake at a time, and in what order, ensuring everything runs smoothly and efficiently.

Core Concepts

To understand AWS Batch, let's break down its key components:

  1. Compute Environment: This is where your jobs run. Think of it as the ovens and the kitchen space in the bakery.
  2. Job Queue: This is where your jobs wait to be processed. It's like a waiting area where all the cookie orders are lined up.
  3. Job Definition: This specifies how your jobs should run. It's like a recipe that details the ingredients, baking time, and temperature.
  4. Job: This is the actual task that needs to be executed, like baking a batch of cookies.

Detailed Walkthrough

Let's go through the process of setting up AWS Batch step-by-step, using both the bakery analogy and technical details.

Step 1: Create a Compute Environment

Imagine setting up your kitchen with the necessary ovens. In AWS Batch, this means defining the types of EC2 instances, the number of CPUs, memory requirements, and other configurations.

aws batch create-compute-environment \
    --compute-environment-name MyComputeEnvironment \
    --type MANAGED \
    --compute-resources type=EC2,allocationStrategy=BEST_FIT,instanceTypes=m4.large,minvCpus=0,maxvCpus=16,desiredvCpus=8,subnets=subnet-12345678,securityGroupIds=sg-12345678,instanceRole=ecsInstanceRole

Step 2: Create a Job Queue

Now, set up a queue where all the orders (jobs) will wait their turn to be processed.

aws batch create-job-queue \
    --job-queue-name MyJobQueue \
    --state ENABLED \
    --priority 1 \
    --compute-environment-order order=1,computeEnvironment=MyComputeEnvironment

Step 3: Create a Job Definition

Define how each batch of cookies (job) should be baked. This includes the recipe (Docker image), number of ovens (vCPUs), and memory requirements.

aws batch register-job-definition \
    --job-definition-name MyJobDefinition \
    --type container \
    --container-properties image=amazonlinux,vcpus=2,memory=2000,command=["echo", "Hello, AWS Batch"]

Step 4: Submit a Job

Submit an order to bake cookies using the defined recipe and wait for the manager to allocate the necessary resources.

aws batch submit-job \
    --job-name MyFirstBatchJob \
    --job-queue MyJobQueue \
    --job-definition MyJobDefinition

Understanding Through an Example

Let's say you need to process a large dataset. You can create an AWS Batch job to handle this, specifying the compute resources and environment. AWS Batch will then manage the execution, scaling up or down as needed, similar to how a bakery manager would handle multiple orders with limited resources.

Conclusion and Summary

AWS Batch simplifies the process of running batch computing workloads by automating resource management, job scheduling, and execution. It ensures that jobs are run efficiently, even at scale, much like a smart bakery manager optimizes the baking process.

Test Your Understanding

  1. Can you explain what a compute environment is in the context of AWS Batch?
  2. How would you set up a job queue and what is its purpose?
  3. What is the role of a job definition, and why is it important?

Reference

For further reading, you can visit the AWS Batch Documentation.

728x90

'600===Dev AWS' 카테고리의 다른 글

EBS vs ECR  (0) 2024.06.10
Elastic Container Registry Introduced  (0) 2024.06.10
Create a sample AWS Batch  (0) 2024.06.07
AWS Introduced  (0) 2024.05.28