AWS Batch에서는 AWS Management Console, CLI 또는 SDK를 사용하여 간단하게 배치 작업용 코드를 패키징하고, 종속성을 지정하며, 배치 작업을 제출합니다. AWS Batch를 사용하면 실행 파라미터와 작업 종속성을 지정할 수 있고, 널리 사용되는 다양한 배치 컴퓨팅 워크플로 엔진 및 언어(예: Pegasus WMS, Luigi, Nextflow, Metaflow, Apache Airflow 및 AWS Step Functions)와 손쉽게 통합할 수 있습니다. AWS Batch는 작업 요구 사항에 따라 Amazon EC2스팟 인스턴스를 효율적 및 동적으로 프로비저닝합니다. AWS Batch는 사용자가 신속하게 시작할 수 있도록 기본 작업 대기열과 컴퓨팅 환경 정의를 제공합니다.

동적 컴퓨팅 리소스 프로비저닝 및 조정

AWS Batch는 제출된 작업의 볼륨 및 리소스 요구 사항에 따라 컴퓨팅 리소스를 동적으로 프로비저닝하고 조정하는 관리형 컴퓨팅 환경을 제공합니다. EC2 인스턴스 유형, VPC 서브넷 구성, 모든 인스턴스에 서 최소/최대/원하는 vCPU, 스팟 인스턴스에 대해 기꺼이 지불할 금액(온디맨드 인스턴스 요금에 대한 백분율)과 같은 요구 사항으로 AWS Batch 관리형 컴퓨팅 환경을 구성할 수 있습니다.

또는 AWS Batch 관리형 컴퓨팅 환경에서 제공하는 구성과는 다른 EC2 인스턴스용 구성(예: 더 큰 EBS 볼륨 또는 다른 운영 체제)을 사용해야 하는 경우 AWS Batch 비관리형 컴퓨팅 환경 내에서 자체 컴퓨팅 리소스를 프로비저닝하고 관리할 수 있습니다. Amazon ECS 에이전트가 포함된 EC2 인스턴스를 프로비저닝하고 지원되는 버전의 Linux 및 Docker를 실행하면 됩니다. 그러면 AWS Batch는 사용자가 프로비저닝한 EC2 인스턴스에서 배치 작업을 실행합니다.

긴밀하게 결합된 HPC 워크로드 지원

AWS Batch는 여러 EC2 인스턴스에 걸쳐 있는 단일 작업을 실행할 수 있는 다중 노드 병렬 작업을 지원합니다. 이 기능을 통해 AWS Batch를 사용하여 긴밀하게 결합된 더 큰 규모의 High Performance Computing(HPC) 애플리케이션 또는 분산 GPU 모델 교육과 같은 워크로드를 쉽고 효율적으로 실행할 수 있습니다. 또한 AWS Batch는 AWS의 대규모에 따라 높은 수준의 노드 간 통신이 필요한 애플리케이션을 실행할 수 있게 해주는 네트워크 인터페이스인 Elastic Fabric Adapter도 지원합니다. 

세분화된 작업 정의 및 단순한 작업 종속성 모델링

AWS Batch를 사용하면 vCPU 및 메모리와 같은 리소스 요구 사항, AWS Identity and Access Management(IAM) 역할, 볼륨 탑재 지점, 컨테이너 속성 및 환경 변수를 지정하여 작업이 실행되는 방식을 정의할 수 있습니다. AWS Batch는 작업을 Amazon ECS에서 실행되는 컨테이너식 애플리케이션으로 실행합니다. Batch를 사용하면 서로 다른 작업 간에 종속성을 정의할 수 있습니다. 예를 들어 배치 작업이 서로 다른 리소스 요구 사항을 가진 서로 다른 3개의 처리 단계로 구성될 수 있습니다. 종속성을 사용하면 서로 다른 리소스 요구 사항을 가지며 이전 작업에 따라 다음 작업이 결정되는 3개의 작업을 생성할 수 있습니다.

우선순위 기반 작업 예약

AWS Batch를 사용하면 서로 다른 우선순위 수준으로 여러 개의 대기열을 설정할 수 있습니다. 배치 작업은 컴퓨팅 리소스가 작업을 실행할 수 있을 때까지 대기열에 저장됩니다. AWS Batch 스케줄러는 각 작업의 리소스 요구 사항을 기반으로 대기열에 제출된 작업을 언제 어디서 어떻게 실행할지 평가합니다. 스케줄러는 각 대기열의 우선순위를 평가하고, 해당 작업에 대기 중인 종속성이 없는 한, 최적의 컴퓨팅 리소스(예: 메모리 대 CPU 최적화)에서 우선순위에 따라 작업을 실행합니다.

GPU 일정 설정 지원

GPU 일정 설정을 사용하면 AWS Batch의 작업 정의 입력 변수로 작업에 필요한 액셀러레이터의 수와 유형을 지정할 수 있습니다. AWS Batch는 필요한 GPU 수를 토대로 작업에 적합하게 인스턴스의 크기를 확장하고, 적절한 컨테이너만 액셀러레이터에 액세스할 수 있도록 각 작업의 요구에 따라 액셀러레이터를 격리합니다.

AWS Batch는 Pegasus WMS, Luigi, Nextflow, Metaflow, Apache Airflow 및 AWS Step Functions와 같은 상용 및 오픈 소스 워크플로 엔진 및 언어와 통합될 수 있으므로 익숙한 워크플로 언어를 사용하여 배치 컴퓨팅 파이프라인을 모델링할 수 있습니다.

EC2 시작 템플릿과 통합

이제 AWS Batch에서 EC2 시작 템플릿을 지원하므로, 컴퓨팅 리소스에 맞게 사용자 지정된 템플릿을 구축할 수 있으며 Batch를 통해 해당 요구 사항에 맞춰 인스턴스 규모를 조정할 수 있습니다. EC2 시작 템플릿을 지정하여 스토리지 볼륨을 추가하거나 네트워크 인터페이스를 지정하거나 권한을 구성하는 등의 다양한 작업을 수행할 수 있습니다. EC2 시작 템플릿은 한 리소스 내의 시작 파라미터를 캡처함으로써 Batch 환경을 구성하는 데 필요한 단계 수를 줄입니다.

유연한 할당 전략

AWS Batch를 사용하면 고객이 컴퓨팅 리소스를 할당하는 세 가지 방법 중에서 선택할 수 있습니다. 이러한 전략을 사용하는 고객은 AWS Batch가 사용자를 대신해 인스턴스 규모를 조정하는 방법을 결정할 때 처리량뿐 아니라 요금을 고려할 수 있습니다.

최적 적합: AWS Batch가 비용이 가장 저렴한 인스턴스 유형을 최우선으로 고려하여 작업 요구에 가장 적합한 인스턴스 유형을 선택합니다. 선택한 인스턴스 유형의 추가 인스턴스를 사용할 수 없는 경우, AWS Batch는 추가 인스턴스를 사용할 수 있게 될 때까지 기다립니다. 사용 가능한 인스턴스가 충분하지 않거나 사용자가 Amazon EC2 서비스 사용량 한도까지 모두 사용한 경우에는 현재 실행 중인 작업이 완료될 때까지 추가 작업이 실행되지 않습니다. 이 할당 전략은 비용은 저렴하지만 인스턴스 규모를 조정하는 데 한계가 있을 수 있습니다.

최적 적합 진행형: AWS Batch가 vCPU당 비용이 더 저렴한 인스턴스 유형을 최우선으로 고려하여 대기열에 있는 작업의 요구 사항을 충족하는 데 충분한 만큼의 추가 인스턴스 유형을 선택합니다. 이전에 선택된 인스턴스 유형의 추가 인스턴스를 사용할 수 없는 경우에는 AWS Batch가 새로운 인스턴스 유형을 선택합니다.

스팟 용량 최적화: AWS Batch가 중단될 확률이 적은 인스턴스 유형을 최우선으로 고려하여 대기열에 있는 작업의 요구 사항을 충족하는 데 충분한 만큼의 인스턴스 유형을 하나 이상 선택합니다. 이 할당 전력은 스팟 인스턴스 컴퓨팅 리소스에만 사용할 수 있습니다.

통합된 모니터링 및 로깅

AWS Batch는 AWS Management Console에 배치 작업에 대한 주요 운영 지표를 표시합니다. 컴퓨팅 파워에 관한 지표와 실행 중, 지연 중 및 완료된 작업을 볼 수 있습니다. 작업에 대한 로그(예: STDERR, STDOUT)는 AWS Management Console에서 볼 수 있으며, Amazon CloudWatch Logs에도 작성됩니다.

세분화된 액세스 제어

AWS Batch는 IAM을 사용하여 작업이 액세스할 수 있는 AWS 리소스(예: Amazon DynamoDB)를 제어하고 모니터링합니다. 또한, IAM을 통해 조직 내 서로 다른 사용자에 대한 정책을 정의할 수 있습니다. 예를 들어 관리자에게는 모든 AWS Batch API 작업에 대한 전체 액세스 권한을 부여하고, 개발자에게는 컴퓨팅 환경 구성과 작업 등록과 관련된 제한된 권한을 부여하며, 최종 사용자는 작업을 제출하고 삭제하는 데 필요한 권한만 갖도록 제한할 수 있습니다.

AWS Batch 요금에 대해 자세히 알아보십시오

요금 페이지로 이동하기
구축할 준비가 되셨습니까?
AWS Batch 시작하기
추가 질문이 있으십니까?
문의처