Data Engineering/Airflow

Apache Airflow 가이드: 역할과 아키텍처 정리

ygtoken 2025. 2. 23. 14:12
728x90

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 작성법, 운영 방식, 모니터링 방법 등도 다룰 예정이니 기대해주세요! 🚀

728x90