인공지능 개발자 수다(유튜브 바로가기) 자세히보기

Airflow

[Airflow] 개요

Suda_777 2025. 8. 25. 01:52

목차

    반응형

    1. Airflow란 무엇인가

    Apache Airflow는 워크플로우 관리 플랫폼(Workflow Orchestration Tool) 입니다.
    데이터 처리, 머신러닝 학습, 배치 작업과 같이 여러 단계가 순차적·병렬적으로 실행되는 파이프라인을 코드로 정의하고, 스케줄링하며, 모니터링할 수 있게 도와줍니다.
     
    Airflow의 철학은 다음과 같이 요약할 수 있습니다.

    • Workflows as Code: 워크플로우를 Python 코드로 작성
    • Dynamic: 조건, 반복, 동적 태스크 생성 가능
    • Scalable: 작은 로컬 파이프라인부터 클러스터 운영까지 확장 가능
    • Elegant: UI를 통한 모니터링과 직관적인 DAG 시각화 제공

     


    2. 왜 Airflow가 필요한가

    데이터 및 AI 프로젝트에서는 보통 다음과 같은 문제가 발생합니다.

    • 매일 새벽 2시에 로그 데이터를 수집해야 한다
    • 데이터 수집 → 전처리 → 모델 학습 → 결과 저장, 이 순서대로 작업해야 한다
    • 특정 단계에서 오류가 발생하면, 이후 단계는 실행되면 안 된다
    • 이미 처리된 태스크는 재실행하지 않고 건너뛰고 싶다

     
    이 모든 것을 사람이 직접 스크립트를 실행하거나 Cron으로 관리하기엔 한계가 있습니다.
    Airflow는 이러한 반복적이고 복잡한 워크플로우를 자동화, 관리, 시각화해줍니다.
     


    3. 기본 아키텍처

    1. DAG
    사용자가 Python 코드로 DAG와 Task를 작성
     
    2.Scheduler
    DAG 스케줄을 해석하고, 실행해야 할 Task를 Executor에게 전달합니다.
     
    3.Executor & Worker
    Task 실행을 담당하는 부분입니다. Executor가 실행 전략을 결정하고, Worker가 실제 태스크를 수행합니다.
     
    4.Webserver (UI)
    DAG 실행 현황, 로그, 태스크 성공·실패 여부 등을 시각적으로 모니터링할 수 있습니다.
     
    5.Metadata Database
    모든 DAG 실행 이력, 태스크 상태, 파라미터가 저장됩니다. 기본적으로 SQLite를 사용하지만, 실무에서는 MySQL, PostgreSQL을 많이 활용합니다.
     


    4. Airflow의 핵심 개념

    Airflow를 이해할 때 꼭 알아야 할 핵심 용어는 다음과 같습니다.
     
    DAG (Directed Acyclic Graph)
    워크플로우의 전체 구조입니다. 태스크(Task)들이 순서와 의존성을 가진 그래프 형태로 표현됩니다.


    Task
    DAG 안에서 실행되는 개별 작업 단위입니다. (예: 데이터 수집, Python 스크립트 실행)
     
    Operator
    Task를 정의하는 객체입니다. 예를 들어 PythonOperator, BashOperator, HttpOperator, S3Operator 등이 있습니다.
     
    XCom (Cross-Communication)
    태스크 간 데이터 전달 메커니즘입니다.
     


    5. Airflow의 활용 사례

    Airflow는 데이터 엔지니어링, 머신러닝, AI 프로젝트에서 다양하게 사용됩니다.

    • ETL 파이프라인 자동화: 로그 수집 → 데이터 클렌징 → Data Warehouse 적재
    • 머신러닝 파이프라인: 주기적 학습, 모델 검증, 배포 자동화
    • 크롤러 관리: 웹 크롤링 스케줄링, 중단 시 재실행 관리
    • AI 서비스 운영: 매일 문서 수집 → 임베딩 생성 → 벡터DB 업데이트 (RAG 파이프라인)
    반응형

    'Airflow' 카테고리의 다른 글

    [Airflow] DAG  (0) 2025.09.03
    [Airflow] 설치 방법 (로컬 환경)  (1) 2025.08.25