Amazon MWAA 작업자 오토 스케일링 구성
오토 스케일링 메커니즘은 Amazon Managed Workflows for Apache Airflow 환경에서 실행 중인 작업과 대기 중인 작업에 대한 응답으로 Apache Airflow 작업자 수를 자동으로 늘리고, 대기 중이거나 실행 중인 작업이 더 이상 없을 때는 추가 작업자를 처리합니다. 이 페이지에서는 Amazon MWAA 콘솔을 사용하여 사용자 환경에서 실행되는 Apache Airflow 작업자의 최대 수를 지정하여 오토 스케일링을 구성하는 방법을 설명합니다.
참고
Amazon MWAA는 Apache Airflow 지표를 사용하여 Celery Executormax-workers
에서 지정한 값까지 늘립니다. 추가 작업자가 작업을 완료하고 작업 부하가 감소하면 Amazon MWAA가 해당 작업자를 제거하므로 min-workers
에서 설정한 값으로 축소됩니다.
작업자가 축소 중에 새로운 작업을 선택하는 경우 Amazon MWAA에서 Fargate 리소스를 유지하고 작업자를 제거하지 않습니다. 자세한 내용은 Amazon MWAA 오토 스케일링 작동 방식을 참조하세요.
작업자 규모 조정 작동 방식
Amazon MWAA는 RunningTasks
및 QueuedTasks
지표를 사용합니다. 여기서 (실행 중인 작업 + 대기 중인 작업)/(작업자당 작업) = (필요한 작업자)입니다. 필요한 작업자 수가 현재 작업자 수보다 많으면 Amazon MWAA는 Fargate 작업자 컨테이너를 이 값에 max-workers
에서 지정한 최대값까지 추가합니다.
워크로드가 감소하고 RunningTasks
및 QueuedTasks
지표 합계가 감소함에 따라 Amazon MWAA는 Fargate에 환경에 맞게 작업자를 스케일 다운하도록 요청합니다. 여전히 작업을 완료하는 작업자는 작업을 완료할 때까지 스케일 다운 중에 보호 상태를 유지합니다. 워크로드에 따라 작업자가 스케일 다운되는 동안 작업이 대기열에 있을 수 있습니다.
Amazon MWAA 콘솔 사용
Amazon MWAA 콘솔에서 사용자 환경에서 동시에 실행할 최대 작업자 수를 선택할 수 있습니다. 기본적으로 최대값을 최대 25까지 지정할 수 있습니다.
작업자 수를 구성하려면
-
Amazon MWAA 콘솔에서 환경 페이지
를 엽니다. -
환경을 선택합니다.
-
편집을 선택합니다.
-
다음을 선택합니다.
-
환경 클래스 창의 최대 작업자 수에 값을 입력합니다.
-
Save(저장)를 선택합니다.
참고
환경에 변경 사항이 적용되려면 몇 분 정도 걸릴 수 있습니다.
고성능 사용 사례 예시
다음 섹션에서는 환경에서 고성능 및 병렬 처리를 활성화하는 데 사용할 수 있는 구성 유형에 대해 설명합니다.
온프레미스 Apache Airflow
일반적으로 온프레미스 Apache Airflow 플랫폼에서는 airflow.cfg
파일에서 작업 병렬성, 오토 스케일링 및 동시성 설정을 구성합니다.
-
core.parallelism
– 스케줄러당 동시에 실행할 수 있는 최대 작업 인스턴스 수입니다. -
core.dag_concurrency
– DAG의 최대 동시성(작업자 아님) -
celery.worker_autoscale
– 모든 작업자에서 동시에 실행할 수 있는 최대 및 최소 작업 수입니다.
예를 들어 core.parallelism
을(를) 100
(으)로 설정하고 core.dag_concurrency
을(를) 7
(으)로 설정한 경우 DAG가 2개인 경우에도 총 14
개의 작업만 동시에 실행할 수 있습니다. 전체 병렬 처리가 core.parallelism
에서 100
(으)로 설정되어 있더라도 각 DAG는 core.dag_concurrency
에서 7개의 작업만 동시에 실행하도록 설정되어 있습니다.
Amazon MWAA 환경
Amazon MWAA 환경에서는 Amazon MWAA에서 Apache Airflow 구성 옵션 사용, Amazon MWAA 환경 클래스 구성 및 최대 작업자 수 오토 스케일링 메커니즘을 사용하여 Amazon MWAA 콘솔에서 이러한 설정을 직접 구성할 수 있습니다. Amazon MWAA 콘솔의 Apache Airflow 구성 옵션으로는 드롭다운 목록에서 core.dag_concurrency
를 사용할 수 없지만 사용자 지정 Apache Airflow 구성 옵션으로 추가할 수 있습니다.
환경을 만들 때 다음 설정을 선택했다고 가정해 보겠습니다.
-
각 워커가 기본적으로 실행할 수 있는 최대 동시 작업 수와 컨테이너의 vCPU를 제어하는 mw1.small 환경 클래스입니다.
-
최대 작업자 수의
10
작업자 기본 설정입니다. -
작업자당
5,5
작업 중celery.worker_autoscale
작업에 대한 Apache Airflow 구성 옵션입니다.
즉, 해당 환경에서 50개의 작업을 동시에 실행할 수 있습니다. 50개를 초과하는 모든 작업은 대기열에 추가되며 실행 중인 작업이 완료될 때까지 기다립니다.
더 많은 동시 작업을 실행합니다. 다음 구성을 사용하여 더 많은 작업을 동시에 실행하도록 환경을 수정할 수 있습니다.
-
mw1.medium
(기본 동시 작업 10개) 환경 클래스를 선택하여 각 작업자가 기본적으로 실행할 수 있는 최대 동시 작업 수와 컨테이너의 vCPU를 늘립니다. -
celery.worker_autoscale
을(를) Apache Airflow 구성 옵션으로 추가합니다. -
최대 작업자 수를 늘립니다. 이 예제에서 최대 작업자를
10
에서20
(으)로 늘리면 환경에서 실행할 수 있는 동시 작업 수가 두 배로 늘어납니다.
최소 작업자를 지정합니다. AWS Command Line Interface(AWS CLI)을(를) 사용하여 사용자 환경에서 실행되는 Apache Airflow 작업자의 최소 및 최대 수를 지정할 수도 있습니다. 예:
aws mwaa update-environment --max-workers 10 --min-workers 10 --name
YOUR_ENVIRONMENT_NAME
자세한 내용은 AWS CLI의 update-environment 명령을 참조하십시오.
실행 상태에서 멈춘 작업 문제 해결
드문 경우이긴 하지만 Apache Airflow는 작업이 아직 실행 중이라고 생각할 수 있습니다. 이 문제를 해결하려면 Apache Airflow UI에서 문제가 있는 작업을 지워야 합니다. 자세한 정보는 작업이 중단되거나 완료되지 않은 것으로 보임 문제 해결 단원을 참조하십시오.
다음 단계
-
Amazon MWAA의 Apache Airflow 성능 튜닝에서 환경 성능 조정을 위해 권장하는 모범 사례에 대해 자세히 알아봅니다.