크로키, AWS Batch로 주기적 작업 자동화 시스템 구축

by DD
6년 전
조회수 10

EC2, Lambda, ECS Fargate를 거쳐 AWS Batch로 주기적 작업 실행 환경을 구축함

Docker 이미지 기반 작업 실행, 실패 알림로그 관리 편의성 확보

1 vCPU 단위 할당의 리소스 낭비와 같은 단점 존재

AWS Batch 아키텍처 심층 분석

AWS Batch는 EC2 인스턴스 기반의 컴퓨팅 환경을 제공하여 Docker 컨테이너를 실행한다. 구체적으로 CloudFormation을 통해 인프라를 코드화하여 관리한다. 따라서 작업 큐(Job Queue)를 통해 작업의 우선순위 및 실행 환경을 제어하고, CloudWatch Events를 활용하여 작업 스케줄링을 자동화한다.

AWS Batch의 장단점 비교

AWS Batch는 Docker 이미지 기반으로 작업 실행이 용이하고, 실패 알림로그 관리 기능을 제공한다. 반면, 1 vCPU 단위의 리소스 할당으로 인해 자원 낭비가 발생할 수 있다. 따라서 Apache AirflowKubernetes CronJob과 같은 대안을 고려하여 유연성을 확보할 수 있다.

AWS Batch 실전 적용 가이드

AWS Batch를 사용할 때, 작업 중복 실행 방지를 위해 현재 실행 중인 작업을 확인하는 로직을 구현해야 한다. 구체적으로 batch:ListJobs 권한을 활용하여 작업 상태를 검사한다. 따라서 작업 정의(Job Definition) 내에서 RetryStrategy 설정을 통해 작업 실패 시 재시도를 구성하고, CloudWatch Events를 활용하여 작업 스케줄링을 자동화한다.

크로키의 스택 - AWS Batch

댓글 0

첫 번째 댓글을 남겨보세요!