[Ubuntu] Docker로 Airflow 실행

미난·2024년 8월 3일
1
post-thumbnail

Ubuntu(Linux) 환경에서 Docker-Compose로 손쉽게 Airflow를 실행하는 법을 알아보겠습니다!
참고로 이 방법은 서버에 에어플로우 설치 하는 것이랑은 다른 개념입니다.

주의 사항

  • Docker 및 Docker Compose가 사전에 미리 설치되어 있어야 합니다.
  • Docker에 대해 하나도 모르는 초심자라면 Docker에 대한 학습을 먼저 하고 오시는 것을 추천드립니다.

    Ubuntu에서 Docker와 Docker-Compose 설치 방법
    https://velog.io/@cmh2806/Ubuntu에서-Docker-설치

참고로 전 AWS EC2로 Ubuntu 환경을 설정했습니다.
Airflow는 많은 자원을 소모하기 때문에 너무 작은 인스턴스는 정상적으로 작동되기 어려울 수 있습니다. (참고로 전 t3.Large 사이즈 인스턴스 생성했습니다.)


설치 방법

먼저 Airflow란?

  • Apache Airflow는 워크플로우를 관리하고 자동화하기 위한 오픈 소스 플랫폼입니다.
  • 주로 복잡한 데이터 파이프라인이나 작업 흐름을 조정하는 데 사용됩니다.

1. docker-compose.yaml 파일을 가져오기

curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.9.3/docker-compose.yaml'
  • 이 파일은 Docker Compose를 통해 Airflow를 설정하고 배포하는 데 필요한 구성 정보를 포함하고 있습니다.

2. Airflow 사용자 권한을 설정

mkdir -p ./dags ./logs ./plugins ./config
echo -e "AIRFLOW_UID=$(id -u)" > .env
  • dags, logs, plugins, config 디렉토리를 현재 작업 디렉토리에 생성합니다.
  • 현재 사용자의 사용자 ID를 AIRFLOW_UID라는 환경 변수로 설정하고, 이 값을 .env 파일에 저장합니다.
  • 이 파일은 Docker Compose가 시작될 때 읽혀서, 컨테이너 내의 Airflow 프로세스가 이 사용자 ID를 사용하게 합니다.

3. 데이터베이스 초기화

sudo docker compose up airflow-init
  • 위 명령어는 Apache Airflow를 설정하고 사용할 준비를 하기 위해 필요한 초기 작업을 수행하기 위해 사용됩니다.

4. Airflow 실행

sudo docker compose up

5. 컨테이너 확인하기

sudo docker ps
  • 위 과정을 모두 진행하였다면 아래의 컨테이너가 올라간 것을 확인할 수 있습니다.
  1. compose_airflow-scheduler_1
  2. compose_airflow-webserver_1
  3. compose_postgres_1
  4. compose_redis_1
  5. compose_airflow-worker_1

마무리

  • 위 과정을 모두 실행한 후 주소창에 EC2 인스턴스 생성시 부여받은 퍼블릭IP를 이용하여 Airflow 웹페이지로 들어갈 수 있습니다.
  • {퍼블릭 IP}:8080을 입력하면 됩니다,
  • 만약 들어가지지 않는다면 8080포트로 접근할 수 있도록 인스턴스 보안 설정 중 인바운드 규칙을 설정해주시기 바랍니다.
profile
주니어 데이터 분석가입니다!

0개의 댓글