Con AWS Batch, solo tiene que empaquetar el código de sus trabajos por lotes, especificar sus dependencias y enviar el trabajo por lotes mediante la consola de administración, las CLI o los SDK de AWS. AWS Batch le permite especificar parámetros de ejecución y dependencias de trabajos, y facilita la integración con una amplia variedad de lenguajes y motores de flujo de trabajo informático por lotes conocidos (p. ej., Pegasus WMS, Luigi, Nextflow, Metaflow, Apache Airflow y AWS Step Functions). AWS Batch aprovisiona y escala de manera eficaz y dinámica instancias de Amazon EC2 y de spot en función de los requisitos de sus trabajos. AWS Batch proporciona definiciones de entornos de computación y colas de trabajos predeterminadas que le permiten comenzar a trabajar con rapidez.

Aprovisionamiento y escalado de recursos informáticos dinámicos

AWS Batch proporciona entornos informáticos administrados que aprovisionan y escalan de manera dinámica recursos informáticos basados en los requisitos de volumen y recursos de sus trabajos enviados. Puede configurar los entornos informáticos administrados de AWS Batch con requisitos como el tipo de instancias EC2, las configuraciones de subred de VPC, las vCPU mínimas/máximas/deseadas en todas las instancias y el monto que está dispuesto a pagar por las instancias de spot como un porcentaje del precio de las instancias bajo demanda.

De manera alternativa, puede aprovisionar y administrar sus propios recursos informáticos en los entornos informáticos no administrados de AWS Batch si necesita usar configuraciones diferentes (p. ej., volúmenes EBS de mayor tamaño o un sistema operativo distinto) para sus instancias EC2 de las proporcionadas por los entornos informáticos administrados de AWS Batch. Simplemente necesita aprovisionar instancias de EC2 que incluyan el agente de Amazon ECS y ejecutar versiones compatibles de Linux y Docker. Entonces AWS Batch ejecutará trabajos por lotes en las instancias EC2 que aprovisione.

Soporte para cargas de trabajo de HPC estrechamente acopladas

AWS Batch admite los trabajos paralelos de varios nodos, lo que le permite ejecutar trabajos individuales que abarcan varias instancias EC2. Esta característica le permite usar AWS Batch para ejecutar cargas de trabajo de forma fácil y eficiente, como aplicaciones de informática de alto rendimiento (HPC) a gran escala y estrechamente acopladas, o entrenamiento de modelos de GPU distribuidos. AWS Batch también admite Elastic Fabric Adapter, una interfaz de red que le permite ejecutar aplicaciones que requieren altos niveles de comunicación entre nodos a escala en AWS. 

Definiciones de trabajos detalladas y modelado de dependencias de trabajos sencillo

AWS Batch le permite especificar requisitos de recursos, como la vCPU y la memoria, funciones de AWS Identity and Access Management (IAM), puntos de montaje de volúmenes, propiedades de contenedores y variables de entorno, para definir cómo se van a ejecutar los trabajos. AWS Batch ejecuta sus trabajos como aplicaciones en contenedores que se ejecutan en Amazon ECS. Batch también le permite definir dependencias entre distintos trabajos. Por ejemplo, su trabajo por lotes se puede componer de tres fases distintas de procesamiento con diferentes necesidades de recursos. Con las dependencias, puede crear tres trabajos con diferentes requisitos de recursos, de manera que cada trabajo sucesivo dependa del trabajo anterior.

Programación de trabajos basada en prioridades

AWS Batch le permite configurar varias colas con distintos niveles de prioridad. Los trabajos por lotes se almacenan en las colas hasta que se disponga de recursos informáticos para ejecutar el trabajo. El programador de AWS Batch evalúa cuándo, dónde y cómo ejecutar trabajos enviados a una cola en función de los requisitos de recursos de cada trabajo. El programador evalúa la prioridad de cada cola y ejecuta trabajos por orden de prioridad en recursos informáticos óptimos (p. ej., optimizados para memoria o para CPU), siempre y cuando los trabajos no tengan dependencias pendientes.

Compatibilidad con programación de GPU

La programación de GPU permite especificar el número y el tipo de aceleradores que necesitan los trabajos como variables de entrada de definición de trabajos en AWS Batch. AWS Batch ajustará el número de instancias apropiado para sus trabajos en función de la cantidad de GPU requeridas y aislará los aceleradores de acuerdo con las necesidades de cada trabajo, de manera que solo los contenedores correspondientes puedan obtener acceso a ellos.

AWS Batch se puede integrar con lenguajes y motores de flujo de trabajo de código abierto y comerciales, como Pegasus WMS, Luigi, Nextflow, Metaflow, Apache Airflow y AWS Step Functions, lo que le permite utilizar lenguajes de flujo de trabajo conocidos para modelar sus canalizaciones de informática por lotes.

Integración con plantillas de lanzamiento de EC2

La nueva compatibilidad de AWS Batch con las plantillas de lanzamiento de EC2 le permite crear plantillas personalizadas para sus recursos informáticos y posibilita a Batch ajustar la escala de las instancias con dichos requisitos. Puede especificar una plantilla de lanzamiento de EC2 para agregar volúmenes de almacenamiento, especificar interfaces de red o configurar permisos, entre otras capacidades. Las plantillas de lanzamiento de EC2 reducen el número de pasos necesarios para configurar entornos de Batch mediante el registro de parámetros de lanzamiento en un recurso.

Estrategias de asignación flexible

AWS Batch permite a los clientes elegir entre tres métodos de asignación de recursos informáticos. Estas estrategias permiten a los clientes gestionar el rendimiento y el precio cuando decidan cómo debe escalar instancias AWS Batch por ellos.

Ajuste óptimo: AWS Batch selecciona el tipo de instancia que mejor se adapte a los trabajos dando preferencia al tipo de instancia de menor costo. Si no hay instancias adicionales disponibles del tipo de instancia seleccionada, AWS Batch esperará a que estén disponibles. Si no hay suficientes instancias disponibles, o si el usuario llega a los límites del servicio de Amazon EC2, no se ejecutarán trabajos adicionales hasta que finalicen aquellos que se estén ejecutando en ese momento. Esta estrategia de asignación permite que el costo se mantenga en un nivel bajo, aunque puede limitar el escalado.

Ajuste óptimo progresivo: AWS Batch seleccionará tipos de instancia adicionales lo suficientemente grandes como para cumplir los requisitos de los trabajos en la cola, dando preferencia a los tipos de instancia con un costo por unidad vCPU inferior. Si no hay instancias adicionales del tipo que se seleccionó previamente, AWS Batch seleccionará nuevos tipos de instancias.

Capacidad de spot optimizada: AWS Batch seleccionará una o más instancias adicionales lo suficientemente grandes como para cumplir los requisitos de los trabajos en la cola, dando preferencia a aquellos tipos de instancia con menor probabilidad de ser interrumpidas. Esta estrategia de asignación solo está disponible para recursos informáticos de instancias de spot.

Monitoreo y registro integrados

AWS Batch muestra métricas operativas clave para sus trabajos por lotes en la consola de administración de AWS. Puede ver métricas relacionadas con la capacidad informática, así como los trabajos en ejecución, pendientes y completados. Hay disponibles registros de sus trabajos (p. ej., STDERR y STDOUT) en la consola de administración de AWS, que también se escriben en Amazon CloudWatch Logs.

Control de acceso preciso

AWS Batch usa IAM para controlar y monitorear los recursos de AWS a los que sus trabajos pueden acceder, como tablas de Amazon DynamoDB. A través de IAM, también puede definir políticas para distintos usuarios en su organización. Por ejemplo, se puede conceder permiso pleno a los administradores para acceder a cualquier operación de la API de AWS Batch, permisos limitados a los desarrolladores para configurar entornos informáticos y registrar trabajos, y permisos restringidos a los usuarios finales para que solo puedan enviar y eliminar trabajos.

Más información sobre los precios de AWS Batch

Visite la página de precios
¿Listo para crear?
Introducción a AWS Batch
¿Tiene más preguntas?
Contacte con nosotros