일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- c++
- flask
- 기초강의
- 도커
- 개발언어
- Django
- 장고 튜토리얼
- c
- airflow
- 파이썬강의
- 개발자
- Python
- 에어플로우 기초강의
- 장고 기초 강의
- 웹개발
- ADP
- C언어
- mlops
- 개발자취업
- 플라스크
- docker
- cpp
- 예제프로젝트
- 도커 컴포즈
- 쇼핑몰예제
- 인공지능
- 파이썬
- 프로그래밍
- 장고
- 파이썬 장고
- Today
- Total
TITEDIOS 편한 코딩
[MLOps] 8강 - Airflow 둘러보기 (Airflow Multi-Node System 구축 가이드 및 사례) 본문
[MLOps] 8강 - Airflow 둘러보기 (Airflow Multi-Node System 구축 가이드 및 사례)
TitediosKW 2025. 1. 10. 19:00목차
- Docker Compose로 Airflow 실행해 보기
- Airflow tutorial 확인해 보기
- Airflow architecture
- 결론
Apache Airflow는 워크플로우를 작성, 스케줄링, 모니터링할 수 있는 도구로, 데이터 파이프라인 자동화에 널리 사용됩니다. 이번 글에서는 Docker Compose를 이용하여 Airflow를 실행해 보고, 기본 튜토리얼과 아키텍처를 살펴본 후 결론을 정리하겠습니다.
1. Docker Compose로 Airflow 실행하기
Airflow를 손쉽게 실행하려면 Docker Compose를 사용하는 방법이 유용합니다. 공식적으로 제공되는 docker-compose.yaml 파일을 사용하면 다양한 컴포넌트를 간단히 구성할 수 있습니다. 지난 글까지 Docker를 설치하고 docker-compose.yaml에 대해 살펴보았으니까 여기서는 그 이후 작업을 알아보겠습니다. 설치는 아래 링크를 참조해 주세요.
[MLOps] 6강 - Docker 설치 및 docker-compose.yaml 작성 (1) (Airflow Multi-Node System 구축 가이드 및 사례)
목차Docker 설치Docker 설치 후 과정Airflow Multi-node를 위한 docker-compose.yaml 작성결론Multi-node 환경에서 Airflow를 설정하면 작업 부하를 분산하고 시스템 성능을 향상할 수 있습니다. MLOps 시스템을 만들
cozy-dev-area.tistory.com
환경 변수 파일 생성
.env 파일을 생성하여 기본 설정을 지정합니다:
echo -e "AIRFLOW_UID=$(id -u)" > .env
폴더 구조 설정
필요한 폴더를 생성합니다:
mkdir -p ./dags ./logs ./plugins ./config
Airflow 초기화
데이터베이스를 초기화합니다:
docker-compose up airflow-init
서비스 시작
다음 명령으로 모든 서비스를 시작합니다:
docker-compose up -d
docker ps
명령어로 서비스가 잘 시작되었는지 확인해 봅니다.
웹 UI 접속
브라우저에서 http://localhost:8080
으로 접속합니다. 기본 로그인 정보는 airflow / airflow입니다.
2. Airflow Tutorial 확인하기
Airflow의 주요 개념을 이해하기 위해 튜토리얼을 살펴보는 것이 중요합니다. 이전에 봤던 글 중 '우리가 무엇인가를 배울 때 예제를 통해 배우는 것이 가장 빠르다'라고 말하는 글을 보았습니다. 여러 가지를 살펴보는 것도 중요하지만 Airflow 튜토리얼을 가장 먼저 확인해 보도록 합시다.
아래의 튜토리얼은 DummyOperator를 통해 Airflow의 핵심인 DAG를 작성하는 방법에 대해 조금 살펴볼 수 있습니다. DAG란 Directed Acyclic graph의 약자로 사이클이 없고 방향을 가진 그래프
라는 말입니다. 쉽게 말하면 어떤 task들이 한 방향으로만 흘러가는 구조라는 말입니다.
DAG 정의
Python 파일로 DAG를 정의합니다:
from airflow import DAG
from airflow.operators.dummy import DummyOperator
from datetime import datetime
with DAG(
dag_id="tutorial_dag",
schedule_interval="@daily",
start_date=datetime(2025, 1, 1),
catchup=False
) as dag:
start = DummyOperator(task_id="start")
end = DummyOperator(task_id="end")
start >> end
DAG는 Task로 구성됩니다. 이때 Task는 start와 end로 구성됩니다. DummyOperator를 통해 구성되어 있으므로 사실 별 작업은 하지 않습니다. 가장 마지막 줄에 start >> end
가 보이시죠? 저 문법은 Airflow에서 사용하는 특별한 문법으로 start 작업을 수행한 후 end 작업을 수행한다는 의미입니다.
DAG 로드
위 파일을 dags/ 디렉토리에 저장하면 Airflow가 자동으로 DAG를 감지합니다.
웹 UI에서 실행 확인
Airflow 웹 UI에서 DAG 상태를 확인하고 태스크를 실행합니다.
3. Airflow Architecture
Airflow는 다음과 같은 주요 컴포넌트로 구성됩니다:
- Scheduler: DAG와 태스크를 스케줄링하고, 실행 가능한 태스크를 워커에게 전달합니다.
- Web Server: Flask 기반의 웹 애플리케이션으로, UI를 통해 DAG와 태스크를 관리합니다.
- Worker: Celery와 같은 분산 환경에서 태스크를 실행합니다.
- Metadata Database: 실행 상태, 로그, 설정 정보를 저장합니다. 일반적으로 PostgreSQL이나 MySQL을 사용합니다.
- Executor: 태스크 실행 방식을 결정합니다. LocalExecutor, CeleryExecutor 등이 있습니다.
4. 결론
Docker Compose를 이용한 Airflow 설치는 복잡한 설정 없이 다양한 환경에서 Airflow를 테스트하고 활용할 수 있는 강력한 방법입니다. 기본 튜토리얼과 아키텍처를 이해하면 더욱 효율적으로 데이터를 처리할 수 있습니다.
Airflow는 유연성과 확장성이 뛰어난 도구로, 데이터 엔지니어링과 워크플로우 자동화에 최적화된 솔루션을 제공합니다. 앞으로도 지속적으로 발전하고 있어 장기적인 데이터 프로젝트에 큰 도움이 될 것입니다.
궁금한 점이나 추가로 다루었으면 하는 주제가 있다면 댓글로 남겨 주세요.
도움이 되셨다면 공감 부탁드리겠습니다. 여러분의 공감이 정말 큰 힘이 됩니다.
감사합니다! 🙌