반응형
Apache Airflow는 워크플로우 오케스트레이션(Workflow Orchestration) 도구로, 복잡한 데이터 파이프라인(ETL/ELT)을 코드로 정의하고 스케줄링, 모니터링, 관리할 수 있게 해준다. 온프레미스뿐 아니라 클라우드 환경에서도 유연하게 배포 가능하며, 확장성·유연성을 극대화할 수 있다는 점이 가장 큰 장점이다.

1. Airflow란 무엇인가?
Apache Airflow는 Python 기반의 오픈소스 워크플로우 관리 플랫폼이다.
- 프레임워크 유형: Workflow Orchestration Framework
- 주요 기능:
- DAG(Directed Acyclic Graph) 정의
- Task 스케줄링 및 실행
- 실시간 모니터링(Web UI)
- 알림(Notifications) 및 로그 관리
반응형
2. On-Premise vs Cloud
- 온프레미스(On-Premise):
- 자체 서버에 설치 가능
- 네트워크·보안 정책 직접 제어
- 관리 오버헤드 존재
- 클라우드(Cloud):
- Managed 서비스(AWS MWAA, Google Cloud Composer, Azure Data Factory Integration Runtime)
- 인프라 설정·업그레이드 자동화
- 확장성(auto-scaling) 제공
3. 역사 및 유래(History)
- 창시: Airbnb에서 2014년 내부 ETL 도구로 시작
- 오픈소스화: 2015년 Apache Software Foundation 프로젝트로 기여
- 성장: 글로벌 커뮤니티 확대, 다양한 Executor(예: Celery Executor, Kubernetes Executor) 지원
4. 주요 용도(Use Cases)
- ETL 파이프라인 설계 및 운영
- 데이터 레이크 적재 자동화
- 머신러닝 워크플로우 학습·배포 스케줄링
- 보고서·알림 자동화
- 대용량 배치 작업 체계적 관리
5. 베이스 시스템(Base System)
- 언어: Python
- 메타데이터 DB: PostgreSQL, MySQL 등
- 메시지 브로커(Executor):
- Celery Executor (RabbitMQ, Redis)
- Kubernetes Executor
- LocalExecutor, SequentialExecutor
- 웹서버(Webserver): Flask + React
- 스케줄러(Scheduler): Python 프로세스
6. 구조 상세(Architecture)
- DAG(Directed Acyclic Graph):
- Task 간 의존성 정의
- Python 스크립트(.py) 파일로 작성
- Scheduler:
- DAG 파싱 및 Task 인스턴스 생성
- 실행 시점 결정
- Executor:
- 실제 Task 실행
- Celery/Kubernetes/Local 모드
- Web UI:
- DAG 상태, Task log, Graph View 제공
- Metadata Database:
- DAG·Task 상태, 로그, 변수 저장
- Worker:
- Executor에 따라 Task 실행 환경
flowchart LR
subgraph WebServer
UI[Web UI]
end
subgraph Scheduler
SC[Scheduler]
end
subgraph Workers
W1[Worker1] -->|Celery/K8s| TaskExec
end
UI --> SC --> DB[(Metadata DB)]
SC --> W1
7. 장점(Pros)
- 코드 기반 정의(Code as Configuration): Python 활용, 유연한 로직 작성
- 확장성(Scalability): 수평 확장, Kubernetes 통합
- 모니터링(Monitoring): 실시간 UI, 알림, 로그
- 커뮤니티 지원: 풍부한 플러그인, 연동 커넥터(Operator)
- 재사용성(Reusability): Custom Operator, Sensor 작성
8. 단점(Cons)
- 초기 설정 복잡도: DB·Executor 구성
- 실시간 처리 미지원: 주로 배치 지향
- 버전 호환성 이슈: Python/Airflow 버전 제약
- 리소스 과다 사용 가능성: 잘못된 스케줄링 시 오버헤드
9. Airflow를 사용하려면 알아야 할 Key Terms
- DAG(Directed Acyclic Graph): 워크플로우의 Task 흐름
- Task: 실행 단위, Operator가 구현
- Operator: Task 로직(예: BashOperator, PythonOperator, PostgresOperator)
- Sensor: 특정 이벤트 대기(예: FileSensor, HttpSensor)
- Hook: 외부 시스템 연결(interface)
- XCom: Task 간 데이터 교환 메커니즘
- Executor: Task 실행 방식
- Scheduler Interval: DAG 실행 주기(cron 표현식)
- Airflow Variables & Connections: 환경 설정 데이터 저장소
- Airflow Plugins: 확장 기능 모듈
반응형
'● Data Insights > System' 카테고리의 다른 글
| (Data) JSON 활용 가이드: 보안·정합성·RDB 변환 관점 (0) | 2025.10.15 |
|---|---|
| (Data) REST API 호출 완전 정복: 메서드별 비교·장단점·부하 분석 (0) | 2025.10.14 |
| (Data) 데이터 성숙도: 수집부터 통합, 분석, AI·ML·DL까지 (0) | 2025.10.10 |
| (Windows) WSL과 가상머신을 활용한 Linux 환경 구축: 6가지 방법 비교 분석 (0) | 2025.10.08 |
| (Data) ETL/ELT 증분 처리의 핵심: DELETE+INSERT부터 CDC까지 (1) | 2025.10.07 |