Amazon MWAA

Servicio completamente administrado de Apache Airflow que ejecuta orquestación de pipelines de datos mediante DAGs

Descripción general

Amazon MWAA (Managed Workflows for Apache Airflow) es un servicio completamente administrado que ejecuta Apache Airflow para orquestación de pipelines de datos. Airflow permite definir flujos de trabajo complejos como código Python (DAGs - Directed Acyclic Graphs), programando y monitorizando la ejecución de tareas con dependencias. MWAA elimina la complejidad de gestionar la infraestructura de Airflow (scheduler, workers, metastore, web server), permitiendo enfocarse en la definición de pipelines.

Clases de entorno y escalado de workers

MWAA ofrece tres clases de entorno (mw1.small, mw1.medium, mw1.large) que determinan la capacidad del scheduler y web server. La selección depende del número de DAGs y la complejidad de la programación. Los workers se escalan automáticamente entre un mínimo y máximo configurado, lanzando workers adicionales cuando hay tareas en cola y reduciéndolos cuando la carga disminuye. Cada worker ejecuta tareas en paralelo según la configuración de celery_worker_concurrency. El auto-scaling responde en minutos, por lo que para picos predecibles es recomendable pre-escalar aumentando el mínimo de workers antes del pico. Las métricas de CloudWatch (QueuedTasks, RunningTasks, SchedulerHeartbeat) permiten monitorizar la salud del entorno y configurar alarmas.

Despliegue de DAGs y mecanismo de sincronización con S3

Los archivos DAG se almacenan en un bucket S3 designado y MWAA los sincroniza automáticamente al scheduler y workers. Los cambios en los archivos DAG se detectan y aplican en aproximadamente 30 segundos. La estructura del bucket incluye carpetas para DAGs, plugins (código Python personalizado, operadores custom) y requirements.txt (dependencias pip). Los plugins se empaquetan como archivos ZIP y se sincronizan junto con los DAGs. Las dependencias Python se instalan automáticamente al iniciar los workers. Para DAGs que requieren paquetes del sistema operativo o binarios, se pueden crear imágenes de contenedor personalizadas. El versionado de DAGs se gestiona mediante el versionado del bucket S3, permitiendo rollback a versiones anteriores si un DAG introduce errores.

Gestión de plugins y diseño de red VPC

MWAA se despliega dentro de una VPC del cliente, con subnets privadas para los componentes de Airflow. El acceso al web server puede configurarse como público (accesible desde internet con autenticación IAM) o privado (solo accesible desde la VPC). Los workers necesitan acceso a internet para instalar dependencias pip y conectarse a servicios AWS, típicamente mediante NAT Gateway. Los security groups controlan la comunicación entre componentes y el acceso a recursos externos. Los plugins de Airflow permiten extender la funcionalidad con operadores personalizados, hooks para sistemas externos y macros de Jinja. Los providers de AWS (apache-airflow-providers-amazon) proporcionan operadores nativos para servicios como Glue, EMR, ECS, Lambda, Step Functions y S3, simplificando la integración con el ecosistema AWS. Las conexiones de Airflow almacenan credenciales de forma segura usando Secrets Manager como backend.

共有するXB!