본문 바로가기
Data Engineering/Airflow

docker-compose로 Airflow 설치하기

by 홍띠 2024. 3. 17.
💡 Pre-requisite
Docker 설치 (Memory 최소 4GB 이상, 8GB 권장)
Docker Compose v2.14.0 이상

도커 컴포즈로 구성되는 서비스 목록

  • airflow-scheduler: 스케쥴러는 모든 tasks와 Dags를 모니터하고 task instance를 의존성에 맞게 트리거
  • airflow-webserver: 에어플로우 UI를 제공하는 웹서버로, http://localhost:8080로 접속가능
  • airflow-worker: 스케쥴러로 부터 부여받은 태스크를 실행하는 워커
  • airflow-triggerrer: 외부이벤트나 조건에 따라 작업을 실행시키도록 함
  • airflow-init: 에어플로우 초기화
  • postgres: 백엔드 데이터베이스
  • redis: 스케쥴러에서 워커로 메세지를 전달하는 브로커
  • flower(optional): Celery 클러스터 모니터링

컨테이너에 마운트 되는 디렉토리 목록

  • ./dags : Dag files를 두는 경로
  • ./logs: 태스크 실행과 스케쥴러의 로그가 작성되는 경로
  • ./config: custom log parser나 airflow_local_settings.py 를 추가 할 수 있는 경로
  • ./plugins:  custom plugins을 두는 경로

환경 설정

  • 리눅스환경 리눅스에서는 AIRFLOW_UID를 설정하여 dags, logs, plugins 디렉토리가 root 권한으로 생성되지 않도록 해야 한다.
  • mkdir -p ./dags ./logs ./plugins ./config echo -e "AIRFLOW_UID=$(id -u)" > .env
  • 다른 operating system AIRFLOW_UID를 설정하지 않으면 warning만 표출될 뿐 무시해도 된다. 이를 제거하고 싶다면, docker-compose.yml과 같은 경로에 .env파일을 만들어 준다.
  • AIRFLOW_UID=50000

에어플로우 실행

웹서버 접속