AWS Batch
사용 설명서

어레이 작업

어레이 작업은 작업 정의, vCPU 및 메모리와 같은 공통 파라미터를 공유하는 작업입니다. 여러 호스트에 걸쳐 배포될 수 있으며 동시에 실행할 수 있는 관련 개별 기본 작업의 모음으로 실행됩니다. 어레이 작업은 Monte Carlo 시뮬레이션, 파라미터 스윕 또는 대규모 렌더링 작업과 같이 곤혹스러운 병렬 작업을 처리하는 가장 효율적인 방법입니다.

AWS Batch 배열 작업은 정기 작업과 같이 제출됩니다. 하지만 어레이 크기(2~10,000)를 지정하여 얼마나 많은 하위 작업이 어레이에서 실행되어야 하는지를 정의합니다. 어레이 크기가 1,000인 작업을 제출하는 경우 단일 작업은 1,000개의 하위 작업을 실행 및 생성합니다. 어레이 작업은 모든 하위 작업을 관리하는 참조 또는 포인터입니다. 이를 통해 단일 쿼리를 포함한 대규모 워크로드를 제출할 수 있습니다.

배열 작업을 제출하면 상위 배열 작업은 일반 AWS Batch 작업 ID를 가져옵니다. 각 하위 작업은 동일한 기본 ID를 갖지만 하위 작업에 대한 어레이 인덱스는 상위 ID의 끝에 추가됩니다(예: 어레이의 첫 번째 하위 작업의 경우 example_job_ID:0).

실행 시간 시 AWS_BATCH_JOB_ARRAY_INDEX 환경 변수가 컨테이너의 해당 어레이 인덱스 번호에 설정됩니다. 첫 번째 어레이 작업 인덱스에는 0이 지정되고 이후 시도는 1, 2, 3 등과 같이 오름차순으로 횟수가 지정됩니다. 이 인덱스 값을 사용하여 차별화된 어레이 작업 하위에 따라 관리할 수 있습니다. 자세한 내용은 자습서: 어레이 작업 인덱스를 사용한 작업 차별화 관리 단원을 참조하십시오.

어레이 작업 종속성의 경우 SEQUENTIAL 또는 N_TO_N과 같이 종속성의 유형을 지정할 수 있습니다. 작업 ID를 입력하지 않고 SEQUENTIAL 유형 종속성을 지정할 수 있습니다. 그러면 각 하위 어레이 작업은 인덱스 0부터 순차적으로 완료됩니다. 예를 들어 어레이 크기가 100인 어레이 작업을 제출하고, 종속성 유형을 SEQUENTIAL로 지정한 경우 100개의 하위 작업이 순차적으로 생성됩니다. 그리고 첫 번째 하위 작업이 성공해야 다음 하위 작업이 시작됩니다. 아래 그림은 어레이 크기가 10인 어레이 작업, Job A를 보여줍니다. Job A의 하위 인덱스에 있는 각 작업은 이전 하위 작업에 종속적입니다. Job A:0이 완료된 이후에 Job A:1이 시작할 수 있습니다.

또한 어레이 작업에 대한 작업 ID를 포함하여 N_TO_N 유형 종속성을 지정할 수도 있습니다. 그러면 이 작업의 각 인덱스 하위는 각 종속성의 해당 인덱스 하위가 완료되는 것을 기다려야 시작할 수 있습니다. 아래 그림은 어레이 크기가 각각 4인 2개의 어레이 작업, Job A와 Job B를 보여줍니다. Job B의 하위 인덱스에 있는 각 작업은 Job A의 해당 인덱스에 종속적입니다. Job B:1은 Job A:1이 완료될 때까지 시작할 수 없습니다.

상위 어레이 작업을 취소 또는 종료한 경우 모든 하위 작업이 취소 또는 종료됩니다. 다른 하위 작업에 영향을 미치지 않고 개별 하위 작업을 취소 또는 종료할 수 있습니다(FAILED 상태로 변경됨). 하지만 하위 어레이 작업이 실패한 경우(자체적으로 실패 또는 수동으로 취소/종료) 상위 작업 또한 실패합니다.