데이터 엔지니어로 커리어를 이어가면서, 가장 많은 시간을 들였고 가장 많은 관련 코드를 작성했지만 아직까지도 많이 부족한 국룰 워크플로우 관리 도구, Airflow!

진짜 간단한 Bash 커멘드를 돌리는 것 부터, 복잡한 비즈니스 로직 의존관계를 가진 파이프라인까지 만들어보면서 항상 들었던 생각은, 아 이거 여기에만 쓰기에는 아까운데... 라는 것이었다.

(개발자한테 진짜 좋은 데 표현할 방법이 없는 Airflow)

(개발자한테 진짜 좋은 데 표현할 방법이 없는 Airflow)

오늘은 지극히 개인적인 목적으로 사용할 나만의 Airflow Cluster를 만들어보고 개발 환경 세팅을 하는 방법을 정리해보려고 한다!

목차

Basics

출처: https://www.astronomer.io/guides/airflow-components

출처: https://www.astronomer.io/guides/airflow-components

간단하게 에어플로우의 구조에 대해서 설명을 하자면,

먼저 에어플로우는 크게 4가지 컴포넌트로 구성이 된다.

웹서버는 워크플로우의 상태 관리나 Connection, Pool, Variables 같은 메타 정보들을 GUI로 관리할 수 있게 도와준다 (실질적으로 제일 많이 들어간다). Scheduler는 스케줄링, Worker는 실제로 워크플로우를 실행하고, Metastore DB(이하 메타디비)는 워크플로우들의 히스토리, 메타 정보들을 저장한다.