본문 바로가기
App Programming/Apache Airflow

Apache Airflow

by goatlab 2024. 6. 14.
728x90
반응형
SMALL

Apache Airflow

 

 

Apache Airflow는 파이썬을 이용해 워크플로우를 만들고 관리할 수 있는 오픈소스 기반 워크플로우 관리 도구이다. 2014년, 에어비앤비에서 만든 워크플로우 관리 솔루션이다.

 

  • 파이썬으로 제작된 도구이며, 이용자가 워크플로우 생성시에도 파이썬으로 구현
  • 하나의 워크플로우는 DAG (Directed Acyclic Graph)이라 부르며, DAG 안에는 1개 이상의 Task가 존재
  • Task간 선후행 연결이 가능하되, 순환되지 않고 방향성을 가짐 (DAG)
  • Cron 기반의 스케줄링
  • 모니터링 및 실패 작업에 대한 재실행 기능이 간편

 

워크플로우를 관리하는 여러 오픈소스 도구 중 가장 인기가 많다. UI로 워크플로우를 만들지 못해 어려우나, 파이썬 언어가 허락하는 한 거의 모든 유형의 파이프라인을 만들 수 있다.

 

장점
  • 대규모 워크플로우 환경에서 부하 증가시 수평적 확장 가능한 Kubernetes 등 아키텍처 지원
  • 파이썬에서 지원되는 라이브러리를 활용하여 다양한 도구 컨트롤가능 (GCP, AWS등 대다수 클라우드에서 제공하는서비스)
  • Airflow에서 제공하는파이썬 소스 기반으로 원하는 작업을 위한 커스터마이징 가능 (오퍼레이터, Hook, 센서등)
단점
  • 실시간 워크플로우 관리에 적합치 않음 (최소 분단위 실행)
  • 워크플로우 (DAG) 개수가 많아질 경우, 모니터링이 쉽지 않음
  • 워크플로우를 GUI환경에서 만들지 않기에 파이썬에 익숙하지 않다면 다루기 쉽지 않음
  • 협업 환경에서 개발 표준이없으면유지 관리가 쉽지 않음

 

AWS 보안 그룹 수정

 

 

Docker

 

Airflow 공식 홈페이지에서 Docker Compose를 활용한 설치 방법 가이드를 제공한다.

 

# 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
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo docker run hello-world

 

Apache Airflow 설치

 

mkdir -p ./dags ./logs ./plugins ./config
echo -e "AIRFLOW_UID=$(id -u)" > .env
sudo docker compose up airflow-init

 

Apache Airflow 실행

 

docker compose 시작되면, 웹 브라우저를 열고 공인 IP:8080 포트를 통해 접속 가능하다 (기본 ID / 패스워드 : airflow/airflow).

 

sudo docker compose up

728x90
반응형
LIST