1. Airflow 주요 컨포넌트
- Webserver(사용자 인터페이스, 모니터링) ↔ Scheduler(워크플로우 엔진, 스케줄링) ↔ Executor(실행 엔진, 리소스 관리) ↔ Metadata DB(정보 저장소)
- 사용자가 DAG 실행 요청 → Webserver가 Scheduler에 스케줄링 요청 전달 → Scheduler가 DAG 정보를 저장하고 DB에 실행가능한 Task 조회 후 반환 받기 → Scheduler가 Executor에게 Task 실행 지시한 후 Executor가 Worker에게 작업 배정 → 완료 후 Executor가 DB에 저장하게 → UI 업데이트
2. Webserver 특징
- 역할: 시각화, 실시간 상태 동기화, 메타데이터 관리(쿼리, 로그)
- Flask 사용, WSGI 서버 사용하는게 좋음
- 성능 주의(CPU, 메모리)
3. Scheduler 특징
- 역할: 의존성 관리, 리소스 관리(배분)
- 4단계 사이클 반복: DAG 확인 → Task 탐색(의존성 분석) → Task 큐잉(Pool 리소스 확인하면서 Executor 큐에 추가) → 결과 처리(재처리)
- 성능 요소 매우 중요(데이터베이스 쿼리, 캐싱 등)
4. Executor 특징
- 역할: 작업을 어떻게 처리할지 결정
- Sequential Executor(순차적으로 처리), Local Executor(워커와 병렬적으로 처리), Celery Executor(체인점과 유사, 다른 Local Executor들에게 작업 분배), Kubernetes Executor(작업이 많을 때만 빠르게 워커 도입)
5. MetadataDB 특징
- 역할: 작업 상태 업데이트, 히스토리 보관
- 작업이 언제 실행되었는지, 성공했는지 실패했는지 등
6. 정리
- Scheduler → “이 Task 실행해!”
- Executor → “그럼 누구(Worker)가 실행할까?”
- Worker → “제가 실행하겠습니다!”
- 순서: DAG → Scheduler → Executor → Worker → Task 실행
✍️ 출처: [인프런] 토스 시니어 개발자와 함께하는 Data Workflow Management 기반의 대용량 데이터 처리 설계 패턴
'Airflow' 카테고리의 다른 글
| [Airflow] 병렬 처리 및 분산 처리와 대용량 재처리 (0) | 2025.11.06 |
|---|---|
| [Airflow] Dag & Task 설계 패턴 (2) (0) | 2025.11.05 |
| [Airflow] Dag & Task 설계 패턴 (0) | 2025.10.26 |
| [Airflow] Airflow 기본 (0) | 2025.10.20 |