목록DEV/Airflow (2)
ㅅㅇ
운영 환경에서 특정 DAG가 장시간 실행되며 CPU와 메모리를 과도하게 점유하면서,다른 도메인의 DAG까지 queued 상태로 밀리는 문제가 발생했습니다. Airflow는 Executor가 허용하는 범위 내에서 가능한 많은 Task를 병렬 실행합니다. 이 과정에서 리소스를 많이 사용하는 Task가 Executor 자리를 선점하면,상대적으로 가벼운 Task도 실행 기회를 얻지 못하는 문제가 발생합니다. 이 문제를 해결하기 위해 Pool을 활용한 논리적 격리 전략을 도입했습니다.Pool 이란 ?Pool은 CPU/RAM과 같은 물리 자원을 격리하는 기능이 아닙니다.대신, Task 실행 개수를 논리적으로 제한하는 제어 장치입니다.“물리적 격리”가 아니라 “논리적 실행 제어”모든 Pool은 동일한 VM 자원을 공..
기존에는 Docker Compose만을 이용하여 로컬에서 Airflow를 실행하고 테스트했습니다.통합 테스트 관점에서는 충분했지만, 실제 로직을 추적하며 디버깅하기에는 불편함이 있었습니다. 특히,breakpoint 사용 불가step-through 디버깅 불가태스크 단위 검증의 번거로움이 문제로 인해 IDE 기반 디버깅 환경의 필요성을 느끼게 되었습니다.그래서 다음과 같이 개발 환경을 이원화하였습니다. 로컬 개발 환경 전략에 대해서 설명 드리고, Airflow Debug 환경 구축 방법에 대해 공유하고자 합니다.Airflow 로컬 실행 환경 전략1. Airflow Debug Test로컬 개발/디버깅 용IDE 디버깅(PyCharm) 사용로컬 Python venv (uv 기반)의 airflow 사용dags t..
