Infra/AWS

[AWS] AWS Batch 설정 가이드

Joonfluence 2024. 12. 1.

AWS Batch를 설정하고 사용하는 과정은 여러 단계로 나뉘며, 클러스터를 구성하고 작업 대기열을 생성하며 작업 정의를 설정하는 것이 핵심입니다. 아래는 AWS Batch 설정을 위한 단계별 가이드입니다.

1. AWS Batch 환경 구성

(1) 컴퓨팅 환경 생성

AWS Batch에서 작업을 실행할 인프라 환경입니다. 이를 통해 EC2 인스턴스를 자동으로 시작하고 관리할 수 있습니다.

  1. AWS Management Console에서 AWS Batch 서비스로 이동.
  2. Compute Environments로 이동 후 Create 버튼 클릭.
  3. Managed Environment를 선택 (AWS Batch가 인프라를 자동으로 관리).
  4. Instance Types: 작업에 필요한 EC2 유형을 선택하거나 특정 유형을 지정.
  5. Desired vCPUs: 처리에 필요한 최소 및 최대 vCPU 수 설정.
  6. Service Role: AWS Batch가 EC2를 시작/중지하도록 허용하는 IAM 역할을 설정.

2. 작업 대기열 (Job Queue) 생성

작업 대기열은 AWS Batch 작업이 대기하는 공간입니다.

  1. Job Queues로 이동 후 Create 클릭.
  2. Name: 대기열 이름 입력.
  3. Priority: 대기열 우선순위 설정 (숫자가 높을수록 우선).
  4. Compute Environment 연결:
    • 1단계에서 생성한 컴퓨팅 환경을 추가.

3. 작업 정의 (Job Definition) 생성

작업 정의는 실행할 작업의 세부사항을 설정합니다.

  1. Job Definitions로 이동 후 Create 클릭.
  2. Name: 작업 정의 이름 입력.
  3. Container Image:
    • 실행할 Docker 컨테이너 이미지 (Amazon ECR, Docker Hub 등).
  4. vCPUs 및 Memory:
    • 작업에 필요한 CPU 및 메모리 자원 설정.
  5. Command:
    • 컨테이너 내에서 실행할 명령어 정의.
  6. IAM Role:
    • 작업에서 AWS 리소스에 접근할 수 있는 IAM 역할 지정.

4. 작업 제출 (Submit Job)

이제 작업을 대기열에 제출하여 실행할 수 있습니다.

  1. Jobs로 이동 후 Submit Job 클릭.
  2. Name: 작업 이름 입력.
  3. Job Definition:
    • 3단계에서 생성한 작업 정의를 선택.
  4. Job Queue:
    • 작업이 대기할 대기열 선택.
  5. Parameters (옵션):
    • 작업에 전달할 추가 매개변수 정의.

5. 스케쥴링

  1. 이벤트 버스 생성
    • AWS Management Console 또는 CLI에서 커스텀 이벤트 버스 생성.
  2. 규칙 생성
    • 이벤트 패턴 정의.
    • 규칙이 트리거될 대상 설정.
  3. 이벤트 소스 등록
    • SaaS 애플리케이션 또는 AWS 서비스 이벤트를 소스에 추가.
  4. 테스트 및 모니터링
    • 이벤트 흐름이 올바르게 작동하는지 확인.
    • Amazon CloudWatch Logs와 통합하여 디버깅.

6. 자동 확장 및 모니터링

(1) 자동 확장

AWS Batch는 작업량에 따라 EC2 인스턴스를 자동으로 시작 및 중지합니다. 이를 위해 Desired vCPUs 설정이 중요합니다.

(2) CloudWatch Logs

작업 로그를 확인하려면 CloudWatch Logs를 활성화하세요. 이는 작업 실패 원인 등을 분석할 때 유용합니다.

추가 팁

  1. 사용 사례에 따른 구성
    • CPU 집약적 작업: c5.large, c5.xlarge 같은 인스턴스 추천.
    • 메모리 집약적 작업: r5.large, r5.xlarge 추천.
  2. Spot Instances 활용
    • 비용 절감을 위해 Spot Instances를 선택 가능.
반응형

댓글