▶️25

Airflow: 워크플로우 오케스트레이션의 표준

Day 1: 크론탭으로 ETL 돌리다 지쳤다

학습 목표

Airflow의 탄생 배경을 이해한다 DAG의 개념을 파악한다 Airflow의 핵심 컴포넌트를 이해한다

Airflow: 워크플로우 오케스트레이션의 표준
YouTube에서 보기

Airflow의 탄생

2014년, Airbnb.

데이터 팀이 수백 개의 ETL 파이프라인을 크론탭으로 관리하고 있었다. 매일 새벽마다 누군가 실패한 작업을 찾아 재실행했다.

"이거 미친 짓이야"

그래서 만든 게 Airflow다.

타임라인

  • 2014: Airbnb에서 개발 시작
  • 2016: Apache 인큐베이터
  • 2019: Apache 정식 프로젝트
  • 현재: 데이터 엔지니어링의 사실상 표준

크론 vs Airflow

크론탭으로 ETL:

에디터 로딩 중...

Airflow로 ETL:

에디터 로딩 중...

차이가 보이는가?

크론은 "시간"으로 실행한다. Airflow는 "의존성"으로 실행한다.


핵심 개념: DAG

DAG = Directed Acyclic Graph

  • Directed: 방향이 있음 (A → B)
  • Acyclic: 순환이 없음 (A → B → A 불가)
  • Graph: 노드와 엣지의 구조
에디터 로딩 중...

DAG는 "무엇을 어떤 순서로 실행할지"를 정의한다.


Airflow 아키텍처

에디터 로딩 중...

각 컴포넌트의 역할

컴포넌트역할
Web ServerDAG 상태 확인, 수동 실행, 로그 조회
SchedulerDAG 파일 파싱, 실행 시점 결정, Task 큐 관리
Worker실제 Task 실행
Metadata DBDAG 실행 이력, Task 상태 저장

Executor 종류

Worker를 어떻게 운영할지 결정하는 게 Executor다.

Executor특징사용 환경
SequentialExecutor순차 실행, 디버깅용개발
LocalExecutor로컬 병렬 실행소규모
CeleryExecutorRedis/RabbitMQ 기반 분산중/대규모
KubernetesExecutorK8s Pod으로 실행클라우드

실무에서는?

  • 소규모: LocalExecutor
  • 대규모: CeleryExecutor 또는 KubernetesExecutor
핵심 포인트
  • Airflow는 작업 의존성을 DAG로 정의한다
  • Scheduler가 DAG를 파싱하고 실행 시점을 결정한다
  • Worker가 실제 작업을 실행한다