Blog logo콜로리 블로그
개발 > DevOps
6달 전

Airflow의 executor 종류 알아보기

Executer는 에어플로우 워커에게 작업(Task)을 배분하고 실행시키는 역할을 한다.

어떤 유형의 Executer가 있고 각 특징을 간단히 알아보자.


Sequential executor

에어플로우에서 기본으로 제공된다.

클러스터가 아니기에 이름값대로 순차적으로 실행되고 병렬처리가 불가능하다.

또한 스케일 인아웃이 불가능하므로 간단한 규모 혹은 테스트를 위한 환경에서 Sqlite와 같이 가볍게 구성해서 쓰기 적당하다.



Local executor

Scheduler와 같이 동작하며 병렬처리가 가능하고 local executer를 제외한 다른 executer 대비 구성이 쉽다. 역시 스케일 인아웃이 불가능하므로 복잡하지 않은 환경에서 사용하기 적당하다.



Celery executor

태스크 리소스를 많이쓰거나 복잡하게 운영하는 환경에 이용하기 적합하다.

분산 태스크 실행이 가능하며, 이중 작업 실행을 방지하기 위해 큐(RabbitMQ 혹은 Redis 큐)가 필요하다.

클러스터를 구축해야 하므로 수평적 스케일 인아웃이 가능하지만 주키퍼와 같이 추가 구성을 해주어야한다.

Airflow의 웹, 워커, 큐, 스케쥴러, 주키퍼, DB와 같이 구성해야 하는 컴포넌트가 많으므로 운영비용이 적지 않다.


효율적인 서버 운영을 위해 쿠버네티스(k8s)를 기반으로 운영하는 방법도 있지만, k8s의 러닝 커브를 고려해야 하므로 에어플로우의 운영 목적과 규모에 알맞게 선택하도록 하자.


#Apache airflow#Executor