AWS Batch
Servicio completamente administrado que programa automáticamente cientos de miles de trabajos de procesamiento por lotes y los ejecuta en los recursos de cómputo óptimos
Descripción general
AWS Batch es un servicio completamente administrado que automatiza la planificación, programación y ejecución de cargas de trabajo de computación por lotes. Al enviar trabajos a una cola, Batch aprovisiona automáticamente los recursos de cómputo necesarios (instancias EC2 o Fargate), resuelve las dependencias entre trabajos y los ejecuta en el orden óptimo. Es adecuado para cargas de trabajo que requieren ejecución masiva en paralelo, como análisis genómico, cálculo de riesgo financiero, codificación de video y preprocesamiento de machine learning. La integración con instancias Spot permite reducir los costos.
Entornos de cómputo EC2 y Fargate
El entorno de cómputo de AWS Batch define la infraestructura donde se ejecutan los trabajos. En entornos basados en EC2, se especifican los tipos de instancia, el número mínimo y máximo de vCPU y si se utilizan instancias Spot. Los entornos basados en Fargate no requieren gestión de instancias: basta con especificar las vCPU y memoria necesarias por trabajo. Como criterio orientativo, EC2 es la opción cuando se necesita GPU, tipos de instancia específicos o trabajos paralelos multi-nodo (MPI) para HPC; en los demás casos Fargate es una alternativa. Al usar instancias Spot en entornos EC2, una estrategia de reintento permite volver a ejecutar en otras instancias los trabajos que fallan por una interrupción, reduciendo los costos frente a las instancias bajo demanda en cargas de trabajo tolerantes a interrupciones (las tasas de descuento se indican en la página oficial de precios de instancias Spot). Azure Batch ofrece programación de trabajos similar; en AWS Batch, elegir un entorno basado en Fargate elimina la necesidad de gestionar instancias.
Control de colas de trabajos y dependencias
La programación de trabajos en Batch se compone de dos conceptos: colas de trabajos y definiciones de trabajos. Las colas de trabajos permiten establecer prioridades, ejecutando los trabajos de colas de alta prioridad antes que los de baja prioridad. Al asociar múltiples entornos de cómputo a una cola, es posible configurar un fallback a instancias Spot cuando las instancias bajo demanda son insuficientes. Las dependencias entre trabajos se resuelven automáticamente por Batch simplemente especificando el ID del trabajo dependiente al enviar el trabajo. Con Array Jobs se pueden enviar miles de trabajos de una sola vez con la misma definición, asignando un número de índice a cada trabajo, siendo común el diseño donde el índice controla qué elemento de una lista de archivos en S3 se procesa.
Integración con Step Functions y estrategias de reintento
El uso típico de AWS Batch es el procesamiento masivo en paralelo dentro de pipelines de datos. Una configuración común es detectar miles de archivos que llegan a S3 con EventBridge, enviar trabajos Batch a través de Step Functions, procesar cada archivo en paralelo y escribir los resultados de vuelta en S3. La integración con Step Functions permite definir de forma declarativa flujos de trabajo que esperan la finalización de trabajos Batch y ramifican el procesamiento posterior según éxito o fallo. En las definiciones de trabajo se pueden configurar estrategias de reintento (número máximo de reintentos, condiciones de reintento), recuperando automáticamente los fallos por errores temporales. Las condiciones de reintento permiten especificar patrones de código de salida o mensajes de error, posibilitando un control fino donde solo errores específicos (como falta de memoria) son objeto de reintento. Como punto clave de optimización de costos, es importante configurar timeouts adecuados para los trabajos y evitar que trabajos colgados consuman recursos indefinidamente.
Referencias (recursos oficiales de AWS)
Las fuentes primarias de esta página son el sitio web y la documentación oficiales de AWS. Consulta las páginas oficiales siguientes para conocer las especificaciones y los precios más recientes.
- Amazon EC2 (página oficial)
- AWS Fargate (página oficial)
- AWS Step Functions (página oficial)
- Documentación de AWS (oficial)
Si esta página y la documentación oficial difieren, prevalece la documentación oficial.