팀원이 한 명씩 퇴사하여 2025년 초 데이터 파이프라인 관리 인력이 저 혼자가 되었습니다. 기존 인프라는 AWS Glue, Mac Studio, EC2, DW MySQL 4곳에 분산되어 있었고, 특정 Job이 실패했을 때 4곳을 모두 뒤져봐야 했습니다.
혼자서 유지하려면 관리 포인트를 하나로 통합하는 것이 필수였습니다.
2022년에 팀 차원에서 Airflow를 검토했으나 Python 역량 부족으로 포기한 적이 있었습니다. 이후 개인적으로 터미널 환경을 깊이 익혔습니다. Neovim으로 LSP, 린팅, 포매팅, 디버깅을 배우면서 Airflow를 직접 구축할 수 있다는 자신감을 갖게 되었습니다.
관리형 서비스(MWAA) 대신 EC2에 Docker Compose로 직접 구축하는 방식을 선택했습니다. 인프라를 직접 통제할 수 있어야 문제 발생 시 빠르게 대응할 수 있기 때문입니다.
마이그레이션은 소스코드를 건드리지 않는 것을 원칙으로 삼았습니다. 기존 함수를 그대로 task화하여 1 DAG 1 task 형태로 먼저 옮기는 전략을 취했습니다.
Slave2 → S3 덤프 작업은 TaskFlow 동적 태스크 매핑으로 병렬 처리하여 1시간 걸리던 작업을 5~10분으로 단축했습니다.
Airflow 3 메이저 업그레이드 후 2일마다 메모리가 100%에 도달하며 서버가 다운되는 문제가 발생했습니다.
처음에는 자체 코드 문제로 판단하여 대규모 리팩토링을 진행했으나 해결되지 않았습니다. 이후 공식 docker-compose 구성을 분석하여 근본 원인을 찾았습니다.