📌 설치 전에 알아야 할 기본 사항
Airflow 설치 전에 반드시 확인해야 할 사항이 있습니다:
- 지원 버전: Python, Kubernetes 호환성 확인 필수
- 필수 조건: 시스템 패키지, 사용자 권한, 네트워크 설정 등
- 의존성 관리: Providers 및 Extras 패키지를 통한 기능 확장
- DB 설정: Metadata DB는 Airflow의 핵심, 업그레이드 시 마이그레이션 필요
🛠 설치 방식 비교
1. 공식 소스 코드 설치 (From Source)
- 추천 대상: 소프트웨어 무결성과 커스텀 빌드가 중요한 팀
- 장점: ASF 정책에 따라 신뢰성 있는 소스 제공
- 단점: 설치 및 유지보수에 드는 시간과 노력 증가
- 책임:
- 모든 컴포넌트 빌드 및 설치
- DB 구성, 자동화 스크립트 작성
- 리소스 모니터링 및 성능 튜닝 전담
2. PyPI 설치 (pip)
- 추천 대상: Python 기반 배포에 익숙한 팀
- 장점: 패키지 설치가 간단하고 빠름
- 단점: 프로덕션 환경에서의 튜닝은 별도 필요
- 책임:
- 제약 파일을 사용한 안정적 설치
- DB 및 모니터링 설정
- 커스텀 구성 및 리소스 관리
3. 공식 Docker 이미지
- 추천 대상: 컨테이너 인프라(Docker, Compose)에 익숙한 팀
- 장점: 격리된 환경에서 빠르게 구성 가능
- 단점: 커스텀 dependency가 많다면 이미지 재빌드 필요
- 책임:
- docker-compose 등으로 multi-container 설정 구성
- DB, 모니터링, 업그레이드 전략 수립
4. Helm Chart (Kubernetes 기반)
- 추천 대상: Kubernetes 클러스터 운영 경험이 있는 팀
- 장점:
- 커뮤니티에서 관리하는 안정적인 배포 구조
- 자동화된 컴포넌트 재시작 및 복구
- 단점:
- Helm Chart 및 K8s 리소스 커스터마이징 학습 필요
- 책임:
- Helm 값 파일 관리
- 커스텀 이미지 빌드 및 배포 파이프라인 구성
5. Managed Airflow Services
- 추천 대상: 직접 운영 부담을 줄이고 싶은 팀
- 장점:
- 설치, 업그레이드, 리소스 조절 모두 위임 가능
- 단점:
- 책임: 대부분 매니지드 서비스에서 처리. 문서 확인 필요
6. 3rd-party 배포 옵션
- 추천 대상: 기존 레거시 인프라를 유지해야 하는 경우
- 주의사항: 공식 지원 없음, 커뮤니티 지원 한계 있음
⚙️ 운영 환경에서 고려할 요소
Airflow는 복잡한 시스템입니다. 다음과 같은 요소가 성능과 리소스 요구사항에 영향을 줍니다:
- DAG 개수, 동시 실행 Task 수
- DAG의 복잡도 및 외부 시스템 연동 여부
- 설치 방식에 따른 Infra 요구사항 (Docker vs K8s vs VM)
- Scheduler 튜닝 및 리소스(CPU, Memory) 설정
- Providers 및 Plugin 사용 범위
🧠 팁: Fine-tuning Scheduler, Best Practices 문서를 통해 사전 튜닝 전략을 준비하세요.