부제: Running Airflow in Docker (LocalExecutor)
- 기대 효과: Airflow를 적은 리소스로 실행할 수 있다.
- CeleryExecutor보다 가벼운 LocalExecutor로 Airflow를 Docker 환경에서 실행함
사전 필요사항
- 공식 문서를 따라서 Docker, Docker-compose 설치
- 링크: https://airflow.apache.org/docs/apache-airflow/stable/start/docker.html
본문
개요
Airflow는 공식문서(위의 사전 필요사항 링크)에서 CeleryExecutor로 Docker 환경 위에 Airflow를 실행하는 방법을 제공합니다.
공식 문서를 따라 docker-compose.yml 파일을 다운로드하고
docker-compose up 명령어로 Airflow를 실행하면 기본으로 6개 컨테이너가 실행되어 리소스를 많이 잡아먹습니다.
공식 docker-compose.yml로 Airflow 실행 시 기본으로 실행되는 컨테이너 리스트 (4GB 이상 메모리 공간 요구)
- postgres: Airflow 메타데이터 저장
- redis: Tasks 저장용 queue
- airflow-webserver: Airflow 웹서버
- airflow-scheduler: Airflow 스케줄러
- airflow-worker: Airflow 워커
- flower: Celery 작업 모니터링

아래 docker-compose.yml 파일을 사용하면 Airflow를 LocalExecutor로 실행하여 웹서버, 스케줄러, postgres 3개 컨테이너만을 실행함으로 보다 가볍게 Airflow를 실행할 수 있습니다.

LocalExecutor로 Airflow 실행하기 (In Docker)
디렉토리 생성
mkdir airflow-loclexecutor
cd airflow-localexecutor
mkdir dags logs plugins
docker-compose.yml 파일 생성
docker-compose에서 참조할 .env 파일 생성
실행
docker-compose up -d

위처럼 적은 리소스로 Airflow를 실행하면
PoC 진행, 테스트 환경 구축 또는 워크플로우가 많지 않은 스타트업의 운영 환경(ex. 저사양 EC2에 Airflow 실행)에 활용할 수 있습니다.
기타 궁금하신 사항은 편하게 댓글 남겨주세요.
감사합니다.
참고자료 (docker-compose.yml 파일은 1번 자료를 거의 그대로 복사 했습니다)
1. Marvin Lanhenke님 Medium 블로그, https://towardsdatascience.com/setting-up-apache-airflow-with-docker-compose-in-5-minutes-56a1110f4122
Setting Up Apache Airflow with Docker-Compose in 5 Minutes
Create a development environment and start building DAGs
towardsdatascience.com
2. Airflow 공식 문서, https://airflow.apache.org/docs/apache-airflow/stable/start/docker.html
'데이터사이언스 > Airflow' 카테고리의 다른 글
| [Airflow] Docker로 Airflow 설치 시 기본 패스워드 변경 (0) | 2022.02.15 |
|---|---|
| [Airflow] Airflow log 정기적으로 삭제하기 (mtime 활용 Logrotate 설정) (0) | 2021.09.18 |
| [Airflow] Airflow Connections에 DB접속 정보(Oracle) 저장 및 사용 1 (0) | 2021.05.29 |