Airflow

[Airflow]Airflow 설치

됴옹미 2025. 2. 24. 11:33

Airflow 설치하는 방법에 대해서 알아보자!

Airflow는 아직 Window 버전에서 공식 설치를 지원하지 않기 때문에 - Linux 환경에서 Docker로 설치하는 방법에 대해 작성하려고 한다. (혹은 AWS나 GCP-Cloud Composer 같은 클라우드 환경에서 지원하는 서비스를 활용할 수 있지만 나는 로컬에서 설치하는 방법에 대해 적어보고자 한다.)

크게 WSL 설치 -> Docker 설치 -> Airflow 설치의 3단계로 이루어져 있다.


1. WSL 설치

1-1. WSL이란?

  • Windows Subsystem for Linux
    • Windows에서 리눅스 실행환경을 지원하는 Windows의 확장 기능
    • Windows에서 바로 리눅스 명령을 실행할 수 있음
    • WSL 있기 전엔 가상머신(VM)을 많이 사용했음
  • 간단한 리눅스 명령어들
    • pwd : 현재 디렉토리 경로 출력
    • ls : 현재 디렉토리의 파일 목록 출력
    • cd : 디렉토리 변경
    • mkdir : 디렉토리 생성
    • touch : 새로운 파일 생성
    • rm : 파일 삭제 (디렉토리 포함: 옵션r)
    • cp : 파일 복사
    • mv : 파일 이동 / 이름 변경
    • tar : 파일/디렉토리의 압축 해제 (압축시 tar cvf, 압축 해제시 tar xvf)

1-2. WSL 설치

  • 설치 전 체크 사항 (시작버튼 -> 시스템 정보에서 확인)
    • Windows 10 버전 2004 이상
    • Windows 11
  • PowerShell 명령어로 설치
    • Windows PowerShell 관리자 권한으로 실행
    • wsl --install
    • 아래의 username 및 password 설정 안나오면 PC 재부팅 하면 설정 가능
  • UNIX unsername 및 password 설정
    • password는 입력해도 shell 창에서 보이지 않으니 참고!
  • 설치 후 체크 사항
    • Windows PowerShell 관리자 권한으로 실행
    • wsl -l -v
    • wsl의 VERSION이 2로 나와야 한다.
  • wsl 설치 완료 되면 해당 터미널에서 Linux 환경에서의 여러 작업들이 가능하다.

WSL의 자세한 설치 과정은 아래 링크 통해서 확인이 가능하다!
https://learn.microsoft.com/ko-kr/windows/wsl/install

2. Docker 설치

참고로 나는 내 PC에 이미 도커가 깔려 있었는데, 그냥 밀고 해당 방법으로 처음부터 진행했다.. ☠

2-1. 가상화서버와 Docker란?

  • 가상화 서버
    • 가상화 서버의 Hypervisor는 OS위에 가상화 VM들을 올리고 관리할 수 있어서 각 VM들은 서로간에 영향을 주지 않고 독립적인 환경에서 구동될 수 있음
    • But, CPU, 메모리, 디스크 등의 공간을 가상화 서버에 할당해줘야 하기 때문에 오버헤드가 존재했고, 호스트 OS가 사용할 수 있는 가연 공간이 줄어듦 → 도커로 단점 극복!
  • Docker
    • App을 도커에서 컨테이너라고 부름 → 가상화 서버(VM)의 Guest OS가 없어 오버헤드를 최대한 줄인 경량화된 가상화 서버
    • docker compose는 여러개의 컨테이너를 한 번에 관리하기 위한 도커의 확장 기술, 도커 컴포즈를 이용해 한번에 쉽게 설치가 가능하다.

2-2. Docker 설치

모든 작업은 wsl 터미널에서 실행한다.

  • 1. repository 설정
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
  • 2. Docker 설치
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  • 3. docker demon 올리기
# docker demon 올리기 - wsl 터미널 재시작할 때마다 demon 올린 후 작업해야 한다.
sudo service docker start

# test 이미지 확인
sudo docker run hello-world

Docker의 자세한 설치 과정은 아래 링크 통해서 확인이 가능하다!
https://docs.docker.com/engine/install/ubuntu/

3. Airflow 설치

  • 1. docker-compose.yaml download
# vi * 명령어로 파일 내용 확인 가능
curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.10.0/docker-compose.yaml'
  • 2. 디렉토리 생성
# ls -al로 폴더 및 디렉토리 확인 가능
mkdir -p ./dags ./logs ./plugins ./config
echo -e "AIRFLOW_UID=$(id -u)" > .env
  • 3. airflow 설치
# sudo 명령어 붙여줘야 함
sudo docker compose up airflow-init
  • 4. airfow 올리기 (터미널 유지해줘야지 서비스 계속 사용 가능)
# sudo 명령어 붙여줘야 함
sudo docker compose up

second terminal 열어서 진행

  • 5. airflow container 확인
sudo docker ps

  • 6. airflow 웹 브라우저 접속
    • localhost:8080으로 웹 브라우저에 접속 가능하다.

Airflow의 자세한 설치 과정은 아래 링크 통해서 확인이 가능하다!
https://airflow.apache.org/docs/apache-airflow/stable/howto/docker-compose/index.html

3. 개발환경 구축

wsl linux 환경에서 docker를 통해 airflow 설치까지 완료했으면, 로컬에서도 개발환경을 구축해야 한다. 아래의 플로우 차트를 통해서 전반적인 흐름을 확인하면 될 듯 하다. (파이썬 설치, vscode 설치 및 환경 세팅, github 세팅 등의 작업이 필요하지만 여기서는 생략하도록 하겠다.)

  • 개발환경 플로우
    • 로컬 환경에서 만든 dag을 컨테이너가 인식할 수 있도록 배포하는 것이 해당 세팅의 목표!

  • 컨테이너 내부 접속 (가상화 서버 접속)
    • 컨테이너 내부에 접속해서 파이썬 버전 확인 후 해당 버전에 맞는 파이썬 버전을 로컬에 설치해야 한다.
sudo docker exec -it {컨테이너명} bash
  • 로컬 컴퓨터의 파이썬 가상환경에 airflow 설치
    • 리눅스에서 pip install 하는 방식으로 설치할 수 있지만, 저사양의 아키텍처로 설치되기 때문에 여러 가지 제약이 존재한다. (도커로 설치)
    pip install "apache-airflow[celery]==2.10.0" --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.10.0/constraints-3.8.txt"

Airflow 라이브러리의 자세한 설치 과정은 아래 링크 통해서 확인이 가능하다!
https://airflow.apache.org/docs/apache-airflow/stable/installation/installing-from-pypi.html