Airflow 컴포넌트
Airflow는 복잡한 워크플로우를 스케줄링하고 관리하기 위한 오픈소스 플랫폼임.
데이터 엔지니어 및 개발자들은 작업의 의존성을 명확히 정의하고, 반복적인 작업을 자동화할 수 있음.
Airflow는 여러 컴포넌트로 구성되어 있으며, 각각의 역할이 있음
Airflow 각 컴포넌트 역할
1. Web Server
Flask를 기반으로 한 웹 어플리케이션으로 사용자 인터페이스를 제공함.
웹 서버를 통해 사용자는 작업 스케줄, 실행 상태 확인, 로그 보기 등의 작업을 수행할 수 있음.
2. Scheduler
워크플로우의 스케줄링을 담당함.
이 컴포넌트는 DAGs(방향성 비순환 그래프)를 주기적으로 폴링하며, 실행해야 할 새로운 작업 인스턴스를 확인하고 실행함.
3. Executor
실제 작업을 실행하는 역할을 함.
Executor는 여러 유형이 있으며, 각각은 작업 부하와 인프라에 따라 선택할 수 있음.
예를 들어, LocalExecutor, CeleryExecutor, KubernetesExecutor 등이 있음.
4. Metadata Database
Airflow의 설정, 스케줄, 실행 내역 등의 모든 메타데이터를 저장함.
이 데이터베이스는 작업의 실행 이력을 추적하고, 시스템의 상태를 유지하는 데 필수적임.
일반적으로 PostgreSQL이나 MySQL 같은 관계형 데이터베이스를 사용함.
5. Worker
CeleryExecutor를 사용할 때, Worker는 분산 환경에서 실제 작업을 실행하는 프로세스임.
각 워커는 별도의 머신에서 실행될 수 있으며, 복잡한 워크플로우에서는 여러 워커가 동시에 작업을 처리할 수 있음.
6. DAG (Directed Acyclic Graph)
Airflow에서 워크플로우는 DAG로 표현됨.
DAG는 작업들의 실행 순서와 의존성을 정의함.
개발자는 Python 코드를 작성하여 DAG를 구성하며, 이 코드는 각 작업의 파라미터와 함께 실행 순서를 정의함.
7. Plugins
사용자가 Airflow의 기능을 확장할 수 있도록 해주는 컴포넌트임.
플러그인을 통해 사용자는 Python으로 작성된 커스텀 연산자, 센서, 훅 등을 Airflow에 추가할 수 있음.
Airflow 컴포넌트 정리
이러한 컴포넌트들이 통합되어 Airflow는 데이터 파이프라인 생성, 스케줄링 및 모니터링을 원활하게 수행할 수 있도록 도와줌.
Airflow는 특히 데이터 파이프라인의 배포, 실행, 실패 관리 등을 자동화하는 데 강력한 도구로 사용됨.
AWS MWAA
AWS MWAA는 AWS에서 제공하는 완전 관리형 서비스로, Apache Airflow를 기반으로 함.
이 서비스는 사용자가 Airflow 인프라의 설치, 관리 및 운영 부담을 줄이면서 Airflow 워크플로우를 쉽게 실행할 수 있게 해줌.
AWS MWAA는 데이터 파이프라인 관리를 위해 Apache Airflow의 강력한 기능을 활용하면서도, AWS의 관리형 서비스로서의 이점을 제공함.
AWS MWAA 주요 특징
1. 완전 관리형 서비스
AWS MWAA는 Airflow의 설치, 유지보수, 업그레이드 및 확장을 자동으로 처리함.
사용자는 Airflow 구성의 복잡성에 대해 걱정할 필요 없이 DAGs를 관리하고 실행할 수 있음.
2. 통합 환경
AWS MWAA는 다른 AWS 서비스와의 통합이 용이함.
예를 들어, Amazon S3, Amazon RDS, Amazon Redshift, AWS Lambda 등과 쉽게 연동되어 데이터를 처리하고 분석 작업을 수행할 수 있음.
3. 보안과 규정 준수
AWS MWAA는 AWS의 보안 모델을 따르며, VPC 내에서 실행되어 네트워크 트래픽을 격리함.
또한, AWS Identity and Access Management(IAM)을 통해 세밀한 액세스 제어가 가능함.
4. 확장성
서비스는 사용자의 작업 부하에 따라 자동으로 확장 및 축소가 가능함.
이를 통해 리소스 사용 최적화와 비용 효율성을 제공함.
5. 사용자 친화적인 인터페이스
AWS Management Console을 통해 Airflow의 웹서버에 접근할 수 있음.
이를 통해 DAGs를 모니터링하고 관리할 수 있음.
AWS MWAA 사용 시나리오
1. 데이터 파이프라인 자동화
데이터 추출, 변환 및 로드(ETL) 작업을 자동화하여 데이터 웨어하우스 또는 데이터 레이크로 데이터를 이동시키는 워크플로우를 구축할 수 있음.
2. 머신러닝 워크플로우
데이터 전처리, 모델 훈련, 배치 예측과 같은 머신러닝 파이프라인의 각 단계를 스케줄링하고 자동화함.
3. DevOps 작업
소프트웨어 배포, 인프라 업데이트 및 시스템 모니터링과 같은 DevOps 관련 작업을 자동화함.
AWS MWAA 정리
AWS MWAA는 Apache Airflow의 강점을 취하면서도 AWS의 클라우드 인프라에서의 용이한 관리와 통합을 제공하여 복잡한 데이터 워크플로우 관리를 간소화함.
이러한 특징 때문에 데이터 엔지니어와 개발자 사이에서 인기가 높음.
Apache Airflow와 AWS MWAA 차이
Apache Airflow와 AWS MWAA는 같은 기능을 제공함.
관리 및 운영 방식에서 중요한 차이점이 있음.
Apache Airflow와 AWS MWAA 차이 - Apache Airflow
1. 오픈소스
Apache Airflow는 오픈소스 워크플로우 관리 툴임.
사용자는 이 툴을 자체적으로 설치하고 관리해야 함.
이는 서버, 데이터베이스, 종속성 및 구성을 포함한 전체 인프라와 함께 관리할 책임이 있음.
2. 유연성
Airflow는 매우 유연하며 사용자가 플랫폼을 완벽하게 제어할 수 있음.
이를 통해 사용자는 자신의 특정 요구 사항에 맞게 시스템을 맞춤 설정할 수 있음.
3. 다양한 실행 환경
사용자는 Airflow를 로컬 머신, 자체 서버, 또는 다른 클라우드 서비스 제공 업체에서 호스팅할 수 있음.
4. 커뮤니티 지원
Airflow는 강력한 개발자 커뮤니티의 지원을 받고 있으며, 다양한 플러그인과 커스텀 연산자로 확장성이 뛰어남.
Apache Airflow와 AWS MWAA 차이 - AWS MWAA
1. 완전 관리형 서비스
MWAA는 AWS가 제공하는 완전 관리형 서비스임.
AWS가 Airflow의 설치, 유지 관리, 확장 및 보안을 담당함.
이는 사용자가 인프라 관리에 드는 시간과 노력을 절약할 수 있게 해줌.
2. 통합된 AWS 서비스
MWAA는 AWS 생태계와 원활하게 통합되어, S3, RDS, Redshift, Lambda 등 AWS 서비스와의 상호 작용을 간소화함.
이는 데이터 파이프라인 구축시 시간과 비용을 절약할 수 있음.
3. 보안 및 규정 준수
MWAA는 AWS의 보안 기능을 활용하여 데이터와 워크플로우를 보호함.
VPC, IAM 정책, 보안 그룹을 통해 세밀한 접근 제어와 네트워크 트래픽의 분리를 지원함.
4. 스케일링 및 가용성
AWS는 자동 스케일링 기능을 통해 워크플로우의 수요 변화에 따라 자원을 자동으로 조절함.
또한, 높은 가용성을 보장하며, 데이터 레이크와 같은 다른 AWS 서비스와의 연동이 용이함.
Apache Airflow와 AWS MWAA 차이 정리
Apache Airflow는 유연성이 매우 높고 사용자가 전적으로 플랫폼을 제어할 수 있는 반면, 인프라 및 운영의 복잡성을 관리할 필요가 있음.
AWS MWAA는 AWS의 관리형 서비스로서 플랫폼의 운영을 단순화하고 AWS 생태계와의 통합을 강화하며, 인프라 관리에 대한 걱정을 덜어줌.
사용자의 요구사항, 기술적역량, 자원 및 예산에 따라 두 시스템 중 하나를 선택할 수 있음.
'Data Engineering > Airflow' 카테고리의 다른 글
[Airflow] 에어플로우 DAG란? (0) | 2023.04.02 |
---|---|
[Airflow] 데이터 파이프라인이란? (0) | 2023.01.09 |
[Airflow] 에어플로우의 로그파일이 존재하지 않을 때 (0) | 2022.12.10 |
[Airflow] The sql_alchemy_conn option in [core] has been moved to the sql_alchemy_conn option in [database] - the old setting has been used, but please update your config. 에러 해결 (0) | 2022.12.06 |
[Airflow] airflow db reset을 하면 scheduler가 죽는다.. (0) | 2022.12.06 |