데이터/Airflow

Airflow 소개 & 환경구축

mini'scloud 2025. 6. 28. 22:53
  • 파이썬을 이용해 워크플로우를 만들고 관리할 수 있는 오픈소스 기반 워크플로우 관리 도구
    • 파이썬으로 구현하고 사용해야함
    • 하나의 워크플로우는 DAG (Directed Acyclic Graph)이라 부르며, DAG안에는 1개이상의 Task가 존재함
    • DAG간 선후행 관계(순서)는 있고 방향성은 있지만 순환성은 없음
    • Cron 기반의 스케줄링
    • 모니터링 및 실패 작업에 대한 재실행 기능이 간편특징

 

  • 일단 도커를 실행 해볼거임
  • Docker Demon을 가동 시켜줘야하는데
    • Docker Demon은 Docker의 핵심 백그라운드 프로세스로, Docker에서 일어나는 모든 작업의 실질적인 관리자 역할을 수행함
sudo docker run hello-world
  • 이 명령어를 통해 실행되고 있는 것을 확인할 수 있음

 

 

Running Airflow in Docker — Airflow 3.0.2 Documentation

 

airflow.apache.org

여기 들어가서 진행해보면 된다

  • 설치하기 전에 메모리가 4GB이상은 되라고 하고 있다.
  • 아래 명령어를 통해 확인할 수 있다.
docker run --rm "debian:bookworm-slim" bash -c 'numfmt --to iec $(echo $(($(getconf _PHYS_PAGES) * $(getconf PAGE_SIZE))))'
  • 아마 전체 메모리 바이트수 =  전체 페이지수 x 페이지 크기 
  • 이렇게 진행될거 같다, 이때 페이지 크기는 보통 4096바이트일 듯
  • 2024192 * 4096 = 8271056896 바이트 ≈ 7.7GiB  이렇게 진행될 듯
  • 그냥 이거는 OS때 배운거라서 한번 계산해봤음

 

  • Airflow 역시 여러 컨테이너로 운영되며 관리를 해줘야하기에 docker compose yaml로 관리를 할거다
  • 저기 사이트에서 주는 명령어로 설치하니 아래와 같은 이미지가 나온다

  • 실제 production 환경이 아니라 그냥 로컬에서 연습이나 이런걸 하라고 만든 것 같다

  • 각종 폴더도 만들고, env도 세팅을 해준다
docker compose up airflow-init
  • 이후 docker compose up 을 통해 실행시켜주면 됨
  • 이걸하고 서버 돌리는 터미널 나두고, 다른 터미널 하나 열어서 확인을 해보면..

  • 총 6개의 컨테이너가 올라와있는 것을 확인할 수 있음
  • localhost8080 으로 UI를 확인할 수 있음
  • 기본 ID는 airflow, PW는 airflow 나중에 바꿔주면 됨

디자인이 옛날보다는 예뻐진듯

 

  • 개발환경은 이렇게 구축될듯
  • IDE에서 DAG를 작성하고 깃허브에 push를 함
  • WSL 안에는 dags라는 폴더가 있는데 이 폴더가 컨테이너와 마운트가 된 상태임 (뒤에서 연결 시킬거임)
  • dags폴더에 github에서 가져온 파일을 넣어주면 컨테이너가 인식하는 상태가 될거임
  • 내가 하는 곳은 맥북이기에 WSL 환경은 아님
  • 즉, 내가 DAG를 작성할 IDE 공간과 컨테이너를 돌릴 공간을 분리해서 실습을 해주면 좋을듯
  • 실습에서 내 local은 airflow_log 폴더에서, 컨테이너가 있는 곳은 airflow 폴더로 실습을 진행할거임

 

 

Installation from PyPI — Airflow 3.0.2 Documentation

 

airflow.apache.org

 

'데이터 > Airflow' 카테고리의 다른 글

데이터 공유  (0) 2025.08.27
Airflow Template Variable  (0) 2025.08.27
Python 오퍼레이터  (0) 2025.08.15
오퍼레이터 기본/ mount 설정  (0) 2025.08.14