Amazon MWAA에서 Apache Airflow 구성 옵션 사용 - Amazon Managed Workflows for Apache Airflow

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon MWAA에서 Apache Airflow 구성 옵션 사용

Apache Airflow 구성 옵션은 Amazon Managed Workflows for Apache Airflow 환경에 환경 변수로 연결할 수 있습니다. 제안된 드롭다운 목록에서 선택하거나 Amazon MWAA 콘솔에서 Apache Airflow 버전의 사용자 지정 구성 옵션을 지정할 수 있습니다. 이 페이지에서는 사용 가능한 Apache Airflow 구성 옵션과 이러한 옵션을 사용하여 사용자 환경의 Apache Airflow 구성 설정을 재정의하는 방법을 설명합니다.

필수 조건

이 페이지의 단계를 완료하려면 먼저 다음이 필요합니다.

  • 권한 — 관리자는 사용자 환경에 대한 AmazonMWAA 액세스 액세스 제어 정책에 FullConsole 대한 액세스 권한을 사용자 AWS 계정에 부여했어야 합니다. 또한 실행 역할이 Amazon MWAA 환경에서 사용 중인 AWS 리소스에 액세스할 수 있도록 허용해야 합니다.

  • 액세스 — 종속성을 웹 서버에 직접 설치하기 위해 퍼블릭 리포지토리에 액세스해야 하는 경우 퍼블릭 네트워크 웹 서버 액세스로 환경을 구성해야 합니다. 자세한 내용은 Apache Airflow 액세스 모드 단원을 참조하십시오.

  • Amazon S3 구성 — DAG, plugins.zip의 사용자 지정 플러그인 및 requirements.txt의 Python 종속성을 저장하는 데 사용되는 Amazon S3 버킷퍼블릭 액세스가 차단되고 버전 관리가 활성화된 상태로 구성되어야 합니다.

작동 방식

환경을 생성할 때 Amazon MWAA는 사용자가 Amazon MWAA 콘솔의 Airflow 구성 옵션에 지정한 구성 설정을 사용자 환경의 컨테이너에 환경 변수로 연결합니다. AWS Fargate airflow.cfg에서 같은 이름의 설정을 사용하는 경우 Amazon MWAA 콘솔에서 지정하는 옵션이 airflow.cfg의 값보다 우선합니다.

기본적으로 Amazon MWAA 환경의 Apache Airflow UI에는 표시되지 않지만 구성을 노출하는 설정을 포함하여 Amazon MWAA 콘솔에서 직접 Apache Airflow 구성 옵션을 변경할 수 있습니다. airflow.cfg webserver.expose_config

구성 옵션을 사용하여 Apache Airflow v2에서 플러그인 로드

Apache Airflow v2에서는 기본적으로 core.lazy_load_plugins : True 설정을 사용하여 플러그인이 ‘느리게’ 로드되도록 구성됩니다. Apache Airflow v2에서 사용자 정의 플러그인을 사용하는 경우 각 Airflow 프로세스를 시작할 때 플러그인을 로드하여 기본 설정을 재정의하기 위해 core.lazy_load_plugins : False을(를) Apache Airflow 구성 옵션으로 추가해야 합니다.

구성 옵션 개요

Amazon MWAA 콘솔에 구성을 추가하면 Amazon MWAA가 구성을 환경 변수로 작성합니다.

  • 나열된 옵션. 드롭다운 목록에서 Apache Airflow 버전에 사용할 수 있는 구성 설정 중 하나를 선택할 수 있습니다. 예: dag_concurrency : 16. 구성 설정은 사용자 환경의 Fargate 컨테이너에 AIRFLOW__CORE__DAG_CONCURRENCY : 16와(과) 같이 변환됩니다.

  • 사용자 지정 옵션. 드롭다운 목록에서 Apache Airflow 버전에 대해 나열되지 않은 Airflow 구성 옵션을 지정할 수도 있습니다. 예: foo.user : YOUR_USER_NAME. 구성 설정은 사용자 환경의 Fargate 컨테이너에 AIRFLOW__FOO__USER : YOUR_USER_NAME와(과) 같이 변환됩니다.

Apache Airflow 구성 옵션

다음 이미지는 Amazon MWAA 콘솔에서 Apache Airflow 구성 옵션을 사용자 지정할 수 있는 위치를 보여줍니다.

이 이미지는 Amazon MWAA 콘솔에서 Apache Airflow 구성 옵션을 사용자 지정할 수 있는 위치를 보여줍니다.

Apache Airflow 레퍼런스

Apache Airflow에서 지원하는 구성 옵션 목록은 Apache Airflow 참조 가이드구성 참조를 참조하십시오. Amazon MWAA에서 실행 중인 Apache Airflow 버전의 옵션을 보려면 드롭다운 목록에서 버전을 선택합니다.

Amazon MWAA 콘솔 사용

다음 절차에서는 Airflow 구성 옵션을 환경에 추가하는 단계를 안내합니다.

  1. Amazon MWAA 콘솔에서 환경 페이지를 엽니다.

  2. 환경을 선택합니다.

  3. 편집을 선택합니다.

  4. 다음을 선택합니다.

  5. Airflow 구성 옵션 창에서 사용자 지정 구성 추가를 선택합니다.

  6. 드롭다운 목록에서 구성을 선택하고 값을 입력하거나, 사용자 정의 구성을 입력하고 값을 입력합니다.

  7. 추가하려는 각 구성에 대해 사용자 정의 구성 추가를 선택합니다.

  8. 저장을 선택합니다.

구성 참조

다음 섹션에는 Amazon MWAA 콘솔의 드롭다운 목록에 있는 사용 가능한 Apache Airflow 구성 목록이 포함되어 있습니다.

이메일 구성

다음 목록은 Amazon MWAA에서 사용할 수 있는 Airflow 이메일 알림 구성 옵션을 보여줍니다.

SMTP 트래픽에는 포트 587을 사용하는 것이 좋습니다. 기본적으로 모든 Amazon EC2 인스턴스의 포트 25에서 아웃바운드 SMTP 트래픽을 AWS 차단합니다. 포트 25에서 아웃바운드 트래픽을 보내려는 경우 이 제한을 제거하도록 요청할 수 있습니다.

Apache Airflow v2
Airflow 버전 Airflow 구성 옵션 설명 예시 값

v2

email.email_backend

email_backend의 이메일 알림에 사용되는 Apache Airflow 유틸리티입니다.

airflow.utils.email.send_email_smtp

v2

smtp.smtp_host

smtp_host의 이메일 주소에 사용되는 아웃바운드 서버의 이름입니다.

localhost

v2

smtp.smtp_starttls

전송 계층 보안(TLS)은 smtp_Starttls에서 인터넷을 통해 이메일을 암호화하는 데 사용됩니다.

False

v2

smtp.smtp_ssl

보안 소켓 계층(SSL)은 smtp_ssl에서 서버와 이메일 클라이언트를 연결하는 데 사용됩니다.

True

v2

smtp.smtp_port

smtp_port에서 서버에 지정된 전송 제어 프로토콜(TCP) 포트입니다.

587

v2

smtp.smtp_mail_from

smtp_mail_from의 아웃바운드 이메일 주소입니다.

myemail@domain.com

작업 구성

다음 목록은 Amazon MWAA의 Airflow 작업에 대해 드롭다운 목록에서 사용할 수 있는 구성을 보여줍니다.

Apache Airflow v2
Airflow 버전 Airflow 구성 옵션 설명 예시 값

v2

core.default_task_retries

default_task_retries에서 Apache Airflow 작업을 재시도하는 횟수입니다.

3

v2

core.parallelism

전체 환경에서 병렬로 동시에 실행할 수 있는 작업 인스턴스의 최대 수(병렬 처리).

40

스케줄러 구성

다음 목록은 Amazon MWAA의 드롭다운 목록에서 사용할 수 있는 Apache Airflow 스케줄러 구성을 보여줍니다.

Apache Airflow v2
Airflow 버전 Airflow 구성 옵션 설명 예시 값

v2

scheduler.catchup_by_default

catchup_by_default의 특정 시간 간격을 ‘따라잡기’ 위해 DAG 실행을 생성하도록 스케줄러에 지시합니다.

False

v2

scheduler.scheduler_zombie_task_threshold

스케줄러에게 작업 인스턴스를 실패로 표시하고 scheduler_zombie_task_threshold에 작업을 다시 예약할지 여부를 알려줍니다.

300

작업자 구성

다음 목록은 Amazon MWAA의 드롭다운 목록에서 사용할 수 있는 Airflow 작업자 구성을 보여줍니다.

Apache Airflow v2
Airflow 버전 Airflow 구성 옵션 설명 예시 값

v2

celery.worker_autoscale

worker_autoscaleCelery Executor를 사용하여 모든 작업자에서 동시에 실행할 수 있는 최대 및 최소 작업 수입니다. 값은 max_concurrency,min_concurrency와(과) 같은 순서로 쉼표로 구분해야 합니다.

16,12

웹 서버 구성

다음 목록은 Amazon MWAA의 드롭다운 목록에서 사용할 수 있는 Airflow 웹 서버 구성을 보여줍니다.

Apache Airflow v2
Airflow 버전 Airflow 구성 옵션 설명 예시 값

v2

webserver.default_ui_timezone

default_ui_timezone의 기본 Apache Airflow UI 날짜/시간 설정입니다.

참고

default_ui_timezone 옵션을 설정해도 DAG가 실행되도록 예약된 시간대는 변경되지 않습니다. DAG의 시간대를 변경하려면 사용자 지정 플러그인을 사용합니다. 자세한 정보는 Amazon에서 DAG a의 시간대 변경하기 MWAA을 참조하세요.

America/New_York

트리거 구성

다음 목록은 Amazon MWA에서 사용할 수 있는 Apache Airflow 트리거 구성을 보여줍니다.

Apache Airflow v2
Airflow 버전 Airflow 구성 옵션 설명 예시 값

v2.7

mwaa.triggerer_enabled

Amazon MWAA에서 트리거를 활성화 및 비활성화하는 데 사용됩니다. 기본적으로 이 값은 True로 설정됩니다. False(으)로 설정하면 Amazon MWAA는 스케줄러에서 트리거 프로세스를 시작하지 않습니다.

True

v2.7

triggerer.default_capacity

각 트리거가 병렬로 실행할 수 있는 트리거 수를 정의합니다. Amazon MWAA에서는 두 구성 요소가 나란히 실행되므로 각 트리거와 각 스케줄러별로 이 용량이 설정됩니다. 스케줄러별 기본값은 각각60,,, 및 소형 125 250500, 중형 및 1000 대형, xlarge 및 2xlarge 인스턴스로 설정되어 있습니다.

125

예제 및 샘플 코드

DAG 예제

다음 DAG를 사용하여 email_backend Apache Airflow 구성 옵션을 인쇄할 수 있습니다. Amazon MWAA 이벤트에 대한 응답으로 실행하려면 Amazon S3 스토리지 버킷에서 사용자 환경의 DAG 폴더에 코드를 복사합니다.

from airflow.decorators import dag from datetime import datetime def print_var(**kwargs): email_backend = kwargs['conf'].get(section='email', key='email_backend') print("email_backend") return email_backend @dag( dag_id="print_env_variable_example", schedule_interval=None, start_date=datetime(yyyy, m, d), catchup=False, ) def print_variable_dag(): email_backend_test = PythonOperator( task_id="email_backend_test", python_callable=print_var, provide_context=True ) print_variable_test = print_variable_dag()

이메일 알림 설정 예시

앱 암호를 사용하여 Gmail.com 이메일 계정에 다음과 같은 Apache Airflow 구성 옵션을 사용할 수 있습니다. 자세한 내용은 Gmail 도움말 참조 가이드앱 암호를 사용하여 로그인하기를 참조하십시오.

이 이미지는 MWAA 콘솔의 Apache Airflow 구성 옵션을 사용하여 gmail.com 이메일 계정을 구성하는 방법을 보여줍니다.

다음 단계