Orquestación de Canalizaciones de Datos

Orqueste canalizaciones con Step Functions, MWAA (Airflow), EventBridge y Glue Workflow.

Un pipeline de datos es como una línea de ensamblaje con múltiples etapas conectadas. Recopilar datos, transformarlos y cargarlos en el almacenamiento — cada etapa debe ejecutarse en el orden correcto, bajo las condiciones correctas. La orquestación es el proceso de coordinar automáticamente este flujo. Como un director dirigiendo una orquesta, un servicio de orquestación dirige a cada intérprete (servicio) para que toque su parte en el momento exacto. En el examen AWS DEA-C01, "¿qué servicio de orquestación usarías para una situación dada?" es un tema que se prueba con frecuencia.

 

Comparación de Servicios de Orquestación

| Servicio | Enfoque | Características | Mejor situación | |---------|---------|----------------|----------------| | AWS Step Functions | Máquina de estados serverless | Flujo de trabajo visual, nativo de AWS, manejo de errores robusto | Flujos de trabajo que conectan servicios AWS, lógica de ramificación compleja | | Amazon MWAA | Apache Airflow gestionado | DAGs de Python, operadores ricos | Equipos con Airflow existente, DAGs complejos, integración con sistemas externos | | Amazon EventBridge | Bus de eventos + Programador | Enrutamiento basado en eventos, horarios cron | Disparadores de eventos, automatización basada en tiempo | | AWS Glue Workflow | Orquestación solo para Glue | Encadenar trabajos y rastreadores de Glue | Orquestar solo trabajos Glue ETL |

!Comparación de 4 servicios de orquestación de pipelines

AWS Step Functions — El Director de Tu Flujo de Trabajo

AWS Step Functions es un servicio de flujo de trabajo serverless que conecta múltiples servicios AWS en una secuencia coordinada. Defines el flujo de trabajo usando el Amazon States Language (ASL) basado en JSON, y Step Functions ejecuta y monitorea automáticamente cada paso. Piensa en conectar bloques LEGO — cada "Estado" es un bloque que encajas para construir pipelines complejos.

Entender los tipos de Estado

Un flujo de trabajo de Step Functions está compuesto por diferentes tipos de estados:

Estado Task: Ejecuta una acción real. Se integra directamente con servicios AWS — llamando a una función Lambda, iniciando un trabajo Glue, consultando DynamoDB y más. Estado Choice: Se ramifica a diferentes caminos según condiciones. Implementa lógica como "si el tamaño de datos supera 1 GB, usar EMR; de lo contrario usar Lambda." Estado Parallel: Ejecuta múltiples ramas simultáneamente. Útil para procesar datos de tres regiones al mismo tiempo. Estado Map: Aplica el mismo procesamiento a cada elemento de un array. Como un bucle que procesa 100 archivos uno por uno. Estado Wait: Pausa la ejecución durante un tiempo establecido o hasta una marca de tiempo específica. Estado Succeed / Fail: Termina el flujo de trabajo como exitoso o fallido.

Flujos de trabajo Standard vs Express

| Aspecto | Standard | Express | |---------|---------|---------| | Duración máxima de ejecución | 1 año | 5 minutos | | Garantía de ejecución | Exactamente una vez | Al menos una vez | | Historial de auditoría | Historial completo | Limitado | | Precios | Por transición de estado | Por número de ejecuciones y duración | | Mejor para | Flujos de trabajo de larga duración, requisitos de auditoría | Trabajos cortos de alta frecuencia (miles por segundo) |

Manejo de errores: Retry y Catch

En el mundo real, los pasos pueden fallar. Step Functions te permite definir el manejo de errores directamente en cada estado:

Retry: Reintenta automáticamente en caso de fallo. Configuras el número de reintentos, el intervalo entre reintentos y el multiplicador de retroceso. Ejemplo: "Si la llamada Lambda falla, reintentar hasta 3 veces con un intervalo de 2 segundos." Catch: Cuando todos los reintentos se agotan, pasa a una ruta alternativa. Ejemplo: "Si el procesamiento falla, invocar un Lambda de notificación de error y enviar un correo al administrador."

 

Amazon MWAA — Apache Airflow Gestionado en AWS

Apache Airflow es una herramienta de código abierto para definir y programar pipelines de datos usando código Python. Amazon MWAA (Managed Workflows for Apache Airflow) es un servicio gestionado donde AWS instala, mantiene y escala Airflow por ti.

¿Qué es un DAG (Directed Acyclic Graph)?

En Airflow, un flujo de trabajo se representa como un DAG. Un DAG es un "grafo dirigido sin ciclos." En términos simples, las tareas están conectadas por flechas, y si sigues las flechas nunca regresas al punto de inicio.

Operadores

Un operador define cómo se ejecuta cada tarea. Airflow proporciona cientos de operadores: Operadores AWS: GlueJobOperator, EMROperator, S3CopyObjectOperator, etc. Sistemas externos: PostgresOperator, SparkSubmitOperator, HttpOperator, etc.

Guía de decisión MWAA vs Step Functions

| Situación | Elegir | |-----------|--------| | El equipo existente ya usa Airflow | MWAA | | Necesitas integrar con sistemas fuera de AWS (BD on-premises, etc.) | MWAA | | Usas solo servicios nativos de AWS | Step Functions | | Lógica compleja de ramificación/paralela con gestión visual | Step Functions | | Inicio rápido, curva de aprendizaje baja | Step Functions |

 

Amazon EventBridge — El Corazón de la Automatización Basada en Eventos

EventBridge es un servicio que detecta eventos y los enruta a otros servicios. Su función es "iniciar automáticamente algo más cuando algo ocurre."

Operación basada en eventos

Eventos de servicios AWS: Detecta eventos como cambios de estado de instancias EC2, cargas de archivos S3 o completados de CodePipeline. Reglas (Rules): Invocan un destino cuando un evento coincide con un patrón específico. Ejemplo: "Cuando se crea un nuevo archivo en S3, iniciar un flujo de trabajo de Step Functions." Destinos (Targets): Entrega eventos a Lambda, Step Functions, SQS, SNS, Kinesis, API Gateway y muchos otros servicios.

Programador (Scheduler)

Ejecuta tareas según un horario usando expresiones cron o rate: → Ejecutar cada día a las 8:00 AM UTC → Ejecutar cada hora → Ejecutar a las 9:00 AM solo en días laborables

EventBridge sirve como la "señal de inicio" para los pipelines. Por ejemplo: "Iniciar el trabajo Glue ETL cada medianoche" o "Iniciar el pipeline de Step Functions cuando llega un archivo a S3."

 

Resumen de Puntos Clave para el Examen

| Palabra clave | Elige este servicio | |--------------|-------------------| | Flujo de trabajo serverless, nativo de AWS, visual | Step Functions | | Flujo de trabajo con lógica de ramificación | Estado Choice de Step Functions | | Pasos de procesamiento paralelo | Estado Parallel de Step Functions | | Reintentar en caso de fallo del flujo de trabajo | Retry/Catch de Step Functions | | Apache Airflow gestionado | Amazon MWAA | | Migrar DAGs de Airflow existentes a AWS | Amazon MWAA | | Disparador basado en eventos, horario cron | EventBridge | | Orquestar solo trabajos Glue ETL | Glue Workflow | | Flujos de trabajo cortos de alta frecuencia (miles por segundo) | Flujo de trabajo Express de Step Functions |

La distinción principal entre Step Functions y MWAA: si tu flujo de trabajo está centrado en servicios nativos de AWS, usa Step Functions. Si necesitas DAGs de Python y el ecosistema de Airflow, usa MWAA.

Volver a la lista del blog