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

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

- 이제 Airflow를 설치해보자
- https://airflow.apache.org/docs/apache-airflow/stable/howto/docker-compose/index.html
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 폴더로 실습을 진행할거임
- IDE에서 venv를 만들고 venv에 설치를 진행할 거임 (DAG을 IDE에서 하니깐...)
- https://airflow.apache.org/docs/apache-airflow/stable/installation/installing-from-pypi.html
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 |