본문 바로가기

Study/Data Engineering

[airflow] Docker에서 airflow 환경 설정 및 실행하기

 이번 포스팅에서는 Docker-compose를 활용하여 apache airflow를 실행하는 방법을 다룬다.

본 포스팅은 airflow 공식 document의 "Running airflow in Docker"를 참고하였으며 하단의 링크를 통해서 해당 문서로 이동할 수 있다.

 

 

Running Airflow in Docker — Airflow Documentation

 

airflow.apache.org

 

Before You Begin (필수 도구 설치)


설치 이전에 airflow 이미지를 실행하기 위한 Docker와 Docker-compose의 설치 or 업데이트가 필요하다.

 

 

Install on Windows

 

docs.docker.com

 

본인은 Windows의 환경에서 설치를 진행하였으므로 위 링크를 통해서 Docker Desktop을 설치하면 Docker-compose와 WSL 설치까지 완료할 수 있었다.

 

Terminal에 다음 명령어를 입력하여 정상적으로 설치가 완료되었는지 확인한다.

# docker version 확인을 위한 명령어
docker -v

# docker-compose version 확인을 위한 명령어
docker-compose -v

 

설치가 정상적으로 완료되었다면, 다음과 같이 버전 정보가 출력되게 된다.

 

airflow 설치 및 실행


우선, 홈 디렉토리가 될 디렉토리를 하나 만들어 준다.

# airflow를 실행할 홈 디렉토리 생성
mkdir ./airflow-docker

# 해당 디렉토리로 이동
cd airflow-docker

 

다음으로는 airflow를 docker-compose로 배포하기 위해서 docker-compose.yaml을 fetch 해준다.

원래는 curl 명령어를 통해서 fetch하는데 Windows 환경에서는 따로 설치 및 환경 설정을 해주어야 해서 그냥 수동으로 다운 받았다.

 

https://airflow.apache.org/docs/apache-airflow/2.5.1/docker-compose.yaml

위 링크 마우스 우클릭 ▷ 다른 이름으로 링크 저장 ▷ 만들어 놓은 디렉토리에 docker-compose.yaml로 저장

 

그리고 동일한 디렉토리에 .env라는 이름으로 파일을 하나 만든 후에,

AIRFLOW_UID = 50000

이라고 작성한 다음 저장한다.

 

환경 설정 및 실행


데이터 마이그레이션과 유저 계정 생성을 위해서 몇가지 환경 설정을 진행해야 한다.

이를 위해서 docker-compose.yaml 파일을 저장한 디렉토리로 이동한 후, 다음 명령어를 통해서 초기화를 진행한다.

docker-compose up airflow-init

 

초기화가 완료되었으면 docker up을 통해서 airflow를 실행한다.

docker-compose up

 

만약 이 단계에서 "디렉토리를 찾을 수 없다"와 같은 오류가 발생한다면, docker desktop이 실행 중인지, 로그인은 되어 있는지를 확인해봐야 한다.

정상적으로 airflow의 실행이 완료되었다면, 다음 명령어를 통해서 현재 컨테이너 상태를 확인한다.

docker ps

 

실행이 정상적으로 완료되었다면, 다음과 같이 airflow 컨테이너가 출력된다.

 

airflow web server를 통한 접근


 

인터넷 브라우저를 열고 localhost:8080을 통해서 airflow web server에 접근하면 다음과 같은 로그인 창이 실행된다.

따로 설정하지 않았다면, 초기 아이디와 비밀번호는 모두 airflow이다.

로그인 후, 다음과 같은 DAG 콘솔이 실행된다면 설치 및 실행 완료이다!!

 

추가로 처음 airflow 실행 시에 여러 예제 DAG들이 존재하는걸 볼 수 있는데, 이를 숨기기 위해서는 docker-compose.yaml 파일 내의 AIRFLOW__CORE_LOAD__EXAMPLES 옵션을 False로 바꿔주면 된다.

 

이렇게 해서 docker 환경에서 airflow 설치 및 실행을 모두 완료했다.

읽어주셔서 감사하고 질문이나 오류는 댓글로 남겨주시면 최대한 빠르게 답변 드리도록 하겠다.

다음 포스팅에서 만나요!!