1. Apache Airflow란?
Apache Airflow는 워크플로우(Workflow) 및 데이터 파이프라인을 관리하는 오픈소스 오케스트레이션 도구입니다.
주요 역할은 다음과 같습니다.
✅ 워크플로우 정의 및 실행
• DAG(Directed Acyclic Graph, 방향성 비순환 그래프) 기반으로 작업(Task) 간 실행 순서를 정의하고 자동화
• Python을 사용하여 코드 기반으로 워크플로우 작성
✅ 스케줄링 및 모니터링
• 특정 주기(Cron, Time-based) 또는 이벤트 기반으로 작업 실행
• 실행 상태(성공, 실패, 재시도 등) 모니터링 및 로깅 제공
✅ 확장성과 유연성
• AWS, GCP, Kubernetes 등 다양한 실행 환경과 연동 가능
• CeleryExecutor, KubernetesExecutor 등을 활용하여 확장 가능
이처럼 Airflow는 데이터 엔지니어링 및 DevOps 업무에서 필수적인 도구로 사용됩니다.
2. Apache Airflow의 아키텍처
Airflow는 여러 주요 컴포넌트로 구성되며, 각 요소가 협력하여 DAG 실행을 관리합니다.
(1) Web Server
• Flask 기반 웹 UI를 제공하여 DAG 실행 상태 모니터링
• 실행 이력 확인 및 DAG 수동 실행 기능 제공
(2) Scheduler
• DAG 정의를 주기적으로 스캔하고 실행해야 할 태스크(Task)를 결정
• Task 간의 의존성 분석 및 실행 순서 관리
• Task 실행을 Worker에게 할당
(3) Executor
• 태스크 실행을 담당하는 모듈
• 여러 종류의 Executor 지원
• LocalExecutor: 단일 노드에서 실행
• CeleryExecutor: 분산 환경에서 실행 (RabbitMQ, Redis 활용)
• KubernetesExecutor: 쿠버네티스 기반 태스크 실행
(4) Worker
• Scheduler가 할당한 태스크를 실제 실행하는 노드
• 실행 결과를 기록하고 완료 상태를 Scheduler에 전달
(5) Metadata Database
• DAG 실행 이력, 태스크 상태, 설정 정보 저장
• PostgreSQL, MySQL 같은 관계형 데이터베이스(RDBMS) 활용
(6) Message Queue (선택 사항)
• CeleryExecutor 사용 시 Worker에게 태스크를 분배
• Redis 또는 RabbitMQ 사용 가능
3. Apache Airflow의 동작 과정
Airflow의 기본적인 동작 흐름은 다음과 같습니다.
1️⃣ DAG 작성
• Python 코드로 DAG을 작성하고 Airflow에 등록
2️⃣ Scheduler가 DAG을 스캔
• DAG 파일을 주기적으로 읽고 실행할 태스크 결정
3️⃣ Executor가 Worker에 태스크 할당
• Scheduler가 실행할 태스크를 결정하면, Executor가 Worker에 분배
4️⃣ Worker가 태스크 실행
• Worker가 지정된 작업을 실행하고 실행 결과를 DB에 저장
5️⃣ Web UI에서 모니터링
• DAG 상태 확인 및 필요 시 수동 실행
4. Apache Airflow의 장점
Apache Airflow는 ETL, 데이터 파이프라인, 머신러닝 워크플로우 등 다양한 자동화 작업에 활용될 수 있습니다.
Airflow를 사용하면 다음과 같은 장점이 있습니다.
✅ 코드 기반 워크플로우 관리 → Python으로 쉽게 DAG 작성 가능
✅ 강력한 스케줄링 기능 → 복잡한 태스크 간 의존성도 설정 가능
✅ 확장성과 유연성 → CeleryExecutor, KubernetesExecutor 등 활용 가능
✅ 웹 UI를 통한 모니터링 및 관리 → DAG 실행 상태 실시간 확인 가능
✅ 다양한 외부 서비스와 연동 → AWS, GCP, Kubernetes 등과 손쉽게 통합
5. 마무리
Apache Airflow는 데이터 파이프라인을 효과적으로 관리하는 강력한 도구입니다.
특히 대규모 데이터 처리를 자동화하고, 다양한 태스크를 연결하여 효율적인 워크플로우를 구성하는 데 유용합니다.
앞으로 Airflow를 활용한 DAG 작성법, 운영 방식, 모니터링 방법 등도 다룰 예정이니 기대해주세요! 🚀
'Data Engineering > Airflow' 카테고리의 다른 글
[Airflow 가이드 ep.2] 1부 개념과 설정 #2 | DAG란 무엇인가? DAG 구조와 트리거 방식 이해 (0) | 2025.03.25 |
---|---|
[Airflow 가이드 ep.1] 1부 개념과 설정 #1 | 워크플로 자동화란? Airflow의 필요성과 기본 개념 (0) | 2025.03.25 |
🚀 Docker Desktop에서 Apache Airflow 설치 및 DAG 파일 마운트하기 (0) | 2025.02.26 |
Airflow DAG 등록 및 MySQL 프로바이더 이슈 해결: Minikube와 Helm을 활용한 Airflow Cluster 구축 가이드 (0) | 2025.02.25 |
Apache Airflow를 Minikube와 Helm으로 설치하기 (Apple M1 환경) (0) | 2025.02.24 |