개인 일정/공부

Apache Airflow 란?

박경태 2023. 12. 10. 23:48

Apache Airflow 란

Apache Airflow는 데이터 파이프라인을 조율하고 스케줄링하는 오픈 소스 플랫폼입니다. Airflow는 워크플로우를 정의하고 관리하며, 이를 실행하고 모니터링할 수 있는 강력한 도구를 제공합니다. 데이터 엔지니어링, 데이터 사이언스, 비즈니스 인텔리전스 등 다양한 분야에서 사용됩니다.

다음은 Apache Airflow의 주요 특징과 구성 요소에 대한 간단한 설명입니다:

1. **DAGs (Directed Acyclic Graphs):** Airflow에서 작업 흐름은 Directed Acyclic Graphs(DAGs)로 정의됩니다. DAG는 노드와 간선으로 이루어진 그래프로, 각 노드는 작업을 나타내며, 간선은 작업 간의 의존성을 나타냅니다.

2. **Operators:** 작업은 Operators를 사용하여 정의됩니다. Operators는 특정 작업 유형을 나타내며, 각 작업이 실행될 때 수행되어야 하는 작업을 정의합니다. 예를 들어, BashOperator는 셸 명령을 실행하고, PythonOperator는 파이썬 함수를 실행합니다.

3. **Scheduler:** Airflow 스케줄러는 정의된 DAG를 기반으로 작업 실행을 관리합니다. 스케줄러는 DAG에 정의된 각 작업을 실행해야 하는 시간을 계산하고, 실행 시간이 되면 실행자(Executor)에 작업을 할당합니다.

4. **Executor:** 실행자는 작업을 실행하는 환경을 제공합니다. LocalExecutor, CeleryExecutor, KubernetesExecutor 등 다양한 실행자가 제공되며, 이를 통해 작업을 분산하거나 컨테이너에서 실행할 수 있습니다.

5. **Web UI:** Airflow는 웹 기반 사용자 인터페이스를 제공하여 DAG, 작업, 실행 등을 모니터링하고 관리할 수 있습니다. 사용자는 이 UI를 통해 작업 실행 상태를 시각적으로 확인하고 조작할 수 있습니다.

6. **Hooks and Connections:** Airflow는 외부 시스템과의 상호 작용을 위해 Hooks와 Connections을 제공합니다. Hook은 특정 시스템과 통신하는 데 사용되며, Connection은 연결 세부 정보를 저장하는 데 사용됩니다.

7. **XComs:** 작업 간에 데이터를 전달하기 위한 메커니즘으로 XComs를 사용합니다. 작업에서 생성된 데이터를 다른 작업에서 사용하거나 공유할 수 있습니다.

8. **Plugins:** Airflow는 다양한 플러그인을 통해 기능을 확장할 수 있습니다. 여러 데이터베이스, 메시징 시스템, 작업자 유형 등과의 통합이 가능합니다.

Apache Airflow는 복잡한 데이터 처리 작업을 효율적으로 관리하고 모니터링하기 위한 강력한 도구이며, 대규모 데이터 파이프라인을 관리하는 데 적합합니다.

 

MWAA 란

MWAA는 AWS에서 제공하는 "Managed Apache Airflow" 서비스로서, Airflow를 클라우드 환경에서 손쉽게 관리하고 실행할 수 있도록 지원합니다. MWAA는 사용자가 Apache Airflow 워크플로우를 쉽게 구성, 실행, 모니터링하고, 확장할 수 있는 환경을 제공합니다.

다음은 MWAA의 주요 특징과 구성 요소에 대한 설명입니다:

1. **Fully Managed Service:** MWAA는 완전히 관리되는 서비스로, 사용자는 인프라 구성, 확장, 관리에 대한 걱정 없이 Airflow 워크플로우에 집중할 수 있습니다. AWS가 서비스를 관리하므로 유지보수 및 업그레이드에 대한 부담이 줄어듭니다.

2. **Integration with AWS Services:** MWAA는 다양한 AWS 서비스와의 통합을 지원합니다. 예를 들어, Amazon S3, Amazon RDS, Amazon Redshift 등과의 통합을 통해 데이터를 저장하고 처리하는 데 용이합니다.

3. **Scalability:** MWAA는 작업 부하에 따라 자동으로 확장되므로 대규모 데이터 처리 워크로드를 다루기에 적합합니다. 필요에 따라 인스턴스 수를 조절하고 성능을 최적화할 수 있습니다.

4. **Security:** MWAA는 AWS Identity and Access Management (IAM)을 사용하여 접근 제어를 관리하며, 데이터 전송을 위한 암호화와 같은 보안 기능을 제공합니다.

5. **Airflow Version Upgrades:** MWAA에서는 Apache Airflow의 새로운 버전이 나오면 AWS가 업데이트를 관리하므로 사용자는 새로운 기능과 개선 사항을 놓치지 않고 활용할 수 있습니다.

6. **Monitoring and Logging:** MWAA는 CloudWatch Logs 및 CloudWatch Metrics와 같은 AWS의 감시 및 로깅 서비스를 통해 워크플로우 실행 및 성능을 모니터링할 수 있습니다.

7. **Custom Plugins and Dependencies:** MWAA는 사용자가 필요로 하는 추가적인 패키지, 라이브러리, 및 플러그인을 사용할 수 있는 환경을 제공합니다.

MWAA를 사용하면 사용자는 인프라스트럭처 관리 및 운영에 대한 복잡성을 최소화하면서 Airflow를 클라우드에서 효과적으로 활용할 수 있습니다.