Introduction
What is Amazon MWAA?
Amazon Managed Workflows for Apache Airflow (MWAA)는 Apache Airflow 기반의 관리형 오케스트레이션 서비스로, 클라우드에서 대규모 데이터 파이프라인을 보다 쉽게 설정하고 운영 할 수 있습니다. Apache Airflow는 Workflow의 프로세스 및 작업 시퀀스를 프로그래밍 방식으로 작성, 스케줄링 및 모니터링 하는 데 사용되는 오픈 소스 도구 입니다. Managed Workflows를 사용하면 확장성, 가용성 및 보안을 위해 기본 인프라를 관리하지 않고도 Airflow 및 Python을 사용하여 Workflow를 만들 수 있고, Workflow 실행에 필요한 리소스를 자동으로 확장하여 요구 사항을 충족하고 AWS 보안 서비스와 통합되어 데이터에 대한 빠르고 안전한 액세스를 제공할 수 있습니다.
Amazon MWAA benefits
MWAA는 다음과 같은 이점을 제공합니다.
- Setup - Amazon MWAA는 Apache에서 제공하는 동일한 오픈 소스 Airflow 및 User Interface를 사용하여 Apache Airflow를 설정합니다. 사용자는 수동으로 설정을 수행하거나 커스텀 도구를 사용하여 환경을 만들 필요가 없습니다.
- Scaling - Amazon MWAA는 Apache Celery Executor를 사용하여 환경에 맞게 작업자(Workers)를 자동으로 확장합니다. Amazon MWAA는 작업자를 모니터링하고 수요가 증가하면 작업자를 추가하고, 수요가 줄어들면 작업자를 축소합니다.
- Security - AWS IAM과의 통합을 지원하여 Airflow UI에 대한 role-based 인증과 인가를 제공합니다. Airflow 작업자는 IAM role을 assume하여 AWS 서비스에 쉽고 안전하게 액세스 할 수 있으며, VPC 리소스를 안전하게 액세스 할 수 있도록 Airflow 작업자 및 스케줄러는 사용자 VPC에서 실행 됩니다.
- Public or private network - Amazon MWAA는 Airflow UI를 안전하게 액세스 할 수 있는 VPC 엔드포인트 및 Public 엔드포인트를 지원합니다.
- Upgrades and patches - Amazon MWAA는 스케줄 된 유지 관리 기간에 Airflow를 자동으로 업데이트 및 패치를 설치하므로, Airflow 버전을 쉽게 관리할 수 있습니다. 그리고 실패한 업그레이드 및 패치 로부터 자동으로 복구할 수 있습니다.
- Monitoring - Amazon MWAA는 CloudWatch와 통합됩니다. Airflow 환경에 로그와 성능 지표 데이터는 단일 위치에 저장할 수 있어, Workflow 오류 또는 작업 지연을 쉽게 식별 할 수 있습니다.
- Integration - Amazon MWAA는 Amazon Athena, AWS Batch, Amazon CloudWatch, Amazon DynamoDB, AWS DataSync, Amazon EMR, AWS Fargate, Amazon EKS, Amazon Kinesis Data Firehose, AWS Glue, AWS Lambda, Amazon Redshift, Amazon SQS, Amazon SNS, Amazon SageMaker 및 Amazon S3와의 오픈 소스 통합을 지원하며, 이 밖에도 수백 개의 기본 제공 및 커뮤니티에서 생성 한 Operators와 Sensors가 제공 됩니다.
- Containers - Amazon MWAA는 AWS Fargate를 통해 작업자 fleet을 실행하여, 필요에 따라 작업자 fleet을 확장하고 스케줄러의 서비스 중단을 줄 일 수 있습니다. 그리고 Amazon ECS에서 작업을 실행하는 Operator와 Kubernetes에서 Pod를 만들고 실행하는 Kubernetes Operator가 지원됩니다.
Amazon MWAA architecture
다음 이미지는 Amazon MWAA 환경의 아키텍처를 보여줍니다.

Airflow components는 사용자가 관리하는 VPC와 MWAA 서비스가 관리하는 VPC에 구성 됩니다. 각 환경에는 Airflow Scheduler와 자동 확장되는 1개 이상의 Airflow Worker(s)가 사용자 VPC에서 운영되며, Meta database와 Web server는 서비스 계정의 VPC로 격리되어 운영 됩니다. Airflow components는 multi-tenancy로 운영되지 않으며, 동일한 계정 내에서도 독립적인 components가 실행됩니다. Web Server 액세스는 VPC내의 엔드포인트를 통해 노출되거나, 보다 간단하게 로드밸런서를 통해 공개적으로 액세스 가능한 엔드포인트로 노출 될 수 있습니다. 각 엑세스 방법 모두 IAM 및 AWS SSO로 보호됩니다.
Airflow 워크샵은 다음 목차 순서대로 진행 됩니다.