목록 보기
Airflow 환경 Docker compose로 containerization하기
데브옵스

Airflow 환경 Docker compose로 containerization하기

네이버 플레이스
네이버 플레이스
2023년 12월 4일

두줄요약

Airflow 개발 환경을 Docker compose로 컨테이너화해 배포와 유사한 상태에서 실행·디버깅할 수 있게 구성했습니다. PyCharm 연동, Executor 분리, 설정 통합으로 개발 생산성과 관리 편의도 높였습니다.

문제 상황

  • Airflow 개발 환경과 배포 환경의 실행 방식 차이로 인한 설정 불일치 위험
  • 로컬 Python 가상환경과 OS 차이로 발생하는 환경 이격 문제
  • K8S 운영 환경과 유사한 형태로 로컬 개발·디버깅을 맞출 필요성

해결 방법

  • Airflow를 Docker compose로 컨테이너화해 동일한 형상에서 개발·테스트 수행
  • Redis, PostgreSQL, airflow-init, Scheduler, Webserver 간 의존성을 depends_on으로 구성
  • 배포 환경은 CeleryExecutor, 개발 환경은 LocalExecutor로 분리해 yaml 파일을 공통/개별로 관리

구조와 흐름

  • Airflow의 Scheduler, Executor, Webserver 역할과 컴포넌트 연결 관계 정리
  • 실행 순서를 반영한 멀티 컨테이너 구성과 volume mount로 로컬 DAG 참조
  • PyCharm에서 Docker compose 기반 interpreter와 run/debug configuration으로 테스트·디버깅

적용해볼 점

  • 환경별 설정 차이를 줄이기 위한 컨테이너 기반 개발 환경 도입
  • 공통 설정과 실행 설정 분리를 통한 compose 파일 관리 단순화
  • Makefile, Helm value, Run configuration 네이밍 등 운영 편의성 개선

다음 읽기

#Airflow 주제를 이어서 읽기

Airflow Task failed Alert Mail 폭탄 회피하기

Airflow에서 동일 원인으로 반복 발송되는 Task 실패 알림을 하나로 통합하는 방법을 다루었습니다. DAG run의 Task Instance와 로그를 활용해 중복 메일 노이즈를 줄이는 구현을 소개했습니다.

네이버 플레이스
네이버 플레이스
데브옵스

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...