AWS

[AWS] Amazon Managed Workflows for Apache Airflow 란

비번변경 2024. 4. 17. 23:22

MWAA란?

Amazon Managed Workflows for Apache Airflow란 Apache Airflow에 대한 AWS 관리형 오케스트레이션 서비스로 MWAA라고 칭해진다.

MWAA는 관리형 서비스이기 때문에 확장성, 가용성 등 인프라 관리에 대한 고민 없이 Airflow를 사용할 수 있다. 즉, 요구 리소스에 맞춰 워크플로우 용량을 확장하므로 AWS 클라우드 환경에서 데이터 파이프라인을 대규모를 설정하고 운영하는데 적합하다.

 

이 글에서는 Apache Airflow에 대한 기본 지식은 있다고 가정하고 작성했다.

 

 

장점

MWAA를 사용하면 다음과 같은 장점을 가질 수 있다.

 

- 자동 Airflow 설정 : MWAA를 사용하면 환경 생성 시 필요한 Airflow 버전을 선택하여 환경을 설정할 수 있다.

 

- 자동 규모 조정 : MWAA 생성 시 지정한 Worker의 최대, 최소 대수 범위 내에서 실행 중인 작업과 대기 중인 작업의 수를 기준으로 Worker 서버의 수를 자동 조정한다.

🤔 Worker를 Scailable 하게 사용할 수 있게 하는 CeleryExecutor를 사용하는 모양이다.

 

- 인증 및 보안 : IAM을 사용해 Airflow 웹 서버에 대한 역할 기반 권한을 부여할 수 있다. 또한 웹 서버에 대한 퍼블릭 접근 모드를 제어하여 인터넷을 통한 접근을 제한할 수 있다.

 

- Airflow 버전 업그레이드 : MWAA는 정기적으로 새로 출시된 Airflow 버전을 제공한다. (https://docs.aws.amazon.com/ko_kr/mwaa/latest/userguide/airflow-versions.html)

🤔 단, 버전 출시 간격과 버전 수명 주기 관리 기간에 따라 EKS처럼 1년마다 업그레이드를 진행해야 하는 부담이 있을 수 있을 것 같다.

 

- 모니터링 : CloudWach에서 Airflow 로그와 지표를 통해 작업 처리 지연 또는 에러를 확인할 수 있다.

 

- AWS 연동 : MWAA는 AWS 서비스이므로 Athena, DynamoDB, DataSync, EMR, EKS, Glue 등의 서비스와 연동할 수 있다.

 

 

구조

MWAA는 다음과 같은 구조로 구현되어 있다. 구조도에 눈에 띄는 부분만 적어둔다.

- Web Server와 Meta DB가 동작하는 Service VPC와 Scheduler와 Worker가 동작하는 Customer VPC로 나뉘어 있다. 

- Web Server / Scheduler / worker는 모두 서버리스 도커 컨테이너 서비스인 AWS Fargate로 동작한다.

- Meta DB로는 Aurora를 사용한다.

- 여러 스케쥴러와 Worker가 접근할 수 있는 dags 폴더가 필요한데 이 부분은 S3를 참조하는 것 같다.

코드 저장소에서 관리하는 코드를 S3로 업로드하여 배포하는 방법에 대한 고민이 필요할 것 같다.

 

 

참고 문서

https://docs.aws.amazon.com/ko_kr/mwaa/latest/userguide/what-is-mwaa.html

https://docs.aws.amazon.com/ko_kr/mwaa/latest/migrationguide/mwaa-architecture.html

[AWS] MWAA 사용기

[AWS] Managed Workflows for Apache Airflow (MWAA) 알아보기 - 1