아파치 에어플로우 무료

-

Apache Airflow는 Python DAG를 통해 작업 종속성과 예약 논리를 정의하는 오픈 소스 워크플로 조정 플랫폼입니다. 데이터 파이프라인, ML 파이프라인 및 클라우드 인프라 자동화에 널리 사용됩니다.

아파치 에어플로우 제품 인터페이스

ApacheAirflow

핵심 매개변수 및 통계

Apache Airflow는 "AI 도구"가 아니라 AI 데이터 파이프라인의 인프라입니다. 이는 모델 훈련, 데이터 정리, 기능 엔지니어링 및 모델 배포와 같은 작업의 종속성과 예약 논리를 조정하는 역할을 담당합니다. AI 생산 시스템에서 가장 간과되기 쉽지만 가장 중요한 계층입니다. Airflow는 2014년 Airbnb에 의해 만들어졌습니다. 2016년 Apache Incubator에 진입했으며 2019년에 최상위 프로젝트로 졸업했습니다. 여전히 데이터 엔지니어링 분야에서 가장 널리 사용되는 워크플로 조정 플랫폼입니다.

프로젝트 공공정보
공식 포지셔닝 오픈 소스 워크플로 조정 플랫폼
핵심 패러다임 Python 코드로 정의된 방향성 그래프(DAG)
스케줄링 엔진 분산 스케줄러 + 실행자(Celery, Kubernetes, CeleryKubernetes, 로컬, 순차)
배포 양식 자체 호스팅(단일 머신/클러스터), 관리형 클라우드 서비스(Amazon MWAA, Google Cloud Composer, Astronomer)
오픈 소스 라이센스 아파치 2.0
커뮤니티 규모 GitHub에서 별 39,000개 이상, 포크 2,000개 이상, 기여자 800명 이상
공급자 생태계 AWS/GCP/Azure/Snowflake/Databricks/Spark 등을 포괄하는 100개 이상의 공식 공급자 + 수백 개의 커뮤니티 공급자
핵심 언어 파이썬
데이터베이스 백엔드 PostgreSQL, MySQL, SQLite(개발용)
메시지 대기열 레디스/RabbitMQ

업계 현황: Airflow의 DAG-as-Code 패러다임은 워크플로 조정을 위한 사실상의 표준이 되었습니다. 세 가지 주요 클라우드 공급업체인 AWS, GCP 및 Azure는 모두 관리형 Airflow 서비스를 제공하고 Astronomer는 엔터프라이즈 수준의 다중 테넌트 관리 플랫폼을 제공합니다. CNCF 클라우드 네이티브 파노라마에서 Airflow는 워크플로우 및 스케줄링 분야의 벤치마크 프로젝트로 나열됩니다.

사용자 및 시장 인지도

Airflow의 시장 위치는 커뮤니티 활동, 기업 채택, 클라우드 공급업체 투자라는 세 가지 차원에서 관찰할 수 있습니다.

커뮤니티 활동: Airflow에는 GitHub에 약 39,000개의 별, 2,000개 이상의 포크, 800명 이상의 활성 기여자가 있습니다. 이는 오픈 소스 워크플로 조정 도구 중 가장 큰 커뮤니티입니다. 각 주요 버전 릴리스(예: 2.0, 2.9, 2.10)는 커뮤니티 기여의 최고치를 유발합니다. Airflow의 Slack 채널에는 수만 명의 등록 사용자가 있으며 DAG 작성 공급자 사용 및 성능 최적화에 관해 매달 수백 개의 토론 스레드가 있습니다.

기업 채택: Airflow는 금융, 전자 상거래, 기술, 의료, 제조 등 수직 산업을 포괄하는 전 세계 수천 개의 회사의 생산 환경에서 사용됩니다. 알려진 사용자로는 Airbnb(창시자), Twitter/Lyft/Slack(얼리 어답터), Walmart, JPMorgan Chase, Adobe, Intuit 등이 있습니다. 중국 시장에서는 ByteDance, Alibaba, Meituan과 같은 일류 인터넷 기업이 Airflow 또는 자체 파생 상품을 대규모로 배포했습니다. 2021년 Airbnb가 공개한 데이터에 따르면 Airflow 클러스터는 매일 500,000개 이상의 작업을 실행합니다.

클라우드 공급업체의 투자: Amazon MWAA(Managed Workflows for Apache Airflow)는 2021년 GA 이후 계속해서 사용 가능한 영역과 기능을 확장해 왔습니다. Google Cloud Composer는 GCP의 기본 데이터 파이프라인 조정을 위한 주요 제품이며 Azure의 Data Factory도 내장된 Airflow 통합을 제공합니다. 3개 주요 클라우드 공급업체의 호스팅 투자는 데이터 파이프라인 조정 분야에서 Airflow의 대체할 수 없는 위치를 확인시켜 줍니다.

비용 이점

Airflow의 비용 구조는 상용 SaaS 도구와 다르며 "오픈 소스 라이선스 비용 + 자체 호스팅 운영 및 유지 관리 비용 + 관리 서비스 조달 비용"의 세 가지 수준으로 분류되어야 합니다.

개인/C측 사용자: 라이선스 비용은 0이지만 하드웨어 임계값은 존재합니다. Airflow Community Edition은 기능 제한이나 계정 폐쇄 없이 완전 무료입니다. 개인은 학습 또는 소규모 데이터 파이프라인을 위해 노트북에서 Docker Compose 또는 Python 가상 컨텍스트를 통해 Airflow를 시작할 수 있습니다. 그러나 대규모 DAG 또는 높은 동시성 스케줄링을 처리할 때 단일 시스템에 배포된 SQLite 백엔드 및 Sequential Executor는 성능 병목 현상을 빠르게 노출시킵니다.

개발자/팀: 라이선스가 없는 자체 호스팅, 운영 및 유지 관리 비용이 단계별로 누적됩니다. 프로덕션급 셀프 호스팅에는 배포가 필요합니다.

  • 메타데이터베이스(PostgreSQL/MySQL) - 연간 클라우드 데이터베이스 비용은 약 1,200~6,000위안(사양에 따라 다름)
  • 메시지 큐(Redis/RabbitMQ) - 약 600~3,000위안/년
  • 스케줄러 + 작업자 노드(Kubernetes Pod 또는 EC2) - 5~50개, 월 요금 3,000~30,000위안
  • 로그 저장 및 모니터링(S3/GCS + CloudWatch/Prometheus) - 데이터 볼륨에 따라 플로팅

기업/민영화: 관리 서비스 비용과 자체 운영 및 유지 관리의 전체 비용. 주류 호스팅 서비스의 비교는 다음과 같습니다(다음은 각 서비스 제공업체의 실시간 페이지에 따라 달라지는 공개 참조 가격입니다).

비교 아마존 MWAA 구글 클라우드 컴포저 천문학자 자체 호스팅(K8s 클러스터)
가격 모델 주변기기 수수료 + 작업자 vCPU 시간 주변기기 수수료 + 작업자 vCPU 시간 구독(노드별 또는 사용자별) 실제 인프라 활용 + 운영 및 유지관리 인력으로
소규모 연결 월 사용료(예상) ~3,000-8,000위안 ~2,500-7,000위안 비공개 ~2,000~5,000위안(클라우드 리소스만 해당)
중형 경계 월 사용료(예상) ~10,000-30,000위안 ~8,000-25,000위안 사업 확인 필요 ~8,000-20,000 위안(운영 및 유지보수 포함)
운영 및 유지관리 인력 클라우드 벤더 점유율 클라우드 벤더 점유율 완전 관리형 플랫폼 제공자 최소 0.5-1 FTE
적용 가능한 시나리오 AWS 심층 통합 GCP 심층 통합 멀티 클라우드/멀티 테넌트/엔터프라이즈 거버넌스 규정 준수 격리/높은 수준의 사용자 정의

숨겨진 비용 팁:

  • DAG 디버깅 및 검사 시간 소모: Airflow의 디버깅 링크(파싱 실패 → 스케줄러 재파싱 → 작업자 실행 → 로그 추적)는 대규모 DAG 시나리오에서 각 디버깅에 15~60분 정도 걸릴 수 있습니다. 이는 팀이 가장 쉽게 과소평가할 수 있는 숨겨진 비용입니다.
  • 마이그레이션 비용: 자체 호스팅에서 호스팅 서비스로 또는 그 반대로 마이그레이션하는 경우 DAG 코드 자체는 이식 가능하지만 커넥터 자격 증명, 컨텍스트 변수, 기록 메타데이터 및 로그를 마이그레이션하려면 추가 작업이 필요합니다.

주요 기능

Airflow의 기능 시스템은 "Definition → Scheduling → Monitoring → Extension"의 4개 섹션을 중심으로 전개됩니다. 핵심가치는 단일한 기능이 아닌, 이들 기능 간의 시너지 효과입니다.

  • DAG 정의(Python-as-Code): 표준 Python 코드를 사용하여 작업(운영자), 종속성(>> / << / set_upstream) 및 실행 전략(재시도 횟수, 시간 초과, 대기열)을 선언합니다. 시너지 효과: DAG 코드는 자연스럽게 버전 제어(Git), 테스트 가능(pytest-airflow) 및 재사용 가능(맞춤형 Operator 패키지 관리)이 가능하여 "누가 무엇을 변경했는지 알 수 없고 변경 후 CR을 수행할 수 없음"이라는 기존 그래픽 오케스트레이션 도구의 핵심 문제점을 해결합니다.

  • 스케줄링 엔진(Timed + Event + Sensor): Cron 표현식 타이밍 트리거를 지원하고 업스트림 데이터가 준비될 때까지 기다리는 데이터 센서, DAG 전반의 외부 작업 센서, 파일 센서가 파일 착륙을 모니터링할 때까지 기다리는 등을 지원합니다. 시너지 효과: 센서와 스케줄러는 작업자 리소스를 소비하지 않고 지속적으로 외부 조건을 감지할 수 있습니다. 조건이 충족되면 다운스트림 작업이 자동으로 트리거됩니다. 이는 "데이터 도착 대기 → 파이프라인 시작 → 보고 완료"의 완전 자동 링크에서 수동 검사를 제거합니다.

  • 웹 UI 및 관찰 가능성: DAG 실행 상태, 작업 간트 차트, 작업 기간 추세, 그리드 보기 및 작업 수준 계보를 시각화합니다. 시너지: Gantt 차트는 병목 현상 작업을 직관적으로 노출하고, 계보 분석은 데이터 품질 문제의 원인을 찾는 데 도움이 되며, 그리드 보기는 실행 날짜별로 각 DAG 실행의 상태 분포를 표시합니다. 이 세 가지의 조합을 통해 운영 및 유지 관리 담당자는 로그를 하나씩 읽을 필요 없이 "어떤 시간대에 어떤 작업 단계가 느려지고 있는지"를 찾을 수 있습니다.

  • 공급자 생태계(100개 이상의 커넥터): 공식 공급자는 AWS(S3, EMR, Lambda, Redshift, SageMaker), GCP(BigQuery, Cloud Storage, Dataflow, Vertex AI), Azure(Blob, Data Lake, Synapse), Snowflake, Databricks, Spark, Kubernetes, Docker, Slack, PagerDuty 등을 포괄합니다. 시너지: 여러 공급자를 동일한 DAG에서 직렬로 연결할 수 있습니다. 예를 들어 Snowflake에서 데이터 읽기 → Spark 클러스터 변환 수행 → GCS에 쓰기 → 후속 분석을 위해 Dataflow 트리거. 전체 프로세스에서 API 호출 코드를 작성할 필요가 없으며 DAG에서 해당 Operator를 선언하기만 하면 됩니다.

  • 확장 가능한 아키텍처(Operator + Hook + Executor):

    • Operator: "무엇을 해야할지"를 정의합니다(예: PythonOperator는 Python 함수를 실행하고 BashOperator는 셸 명령을 실행합니다)
    • 후크: 외부 서비스의 연결 세부 정보를 캡슐화합니다(예: AWS 자격 증명 및 재시도를 자동으로 관리하는 'S3Hook')
    • Executor: "실행 방법" 결정(순차 → 로컬 직렬, 로컬 → 로컬 병렬, Celery → 분산 큐, KubernetesExecutor → 작업별 독립 Pod)
    • 시너지: 세 가지의 계층적 분리를 통해 Airflow는 개발 컨텍스트에서 SequentialExecutor를 사용하고 DAG 코드를 수정하지 않고도 프로덕션에서 CeleryExecutor 또는 KubernetesExecutor로 원활하게 전환할 수 있습니다. 이는 독립 실행형 작업 실험에서 프로덕션 수준의 높은 동시성 스케줄링까지 Airflow의 '제로 코드 변경' 확장 기능입니다.

모델 및 버전의 진화

오픈 소스 프로젝트인 Airflow의 버전 반복은 "스크립트 예약"에서 "클라우드 네이티브 + AI 파이프라인"으로의 데이터 엔지니어링 워크플로 조정 요구 사항의 진화를 반영합니다.

1.x 시대(2015~2020): DAG 패러다임 확립

  • Airflow 1.0(2015): Maxime Beauchemin이 Airbnb 내에서 개발했으며 DAG, Operator, Scheduler의 핵심 개념이 모두 확립되었습니다.
  • Airflow 1.8(2018): DAG 재사용 기능을 개선하기 위해 'SubDAG' 및 'BranchOperator'를 도입합니다. 이것은 커뮤니티에서 가장 널리 사용되는 1.x 버전 중 하나입니다.
  • Airflow 1.10(2019-2020): Apache 졸업 후 첫 번째 주요 버전 진입, 'KubernetesPodOperator' 추가, REST API 안정화, 로그 저장 및 UI 개선. 1.10 시리즈는 1.10.15까지 계속 반복됩니다.

2.x 시대(2020~현재): 아키텍처 재구성 및 클라우드 네이티브

  • Airflow 2.0(2020-12): 마일스톤 릴리스. 스케줄러 재작성(HA 고가용성 지원), 'TaskFlow API' 도입(DAG 작성 단순화) 및 기본 Kubernetes Executor 지원. 1.10에서 2.0으로의 마이그레이션 경로에는 수동 조정이 필요합니다.
  • Airflow 2.1-2.2(2021): 그리드 보기(이전 트리 보기 대체), 자동 DAG 등록 및 작업 그룹 지원을 소개합니다. 주요 변경 사항: 그리드 보기는 수천 개의 DAG 실행 시나리오에서 시각화 성능 병목 현상을 해결합니다.
  • Airflow 2.3-2.4(2022): 동적 DAG 생성 지원, 향상된 스케줄러 성능(파싱 시간 50% 이상 감소), 핵심 패키지에서 공급자 패키지 분리. 주요 변경 사항: 공급자 분리는 핵심 패키지의 종속성 충돌을 줄이고 각 공급자는 독립적으로 반복할 수 있습니다.
  • Airflow 2.5-2.6(2023): DAG 버전 관리, 감사 로그, 개선된 @task 데코레이터 매트릭스 병렬 작업 지원.
  • Airflow 2.7-2.8(2024): 향상된 스케줄러 하트비트 메커니즘, 데이터베이스 연결 풀 최적화, 웹 UI 다크 모드 Python 3.12 지원.
  • Airflow 2.9(2025-12): 데이터 세트 기반 DAG 스케줄링 - 데이터 출력을 기반으로 하는 종속 스케줄링은 "실제 이벤트 기반 데이터 파이프라인"을 달성하기 위한 핵심 단계인 순수 시간 스케줄링을 대체합니다. 작업 수준 로그 스트리밍도 개선되었습니다.
  • Airflow 2.10(2026-05): 최신 안정 버전(아직 공식적인 정확한 날짜는 없음). 대규모 DAG(10k+ DAG) 시나리오, 향상된 자산/데이터 세트 관리 인터페이스 및 향상된 KubernetesExecutor Pod 시작 속도에서 스케줄러의 메타데이터 데이터베이스 압력을 최적화하는 데 중점을 둡니다.

버전 기록에 대한 간략한 개요

버전 시리즈 시간 주요 변경 사항 메모
1.0-1.10 2015-2020 DAG 패러다임 확립, 커뮤니티 축적 1.10.15는 1.x의 최종 버전입니다
2.0 2020-12 Scheduler HA, TaskFlow API, K8s Executor 기본 지원 건축 재건 이정표
2.1-2.4 2021-2022 그리드 보기, 공급자 분리, 동적 DAG, 스케줄러 성능 최적화 관찰 가능성과 생태학적 확장
2.5-2.8 2023-2024 DAG 버전 제어, 감사 로그 Python 3.12, UI 개선 기업 거버넌스 기능 완성
2.9 2025-12 데이터세트 기반 스케줄링, 로그 스트리밍 이벤트 중심 오케스트레이션의 주요 보완 요소
2.10 2026-05 대규모 DAG 성능 최적화 및 자산 관리 강화 최신 안정 버전

기술적인 장점

Airflow는 10년 동안 워크플로 조정 분야에서 우위를 유지할 수 있었습니다. 기술적 이점은 "단일 지점 기능 리더십"이 아니라 아키텍처 계층화 및 스케줄러 설계, DAG 구문 분석 및 실행 분리와 같은 시스템 수준 결정의 장기적인 합리성에 있습니다.

DAG 구문 분석과 실행의 완전한 분리: 이것이 Airflow의 핵심 아키텍처 결정입니다. Scheduler는 정기적으로 Python 파일을 구문 분석하여 DAG 개체를 생성(정적 분석)하는 역할을 담당하고 Executor는 실행을 위해 DAG의 작업을 작업자에게 배포하는 역할을 합니다. 둘은 메타베이스를 통해 통신하며 스케줄러는 작업자의 실행 컨텍스트를 보유하지 않습니다. 이는 다음을 의미합니다.

  • 작업자 노드가 다운되더라도 스케줄러는 새 작업자에서 작업 일정을 변경할 수 있습니다.
  • DAG 코드가 업데이트된 후 스케줄러는 서비스를 다시 시작하지 않고도 자동으로 다시 구문 분석하고 적용합니다.
  • 동일한 DAG의 다양한 작업이 다양한 작업자 컨텍스트(Kubernetes Pod, Celery 컨테이너 원격 EMR 등)에서 실행될 수 있습니다.

스케줄러 HA 및 스마트 파서: Airflow 2.0+의 스케줄러는 다중 복사본 고가용성 배포를 지원하며 데이터베이스 잠금 메커니즘은 동시에 활성 스케줄러가 하나만 있도록 보장합니다. DAG 파서는 2.4+에서 파일 수정 시간 캐싱 및 증분 구문 분석을 도입합니다. 즉, 마지막 구문 분석 이후 변경된 DAG 파일만 다시 구문 분석하여 10,000개가 넘는 DAG의 구문 분석 시간을 분에서 수십 초로 압축합니다.

Executor의 세밀한 레이어링:

  • SequentialExecutor: SQLite 백엔드를 사용하여 개발 및 디버깅, 직렬 실행을 위한 것입니다.
  • LocalExecutor: 단일 머신이 다중 프로세스 풀을 사용하여 작업을 병렬로 실행하므로 소규모 생산에 적합합니다.
  • CeleryExecutor: 중간 규모(일일 수백 ~ 수천 개의 작업)에 적합한 Celery + Redis/RabbitMQ를 통해 분산 작업자 풀을 구현합니다.
  • CeleryKubernetesExecutor: Celery Worker를 백본으로 사용하고 더 나은 격리를 위해 일부 작업을 Kubernetes Pod로 라우팅하는 하이브리드 실행기입니다.
  • KubernetesExecutor: 각 작업 인스턴스는 독립적인 Pod를 시작하고 실행 후 자동으로 삭제됩니다. 가장 강력한 리소스 격리 기능을 갖추고 있으며 세분화된 리소스 제어(CPU/메모리/GPU)가 필요한 ML 교육 작업에 적합합니다.

제공자 패키지 관리 및 버전 분리: Airflow는 2.3에서 제공자를 핵심 패키지에서 분리합니다. 각 공급자에는 독립적인 버전 번호와 릴리스 주기가 있습니다. 이는 다음을 의미합니다.

  • 사용자는 종속성 폭발을 피하기 위해 필요한 공급자(apache-airflow-providers-aws 등)만 설치하면 됩니다.
  • 제공자 업데이트는 Airflow 코어 버전 반복을 차단하지 않습니다.
  • 커뮤니티 제공자는 트렁크에 병합되지 않고 독립적으로 출시될 수 있습니다.

데이터 세트(데이터 세트) 기반 스케줄링: 2.9+에 도입된 데이터 세트 메커니즘은 시간에 의존하지 않고 "데이터가 준비되었는지 여부"에 의존하여 다운스트림 작업을 트리거합니다. 작업이 데이터 세트(outlets을 통해 선언됨)를 생성하면 Airflow는 해당 데이터 세트에 의존하는 모든 다운스트림 DAG를 자동으로 트리거합니다. 이는 Airflow를 '타임 스케줄러'에서 '데이터 스케줄러'로 업그레이드하는 핵심 기능입니다. 데이터 파이프라인은 실제로 '출력 트리거' 스트리밍 자동화를 실현합니다.

사용방법

Airflow의 사용 경로는 DAG 설정, 작성, 배포 및 운영의 세 단계로 나뉩니다. 각 단계에는 명확한 핵심 기술 선택이 있습니다.

상황에 맞는 구성(3가지 일반적인 솔루션)

사용 방법 적용단계 명령/작전 설명
Docker Compose(공식 예) 지역개발/학습 curl -LfO'https://airflow.apache.org/docs/apache-airflow/2.10.0/docker-compose.yaml' && mkdir -p ./dags ./logs ./plugins && docker-compose up 스케줄러, 작업자, 웹 서버, 데이터베이스를 포함한 원클릭 시작
핍 설치 이미 Python 환경이 있음 pip install apache-airflow를 실행한 다음 airflow db init && airflow webserver && airflow Scheduler를 실행합니다. 유연하지만 종속성을 직접 관리해야 함
헬름 차트(K8s 생산) 프로덕션 배포 helm repo add apache-airflow https://airflow.apache.org && helm install airflow apache-airflow/airflow 공식 Helm 차트, K8sExecutor, CeleryExecutor 지원

DAG 작성 예시

다음은 데이터 추출, 변환, 로드 및 훈련을 포함하는 일반적인 AI 데이터 파이프라인 DAG입니다.

``파이썬 날짜/시간에서 날짜/시간 가져오기 공기 흐름 가져오기 DAG에서 airflow.operators.python에서 PythonOperator 가져오기 airflow.providers.amazon.aws.hooks.s3에서 S3Hook 가져오기 airflow.providers.snowflake.operators.snowflake에서 SnowflakeOperator 가져오기

default_args = { "소유자": "data_team", "종속_과거": 거짓, "재시도": 2, "retry_delay": 시간델타(분=5), }

DAG( dag_id="ai_training_pipeline", start_date=datetime(2026, 1, 1), Schedule_interval="@daily", 캐치업=거짓, Tags=["ai", "훈련"], default_args=default_args, ) dag로 :

extract_raw_data = SnowflakeOperator(
    task_id="extract_raw_data",
    sql="SELECT * raw_events에서 dt = '{{ ds }}'",
    snowflake_conn_id="snowflake_prod",
)

def 변환_데이터(**컨텍스트):
    # 데이터 정리 및 기능 엔지니어링 로직
    df = 컨텍스트["task_instance"].xcom_pull(task_ids="extract_raw_data")
    변환 = df.dropna().pipe(engineer_features)
    변환된.to_json()을 반환합니다.

변환_태스크 = PythonOperator(
    task_id="transform_data",
    python_callable=transform_data,
)

upload_to_s3 = PythonOperator(
    task_id="upload_to_s3",
    python_callable=lambda: S3Hook(aws_conn_id="aws_prod")
        .load_string(
            string_data="{{ ti.xcom_pull(task_ids='transform_data') }}",
            key="training/{{ ds }}/features.json",
            bucket_name="ml-features",
        ),
)

Trigger_training = BashOperator(
    task_id="trigger_training_job",
    bash_command="aws sagemaker create-training-job --region us-east-1 ...",
)

extract_raw_data >> 변환_태스크 >> upload_to_s3 >> Trigger_training

**주요 사항**:
- `xcom_pull` / `xcom_push`는 작업 간에 소량의 데이터를 전송하는 데 사용됩니다(100KB 미만 권장).
- `schedule_interval`은 `@daily`, `@hourly`, Cron 표현식 및 Dataset 객체를 지원합니다.
- 대용량 파일 전송은 S3/GCS와 같은 외부 저장소를 사용해야 하며 Airflow 메타베이스를 통과하지 않아야 합니다.

### 프로덕션 배포를 위한 키 구성

``yaml
# docker-compose.yaml 키 구성
x-공기흐름-공통:
  &airflow-공통
  이미지: 아파치/공기 흐름:2.10.0
  환경:
    AIRFLOW__CORE__EXECUTOR: CeleryExecutor
    AIRFLOW__CORE__SQL_ALCHEMY_CONN: postgresql+psycopg2://airflow:airflow@postgres/airflow
    AIRFLOW__CELERY__RESULT_BACKEND: db+postgresql://airflow:airflow@postgres/airflow
    AIRFLOW__CELERY__BROKER_URL: redis://:@redis:6379/0
    AIRFLOW__스케줄러__DAG_DIR_LIST_INTERVAL: 30
    기류__코어__평행도: 128
    AIRFLOW__CORE__DAG_CONCURRENCY: 16

제품 가격

Airflow의 가격은 완전 오픈 소스와 관리형 서비스라는 두 가지 직교 차원으로 나뉩니다. 둘은 대체가 아니라 "자체 운영 및 유지 관리 vs 외부 운영 및 유지 관리"를 선택하는 것입니다.

Community Edition(완전 무료): Apache 2.0 라이센스, 기능 약화 없음, 사용자 제한 없음, 상업적 사용 제한 없음. 어떤 조직이라도 자유롭게 다운로드, 수정, 배포하고 상업적으로 사용할 수 있습니다. 이는 Airflow의 가장 큰 가격 이점입니다. 라이센스 비용 없음.

셀프 호스팅의 실제 비용(년 단위):

  • 소규모(개인/소규모 팀, <50 DAG/일): 월간 클라우드 서버 비용은 약 200~800위안이고, 연간 총 비용은 약 2,400~10,000위안입니다.
  • 중간 규모(팀, 200~500 DAG/일): 3~5개의 작업자 노드 + 관리형 데이터베이스 + 메시지 대기열, 월 요금은 약 5,000~15,000위안, 연간 비용은 약 60,000~180,000위안입니다.
  • 대규모(엔터프라이즈 수준, 1000+ DAG/일, 고가용성): K8s 클러스터(10-30 Pod) + 고가용성 데이터베이스 + Redis Sentinel, 월 요금은 약 20,000~60,000위안, 연간 비용은 약 240,000~720,000위안, 최소 0.5-1 운영 및 유지 관리 FTE가 필요합니다.

호스팅 서비스 비용 참고:

  • Amazon MWAA: 국경 수수료(약 1,400위안/월) + 작업자 vCPU 시간당 수수료가 있습니다. 이미 AWS 생태계에 있는 기업에 적합합니다.
  • Google Cloud Composer: 국경 수수료(약 1,200위안/월) + 작업자 수수료가 있습니다. 이미 GCP 생태계에 참여하고 있는 기업에 적합합니다.
  • 천문학자: 구독 기반, 노드 또는 사용자 수에 따라 요금이 청구되며 다중 테넌시, 팀 수준 액세스 제어 및 추가 보안 감사 기능을 제공합니다. 구체적인 가격 책정에는 비즈니스 확인이 필요합니다.

호스팅 서비스의 핵심 가치는 스케줄러 고가용성 구성, 데이터베이스 유지 관리, 버전 업그레이드, 모니터링 및 알림 등의 운영 및 유지 관리 작업을 클라우드 공급업체 또는 플랫폼 제공업체에 아웃소싱하는 것입니다. Airflow 전담 운영팀이 없는 중소기업의 경우 관리형 서비스가 자체 호스팅보다 더 경제적인 경우가 많습니다.

애플리케이션 시나리오

Airflow의 적용 가능한 시나리오는 기존 ETL을 훨씬 뛰어넘으며 AI 기반 데이터 파이프라인에서 점점 더 중심적인 역할을 하고 있습니다.

  • AI 훈련 파이프라인 오케스트레이션: 이는 2024~2026년 Airflow의 가장 빠르게 성장하는 시나리오입니다. 일반적인 링크: 원시 데이터 수집 → 데이터 정리 및 주석 → 기능 엔지니어링 → 모델 교육(SageMaker/Kubernetes/Kubeflow) → 모델 평가 → 모델 등록 → 모델 배포(A/B 테스트). Airflow의 'KubernetesPodOperator' 또는 'SageMakerOperator'는 DAG에서 GPU 훈련 작업을 직접 시작할 수 있으며 훈련이 완료된 후 리소스를 자동으로 재활용할 수 있습니다. 비용 절감 및 효율성 개선: 기존 방법에서는 ML 엔지니어가 수동으로 학습 단계를 정렬하고 중간 결과를 확인하고 다음 단계를 시작합니다. 단일 학습 파이프라인을 시작하려면 수동 작업에 약 30~60분이 소요됩니다. Airflow에 연결하면 파이프라인이 완전 자동으로 트리거되어 실행되며, 모델 평가 결과가 비정상적인 경우에만 수동 개입이 필요합니다. 단일 파이프라인 시간이 5~10분으로 압축되어 오케스트레이션 시간의 약 70~80%가 절약됩니다.

  • 데이터 레이크/웨어하우스 ETL 파이프라인: 여러 소스 시스템(OLTP 데이터베이스, 로그 스트림 SaaS API)에서 데이터를 추출하고 집계 및 정리한 후 데이터 레이크(S3/GCS/ADLS) 또는 데이터 웨어하우스(Snowflake/BigQuery/Redshift)에 씁니다. 시너지: Airflow의 센서 + 제공자 조합은 "데이터 도착 시 추출을 트리거"하는 실시간 파이프라인을 구현할 수 있습니다. - S3KeySensor가 파일 랜딩을 모니터링하고 → S3ToSnowflakeOperator가 로드를 트리거하고 → SnowflakeOperator가 변환을 수행하고 → SlackWebhookOperator가 데이터 팀에 알립니다. 구현 팁: 클라우드 간 시나리오에서는 공급자 버전과 각 클라우드 SDK의 호환성에 주의해야 합니다. CI에 공급자 간 통합 테스트를 추가하는 것이 좋습니다.

  • 클라우드 인프라 및 DevOps 자동화: 멀티 클라우드 리소스 생성, AMI 이미지 구성, 데이터베이스 마이그레이션, 인증서 교체, 규정 준수 검사 및 기타 운영 및 유지 관리 프로세스를 조율합니다. 인간-기계 협업 경계: 인프라 생성, 구성 확인, 상태 확인 및 기타 단계를 100% 자동화할 수 있습니다. 그러나 프로덕션 제한 롤백, 데이터베이스 스키마 변경, 권한 승인 및 기타 작업과 관련된 작업의 경우 수동 확인 지점을 설정해야 합니다(BranchPythonOperator 또는 수동 승인 작업과 함께 작업 수준 trigger_rule="none_failed"). Airflow는 'AirflowSkipException', 'DagRunState.FAILED' 및 승인 및 거부 경로를 처리하는 기타 메커니즘을 제공합니다.

  • BI 보고서 및 데이터 상품 운영: 비즈니스 데이터를 일/주 단위로 자동 추출 → 사전 계산 및 집계 수행 → BI 도구(Tableau/Power BI/Metabase) 또는 데이터 상품 API에 푸시합니다. Airflow의 'BranchPythonOperator'는 사고 보고를 피하기 위해 더티 데이터를 직접 푸시하는 대신 데이터 품질이 표준에 미치지 못할 때 자동으로 경보 파이프라인을 트리거할 수 있습니다.

시나리오에는 적합하지 않음: 실시간 스트림 처리(밀리초 수준 지연), 일회성 스크립트(운영 및 유지 관리 오버헤드가 이점을 초과함), 순수 DAG 정의 외부의 논리(예: Airflow에서 데이터 변환을 직접 수행하면 작업자 메모리가 소진됨).

해당자

Airflow의 해당 대상은 "다단계, 종속 및 예약" 데이터 처리 작업에 중점을 두고 있으며 단일 단계 스크립트 또는 실시간 스트림 처리 시나리오에는 적합하지 않습니다.

  • 데이터 엔지니어링팀(핵심 사용자): 팀은 일반적으로 3명 이상의 데이터 엔지니어로 구성되며 회사 수준에서 데이터 파이프라인의 구축, 유지 관리 및 모니터링을 담당합니다. Airflow의 DAG-as-Code 패러다임을 사용하면 데이터 파이프라인을 애플리케이션 코드와 마찬가지로 코드 검토, 버전 관리, 단위 테스트할 수 있습니다. 경계에 적합하지 않음: 팀에 Python 기반이 없거나 단 한 사람만 데이터 파이프라인에서 파트타임으로 일하는 경우 Airflow의 학습, 운영 및 유지 관리 비용이 이점을 초과할 수 있습니다. 이 경우 Prefect(학습 곡선이 더 평평함) 또는 클라우드 공급업체의 내장 일정 도구를 먼저 평가하는 것이 좋습니다.

  • MLOps/AI 엔지니어: 모델 훈련, 평가, 배포의 다단계를 자동화된 파이프라인으로 구성하고 이를 CI/CD와 결합하여 코드 제출부터 온라인 서비스까지 모델의 자동 출시를 실현해야 합니다. Airflow의 'KubernetesPodOperator' 및 'SageMakerOperator'는 훈련 클러스터에서 GPU 작업을 직접 시작할 수 있지만 팀에는 K8s 또는 SageMaker에 대한 기본 운영 및 유지 관리 지식이 필요합니다. 구현 팁: ML 시나리오에서는 모델 학습 논리를 Docker 이미지로 캡슐화하는 것이 좋습니다. DAG는 오케스트레이션 및 트리거링만 담당하며 상황별 종속성 관리 실행은 담당하지 않습니다. 따라서 학습 코드 업그레이드에는 DAG 수정이 필요하지 않습니다.

  • 플랫폼 운영 및 유지 관리/플랫폼 팀: 여러 팀(데이터 ML, 분석, 비즈니스)을 위한 통합 작업 예약 플랫폼을 제공하고 다중 테넌트 DAG 격리, 리소스 할당량, 로그 감사 및 경보를 관리해야 합니다. Airflow의 RBAC(역할 기반 액세스 제어)는 2.0 이상에서 완성되었으며 LDAP/SSO를 통해 기업 통합 인증에 연결할 수 있습니다. 경계에 적합하지 않음: 조직에 이미 완전한 K8s CronJob + Argo Workflows 시스템이 있고 다단계 오케스트레이션 요구 사항이 없는 경우 Airflow를 도입하면 도구 체인 중복성이 높아집니다.

  • 데이터 분석가(제한적 적응): 기존 DAG 프레임워크의 실행 상태를 보고 간단한 트리거(예: 기록 데이터 채우기)를 수행합니다. 일일 분석 작업은 여전히 ​​SQL과 Notebook을 기반으로 하며 DAG는 직접 작성되지 않습니다. 데이터 엔지니어링 팀은 표준 DAG 템플릿을 캡슐화하고 분석가는 실행을 트리거하기 위해 매개변수만 입력하면 되는 것이 좋습니다.

요약 및 전망

Apache Airflow는 DAG-as-Code 패러다임과 거대한 공급자 생태계를 통해 워크플로 조정 분야에서 거의 표준화된 경쟁 위치를 확립했습니다. 핵심 장벽은 단일 기능이 아니라 다음 세 가지의 조합입니다. 버전이 가능한 DAG 정의 + 주류 클라우드 및 데이터 서비스를 포괄하는 공급자 에코시스템 + 독립 실행형에서 Kubernetes로의 원활한 확장 기능. 이러한 조합을 통해 Airflow는 데이터 엔지니어링 및 AI 인프라를 위한 필수 '기본 레이어'가 됩니다.

현재 핵심 장점:

  • 커뮤니티 규모와 공급자 범위는 유사한 경쟁 제품(Prefect, Dagster, Argo Workflows)을 훨씬 능가합니다. 새로운 데이터 서비스는 일반적으로 출시된 후 먼저 Airflow Provider를 지원합니다.
  • 유연한 보조 개발 및 사용자 정의 기능 - 맞춤형 Operator부터 맞춤형 Executor까지 기업은 일정 관리 동작을 심층적으로 제어할 수 있습니다.
  • 클라우드 벤더 호스팅 서비스의 개선으로 중소 규모 조직의 Airflow 사용 문턱이 낮아졌습니다.

현재 주요 제한사항:

  • 스케줄러가 매우 큰 규모(10k+ DAG)로 확장되면 성능 병목 현상이 명백히 나타납니다 - 메타베이스 연결 풀 DAG 구문 분석 시간 및 예약 하트비트 경쟁은 대규모 배포에서 데이터베이스 샤딩 및 사용자 지정 예약 구성을 통해 완화되어야 합니다.
  • DAG 작성 및 디버깅 환경에는 여전히 마찰이 있습니다 - 로컬 디버깅은 airflow dags 테스트를 사용하여 실행을 시뮬레이션하며 Python 구문 오류는 Scheduler가 구문 분석할 때만 노출됩니다. 이는 기존 Python 스크립트의 REPL 개발 모드보다 한 수준 느립니다. pytest-airflow 또는 커뮤니티 dag-factory와 같은 도구의 도움이 필요합니다.
  • 실시간 및 스트림 처리는 설계 목표가 아닙니다 - Airflow의 최소 스케줄링 간격은 'min_file_process_interval'(보통 30초)로 제한되며 1분 미만의 실시간 시나리오에서는 사용할 수 없습니다. 스트림 처리 작업의 경우 Kafka/Flink와 협력하는 것이 좋습니다. Airflow는 일괄 조정 레이어 역할만 합니다.
  • 데이터 세트 기반 스케줄링은 아직 성숙 과정에 있습니다 - 2.9+에 도입된 데이터 세트 메커니즘은 DAG 간 데이터 종속성을 해결하지만 대규모 데이터 세트 네트워크에서 스케줄링 그래프의 일관성 보장과 생산 컨텍스트의 신뢰성 검증에는 여전히 더 많은 커뮤니티 피드백이 필요합니다.

경쟁 제품 비교 한 눈에 보기:

차원 비교 기류 지사 대그스터 아르고 워크플로우
정의 언어 파이썬 DAG 파이썬 데코레이터 Python + 자산 정의 YAML
일정 세분성 분 수준 두 번째 수준 분 수준 분 수준
UI 관찰성 그리드 + 간트 + 리니지 최신 UI + 타임라인 자산 계보 다이어그램 기본 창 보기
클라우드 네이티브 학위 K8sExecutor + 투구 K8s 네이티브 + 서버리스 Dagit + K8s Kubernetes 네이티브
기업 거버넌스 RBAC + 감사 로그 RBAC + SSO RBAC + 팀 격리 K8s RBAC 상속
커뮤니티 및 제공자 100개 이상의 제공업체 네이티브 제공자 감소 네이티브 제공자 감소 독립형 공급자 없음
학습 곡선 중간-높음(Airflow 아키텍처에 대한 이해 필요) 중간 낮음 중간(자산 개념에 대한 적응성 필요) 낮음(YAML 정의)
적용규모 소규모부터 대규모까지 다목적 중대형 규모 중대형 규모 중소 규모

조달 및 채택 위험 평가:

개인 학습 및 소규모 팀 파일럿의 경우 Airflow의 라이선스 비용이 없고 Docker Compose의 원클릭 시작으로 거의 위험이 없는 선택이 됩니다. 환경을 설정하고 공식 튜토리얼을 실행하는 데 주말을 투자하면 요구 사항을 충족하는지 판단하기에 충분합니다.

중견 및 대규모 조직의 경우 투자하기 전에 다음 세 가지 사항을 신중하게 평가할 가치가 있습니다.

  1. 운영 및 유지 관리 투자 vs. 호스팅 서비스 선택: 자체 호스팅 모드에서는 정규 운영 및 유지 관리(스케줄러 튜닝, 데이터베이스 유지 관리, 버전 업그레이드 DAG 디버깅 지원)를 위해 최소 0.5 FTE가 필요합니다. 조직에 기존 Airflow 운영 경험이 없는 경우 관리형 서비스(MWAA/Cloud Composer/Astronomer)로 시작하는 것이 좋습니다. 호스팅 비용은 일반적으로 자체 호스팅의 숨겨진 인건비보다 낮으며 클라우드 공급업체는 버전 업그레이드 및 인프라 장애 처리를 담당합니다.
  2. DAG 기술 스택의 잠금 효과: DAG 코드 자체는 이식 가능하지만 다양한 배포 방법 간의 공급자 구성(연결 문자열, 자격 증명 관리) 및 제한된 종속성(Python 패키지, 시스템 라이브러리)을 마이그레이션하려면 테스트와 검증이 필요합니다. 컨테이너화를 사용하여 프로젝트 초기 단계에서 모든 DAG 작업을 실행하고 Docker 이미지에 상황별 종속성을 캡슐화하여 향후 마이그레이션 시 마찰을 줄이는 것이 좋습니다.
  3. AI/ML 시나리오의 GPU 오케스트레이션 제약: Airflow에서 GPU 훈련 작업을 배열할 때 KubernetesExecutor의 포드가 GPU 리소스를 요청할 수 있는지 확인하고 장기 훈련 작업(>12시간)에 의해 트리거될 수 있는 스케줄러 제한 시간 재시도 메커니즘에 주의를 기울여야 합니다. 학습이 완료되지 않았을 때 스케줄러가 새 인스턴스를 반복적으로 가져오는 것을 방지하려면 장기 학습 작업에 대해 'execution_timeout' 및 'retries=0'을 설정하는 것이 좋습니다.

버전 정보

  • 에어플로우 2.10 :아직 공식적인 정확한 날짜는 없습니다.
  • 에어플로우 2.9 :아직 공식적인 정확한 날짜는 없습니다.

사용자 후기

  • 후기를 불러오는 중...