Información general

P: ¿Qué es AWS Batch?
AWS Batch es un conjunto de capacidades de administración por lotes que permite a desarrolladores, científicos e ingenieros ejecutar de manera sencilla y eficaz cientos de miles de trabajos de informática por lotes en AWS. AWS Batch aprovisiona de manera dinámica la cantidad y el tipo óptimos de recursos informáticos (p. ej., instancias optimizadas para CPU o para memoria) en función del volumen y los requisitos específicos de recursos de los trabajos por lotes enviados. Con AWS Batch, no es necesario instalar y administrar clústeres de servidores ni software de informática por lotes, lo que le permite concentrarse en analizar resultados y resolver problemas. AWS Batch planifica, programa y ejecuta sus cargas de trabajo de informática por lotes con Amazon EC2 y las instancias de spot.

P: ¿Qué es la informática por lotes?
La informática por lotes es la ejecución de una serie de programas ("trabajos") en uno o más equipos sin intervención manual. Los parámetros de entrada están predefinidos a través de scripts, argumentos de línea de comandos, archivos de control o el lenguaje de control del trabajo. Un trabajo por lotes determinado puede depender de que se completen trabajos anteriores o de la disponibilidad de ciertas entradas, por lo que la secuenciación y la programación de trabajos son importantes, e incompatible con el procesamiento interactivo.

P: ¿Cuáles son los beneficios de la informática por lotes?
  • Puede cambiar la hora del procesamiento de trabajos a periodos en los que hay más capacidad disponible, o capacidad más económica.
  • Evita mantener recursos informáticos en espera mediante la intervención y supervisión frecuente manual.
  • Mejora la eficacia al fomentar un mayor uso de los recursos informáticos.
  • Permite priorizar trabajos, correspondiendo la asignación de recursos con los objetivos empresariales.

¿Por qué AWS Batch?

P: ¿Por qué debería utilizar AWS Batch?
AWS Batch se ocupa de la ejecución de trabajos y la administración de recursos informáticos, lo que le permite concentrarse en desarrollar aplicaciones o analizar resultados en lugar de configurar y administrar infraestructura. Si está considerando ejecutar o transferir cargas de trabajos por lotes a AWS, debería considerar utilizar AWS Batch.

P: ¿Para qué casos de uso está optimizado AWS Batch?
AWS Batch está optimizado para aplicaciones e informática por lotes que se escalan a través de la ejecución de varios trabajos simultáneamente. El aprendizaje profundo, el análisis genómico, los modelos de riesgo financiero, las simulaciones Monte Carlo, el renderizado de animación, la transcodificación de medios, el procesamiento de imágenes y las simulaciones de ingeniería son ejemplos excelentes de aplicaciones de informática por lotes.

Características

P: ¿Cuáles son las características principales de AWS Batch?
AWS Batch administra recursos informáticos y colas de trabajos, lo que le permite ejecutar con facilidad miles de trabajos de cualquier escala con Amazon EC2 e instancias de spot de EC2. Tan solo tiene que definir y enviar sus trabajos por lotes a una cola. Como respuesta, AWS Batch elige dónde ejecutar los trabajos, implementando capacidad de AWS adicional en caso necesario. AWS Batch controla de manera detallada el progreso de sus trabajos. Cuando ya no se necesite la capacidad, AWS Batch la eliminará. AWS Batch también permite enviar trabajos que forman parte de una canalización o flujo de trabajo, permitiéndole expresar cualquier interdependencia que exista entre ellos al enviar los trabajos.

P: ¿Qué tipos de trabajos por lotes admite AWS Batch?
AWS Batch admite cualquier trabajo que se pueda ejecutar como un contenedor Docker. Los trabajos especifican sus requisitos de memoria y cantidad de vCPU.  

P: ¿Qué es un recurso informático?
Un recurso informático de AWS Batch es una instancia de EC2.

P: ¿Qué es un entorno informático?
Un entorno informático de AWS Batch es un conjunto de recursos informáticos en los que se ejecutan trabajos. AWS Batch admite dos tipos de entornos informáticos: entornos informáticos administrados, que AWS aprovisiona y gestiona, y entornos informáticos no administrados, que los clientes administran. Los entornos informáticos no administrados proporcionan un mecanismo para utilizar recursos especializados, como hosts dedicados, configuraciones de almacenamiento de mayor tamaño y Amazon EFS.

P: ¿Qué es una definición de trabajo?
Una definición de trabajo describe el trabajo a ejecutar, los parámetros, las variables del entorno, los requisitos informáticos y otra información que se utiliza para optimizar la ejecución de un trabajo. Las definiciones de trabajo se determinan antes de enviar un trabajo y se pueden compartir con otros.

P: ¿Qué es el agente de Amazon ECS y cómo lo utiliza AWS Batch?
AWS Batch utiliza Amazon ECS para ejecutar trabajos en contenedores y, por lo tanto, requiere que se instale el agente de ECS en los recursos informáticos de sus entornos informáticos de AWS Batch. El agente de ECS viene ya instalado en los entornos informáticos administrados.

P: ¿Cómo hace AWS Batch que resulte más sencillo utilizar las instancias de spot de EC2?
Los entornos informáticos de AWS Batch pueden componerse de instancias de spot de EC2. Cuando crea un entorno informático administrado, solo debe especificar que desea utilizar EC2 Spot y proporcionar un porcentaje de los precios bajo demanda que está dispuesto a pagar; AWS Batch se ocupará del resto. Los entornos informáticos no administrados también pueden incluir instancias de spot que usted lance, incluidas las lanzadas por una flota de instancias de spot de EC2.

Precios

P: P: ¿Cuánto cuesta AWS Batch?
El uso de AWS Batch no conlleva cargos adicionales. Solo paga por los recursos de AWS (p. ej., instancias de EC2) que crea para almacenar y ejecutar sus trabajos por lotes.

Programación de GPU

P: ¿Puedo usar aceleradores con AWS Batch?
Sí, puede utilizar Batch para especificar la cantidad y el tipo de aceleradores que necesitan sus trabajos como variables de entrada de definición de trabajo, junto con las opciones actuales de la CPU virtual y memoria. AWS Batch aumentará las instancias apropiadas para sus trabajos basándose en los aceleradores requeridos y aislará los aceleradores de acuerdo a las necesidades de cada trabajo, de manera que solo los contenedores apropiados puedan acceder a ellos.

P: ¿Por qué debo usar aceleradores con AWS Batch?
Mediante el uso de aceleradores con Batch, puede programar y aprovisionar sus trabajos de forma dinámica de acuerdo con las necesidades del acelerador. Además, Batch se asegurará de que se reserve la cantidad adecuada de aceleradores para sus trabajos. Batch aumentará sus instancias EC2 aceleradas cuando las necesite y las reducirá cuando haya terminado, lo que le permitirá enfocarse en sus aplicaciones. Batch se integra de manera nativa con EC2 Spot, lo que significa que puede aprovechar hasta un 90 % de ahorro con sus trabajos acelerados cuando utiliza instancias aceleradas.

P: ¿Qué aceleradores puedo usar con AWS Batch?
Actualmente, puede utilizar los de GPU en instancias aceleradas P.

P: ¿Cómo envío trabajos que requieren instancias aceleradas para Batch?
Puede especificar la cantidad y el tipo de aceleradores en Definición de trabajo. Puede especificar el acelerador mediante la descripción del tipo de acelerador (por ejemplo, GPU, actualmente el único acelerador compatible) y la cantidad de ese tipo que necesita su trabajo. El tipo de acelerador especificado debe estar presente en uno de los tipos de instancia especificados en sus entornos informáticos. Por ejemplo, si su trabajo necesita 2 GPU, asegúrese también de que ha especificado una instancia de la familia P en su entorno informático.

Desde la API:
{
"containerProperties": {
"vcpus": 1,
"image": "nvidia/cuda:9.0-base",
"memory": 2048,
"resourceRequirements" : [
{
"type" : "GPU",
"value" : "1"
}
],

P: ¿Pueden sobrescribirse las variables del acelerador en la definición de trabajo al enviar el trabajo?
De forma similar a los requisitos de la CPU virtual y la memoria, puede sobrescribir la cantidad y el tipo de aceleradores al enviar el trabajo.

P: ¿Se pueden utilizar instancias aceleradas para trabajos que no necesitan los aceleradores?
Con el comportamiento actual, Batch evitará programar trabajos que no requieran aceleración en instancias aceleradas siempre que sea posible. Esto es para evitar casos en los que trabajos de larga duración ocupan la instancia acelerada sin aprovechar el acelerador, lo que aumenta el costo. En raras ocasiones, con precios de Spot y con instancias aceleradas como tipos permitidos, es posible que Batch determine que una instancia acelerada es la forma menos costosa de ejecutar sus trabajos, independientemente de las necesidades del acelerador.

Si envía un trabajo a un CE que solo permite que Batch inicie instancias aceleradas, Batch ejecutará los trabajos en esas instancias, independientemente de las necesidades del acelerador.

P: ¿Cómo utiliza Batch la AMI optimizada para GPU de ECS?
A partir de ahora, las instancias de tipo p se iniciarán de forma predeterminada con la AMI optimizada para GPU de ECS. Esta AMI contiene las bibliotecas y los tiempos de ejecución necesarios para ejecutar aplicaciones basadas en GPU. Siempre se puede apuntar a una AMI personalizada según sea necesario al crear un CE.

Introducción

P: ¿Cómo puedo comenzar?
Para comenzar, consulte la Guía de inicio de nuestra documentación.

P: ¿Qué debo aprovisionar para comenzar?
No es necesario implementar manualmente sus propios recursos informáticos para comenzar. La consola web de AWS Batch le guiará a través del proceso de creación de su primer entorno informático y cola de trabajos, para que pueda enviar su primer trabajo. Los recursos de su entorno informático se incrementarán cuando haya trabajos adicionales listos para ejecutarse y se reducirán cuando la cantidad de trabajos ejecutables disminuya.

Conozca más detalles sobre cuándo debe utlizar AWS Batch

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