AWS Batch のアイコン

AWS Batch Specialized2017年〜

Un servicio administrado para programar y ejecutar eficientemente trabajos de computación por lotes

Qué hace

AWS Batch es un servicio completamente administrado que programa eficientemente grandes volúmenes de trabajos de procesamiento por lotes y los ejecuta automáticamente en recursos de cómputo óptimos (instancias EC2 o Fargate). Puedes definir dependencias entre trabajos para controlar el orden de ejecución, y los recursos de cómputo escalan automáticamente según el volumen de trabajos. AWS gestiona toda la administración de colas de trabajos, el programador y los entornos de cómputo.

Casos de uso

Se utiliza para entrenamiento de modelos de machine learning, transformación de datos a gran escala y procesamiento ETL, codificación y transcodificación de video, computación científica y simulaciones, y procesamiento por lotes de análisis de riesgo financiero. Es particularmente adecuado para cargas de trabajo por lotes a gran escala que ejecutan cientos a decenas de miles de trabajos en paralelo.

Analogía cotidiana

Imagínalo como un gerente de línea de producción de fábrica. Cuando llega un gran volumen de pedidos (trabajos), el gerente (Batch) verifica la prioridad y dependencias de cada pedido, configura el número requerido de estaciones de trabajo (recursos de cómputo) y distribuye el trabajo eficientemente. Cuando los pedidos disminuyen, las estaciones de trabajo se guardan para minimizar costos.

¿Qué es AWS Batch?

AWS Batch es un servicio que automatiza la gestión de trabajos y la gestión de recursos para procesamiento por lotes. El procesamiento por lotes se refiere a procesar grandes volúmenes de datos o tareas en masa. Tradicionalmente, ejecutar trabajos por lotes requería construir un programador de trabajos, gestionar servidores y estimar capacidad. AWS Batch automatiza todo esto, permitiendo a los desarrolladores concentrarse en definir sus trabajos.

Definición y ejecución de trabajos

Los trabajos de AWS Batch se definen como contenedores Docker. En una definición de trabajo, especificas la imagen del contenedor, requisitos de CPU y memoria, variables de entorno y más. Cuando envías un trabajo a una cola de trabajos, el programador de Batch determina el orden de ejecución basándose en prioridad y dependencias. Al configurar dependencias entre trabajos, puedes construir flujos de trabajo donde un trabajo se ejecuta solo después de que el anterior se complete.

Entornos de cómputo

AWS Batch gestiona automáticamente los recursos de cómputo necesarios para ejecutar tus trabajos. Con entornos de cómputo administrados, las instancias EC2 o tareas Fargate escalan automáticamente según el volumen de trabajos. Al aprovechar las instancias Spot, puedes ejecutar trabajos con hasta un 90% de descuento sobre los precios bajo demanda, reduciendo drásticamente los costos del procesamiento por lotes a gran escala. Para casos de estudio y mejores prácticas sobre entornos de cómputo, libros especializados en Amazon son una referencia útil.

Cómo empezar

En la consola de Batch, crea un entorno de cómputo y elige Fargate o EC2. Crea una cola de trabajos y vincúlala al entorno de cómputo, luego crea una definición de trabajo especificando la imagen del contenedor y los recursos requeridos. Envía un trabajo desde la página Enviar trabajo, y los recursos se aprovisionan automáticamente para ejecutarlo. Para principiantes, se recomienda comenzar con un trabajo pequeño de tipo Fargate.

Aspectos a tener en cuenta

  • AWS Batch itself is free - you only pay for the EC2 instances or Fargate tasks that actually run your jobs
  • When using Spot Instances, jobs may be interrupted, so implementing checkpointing in your jobs is recommended for safety
  • The Fargate type is simpler to manage but offers fewer GPU instance options and less customization compared to the EC2 type
共有するXB!