[Airflow]Airflow 설치
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