본문으로 건너뛰기

Batch

1 AWS Batch

  • AWS Batch는 개발자가 배치 컴퓨팅 작업을 손쉽게 실행할 수 있도록 도와주는 관리형 서비스입니다.
  • 대규모의 컴퓨팅 작업을 효율적으로 처리할 수 있으며, 필요에 따라 컴퓨팅 자원을 자동으로 조절합니다.

2 주요 기능

2.1 자동 리소스 프로비저닝

  • AWS Batch는 작업의 요구 사항에 따라 EC2 인스턴스를 자동으로 프로비저닝합니다.
  • 필요한 컴퓨팅 자원을 자동으로 할당하고 관리하므로 사용자는 인프라 관리에 신경 쓸 필요가 없습니다.

2.2 다양한 작업 유형 지원

  • 단일 작업부터 복잡한 워크플로우까지 다양한 배치 작업을 지원합니다.
  • Docker 컨테이너를 사용하여 애플리케이션을 패키징하고 배포할 수 있습니다.
  • EC2 및 Spot 인스턴스를 사용하여 비용을 절감할 수 있습니다.

2.3 큐 관리

  • 작업 우선순위를 지정하고, 작업이 실행될 큐를 관리할 수 있습니다.
  • 우선순위가 높은 작업을 먼저 실행하도록 설정할 수 있습니다.
  • 큐에 대기 중인 작업이 많을 경우, AWS Batch는 추가 리소스를 자동으로 할당하여 처리 속도를 높입니다.

2.4 모니터링 및 로깅

  • AWS Batch는 CloudWatch와 통합되어 작업 상태와 리소스 사용량을 모니터링할 수 있습니다.
  • 작업 로그는 Amazon CloudWatch Logs에 저장되므로 쉽게 액세스하고 분석할 수 있습니다.

3 사용 사례

3.1 대규모 데이터 처리

  • AWS Batch는 빅 데이터 처리, 예를 들어 데이터 분석 및 ETL 작업에 적합합니다.
  • 대규모 데이터 세트를 빠르고 효율적으로 처리할 수 있습니다.

3.2 과학적 계산

  • 과학 연구 및 엔지니어링 시뮬레이션과 같은 계산 집약적인 작업에 AWS Batch를 사용할 수 있습니다.
  • 고성능 컴퓨팅(HPC) 작업을 지원하며, 필요한 자원을 자동으로 스케일링합니다.

3.3 이미지 및 비디오 처리

  • AWS Batch를 사용하여 대량의 이미지와 비디오 파일을 처리할 수 있습니다.
  • 예를 들어, 대규모의 비디오 파일을 인코딩하거나 이미지 파일을 변환하는 작업에 사용할 수 있습니다.

4 요금

  • AWS Batch는 사용한 리소스에 대해서만 비용을 지불하는 방식입니다.
  • EC2 인스턴스 및 스토리지 사용량에 따라 요금이 부과됩니다.
  • Spot 인스턴스를 활용하면 비용을 더욱 절감할 수 있습니다.

5 Batch vs Lambda

5.1 Lambda

  • 시간 제한
    • Lambda 함수는 최대 실행 시간이 15분으로 제한됩니다.
  • 제한된 런타임
    • Lambda는 특정 언어와 런타임만 지원합니다.
  • 제한된 임시 디스크 공간
    • Lambda 함수는 최대 512MB의 임시 디스크 공간을 사용할 수 있습니다.
  • 서버리스
    • Lambda는 서버리스 컴퓨팅 환경을 제공하여 인프라 관리 없이 코드를 실행할 수 있습니다.

5.2 Batch

  • 시간 제한 없음
    • Batch 작업에는 실행 시간 제한이 없으며, 장기 실행 작업을 처리할 수 있습니다.
  • 모든 런타임 지원
    • Batch는 Docker 이미지를 사용하여 모든 언어와 런타임을 지원합니다.
  • EBS / 인스턴스 스토어에 의존
    • Batch 작업은 EBS(Elastic Block Store) 또는 인스턴스 스토어를 사용하여 필요한 디스크 공간을 확보할 수 있습니다.
  • EC2에 의존
    • Batch는 EC2 인스턴스에서 실행되지만, AWS에서 이를 자동으로 관리해주기 때문에 사용자가 직접 관리할 필요는 없습니다.

6 스케줄링

  • AWS Batch 자체에는 스케줄링 기능이 내장되어 있지 않습니다.
  • 작업을 주기적으로 실행하거나 특정 시간에 시작하려면 외부 서비스를 사용해야 합니다. 대표적인 방법으로 Amazon EventBridge 또는 AWS CloudWatch Events를 사용할 수 있습니다.
  • Amazon EventBridge를 사용하면 시간 기반 규칙을 생성하여 Batch 작업을 일정에 맞춰 실행할 수 있습니다. 예를 들어, 매일 자정마다 데이터 처리 작업을 자동으로 시작하도록 설정할 수 있습니다.
  • AWS CloudWatch Events도 유사한 기능을 제공하며, 시간 기반 이벤트를 생성하여 Batch 작업을 트리거할 수 있습니다.
  • 이러한 스케줄링 옵션을 통해 정기적인 배치 작업을 자동화하고 관리할 수 있습니다.

참고 자료