
Airflow는 워크플로우(작업 흐름) 관리 도구로, 복잡한 데이터 파이프라인을 스케줄링, 모니터링, 관리할 수 있게 해줍니다. DAG(Directed Acyclic Graph) 형태로 작업 의존성을 정의하여 자동화된 ETL, 데이터 처리, 모델 학습등을 체계적으로 관리할 수 있습니다.

Airflow를 사용하는 이유는 데이터 파이프라인을 자동화하고 안정적으로 관리하기 위해서입니다.
먼저, 반복적으로 수행해야 하는 데이터 처리나 배치 작업을 사람이 직접 실행하지 않아도 되도록 자동화할 수 있습니다.
또한 작업들 간의 순서를 DAG 형태로 정의해 의존성 관리를 체계적으로 할 수 있습니다. 예를 들어, 데이터 수집이 끝나야 데이터 정제가 실행되도록 순서를 명확히 지정할 수 있습니다.
Airflow는 각 작업의 상태를 시각적으로 보여주고, 실패하거나 지연이 발생하면 모니터링과 알림 기능을 통해 즉시 대응할 수 있도록 도와줍니다.
뿐만 아니라 Python 기반이기 때문에 사용자가 원하는 형태로 태스크를 커스터마이징할 수 있고, 다양한 외부 시스템과 쉽게 연동할 수 있습니다.
마지막으로, Airflow는 여러 서버에 분산 실행이 가능하여 확장성이 높습니다. 대규모 데이터 파이프라인을 운영하는 환경에서도 안정적으로 동작할 수 있습니다.
| 항목 | Good | Better | Bad |
|---|---|---|---|
| CPU | 4 core | 4 core | 2 core |
| Memory | 8GB 이상 | 8GB | 4GB |
| Disk | 10GB 이상 | 10GB 이상 | 10GB 미만 |
🖥실습 환경 OS: Windows (10 이상)
✅참고: WSL(Windows Subsystem for Linux) 사용 가능
: DAG는 데이터 파이프라인의 청사진입니다. 작업(task)들의 모음으로, 각 작업이 어떻게 순서대로 실행될지를 정의합니다.
: DAG 안의 각 개별 작업을 Task라고 합니다.
: Task를 정의하는 클래스입니다. 다양한 작업을 수행하기 위한 미리 정의된 작업 템플릿입니다.
: Airflow의 사용자 인터페이스(UI)를 제공하는 웹 서버입니다.
: DAGs와 Tasks를 모니터링하고, 실행 시점을 스케줄링하는 역할을 합니다.
: 실제로 Task를 실행하는 컴포넌트입니다.
: Airflow의 메타데이터를 저장하는 데이터베이스입니다.