Información general
P: ¿Qué es AWS Batch?
AWS Batch es un conjunto de capacidades de gestió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., CPU o recursos informáticos optimizados para la memoria) según el volumen y los requisitos específicos de recursos de los trabajos por lotes enviados. Con AWS Batch, no es necesario instalar y administrar software de computación por lotes ni clústeres de servidores, lo que le permite centrarse en el análisis de los resultados y la resolución de problemas. AWS Batch planifica, programa y ejecuta sus cargas de trabajo de computación por lotes con Amazon ECS, Amazon EKS y AWS Fargate con la opción de utilizar instancias de spot.
P: ¿Qué es la computación 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.
- 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; alinea la asignación de recursos con los objetivos empresariales.
¿Cuándo debo ejecutar mis trabajos en EKS y cuándo en Fargate o ECS?
¿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 entornos informáticos y colas de trabajos, lo que le permite ejecutar fácilmente miles de trabajos de cualquier escala mediante Amazon ECS, Amazon EKS y AWS Fargate con una opción entre recursos de spot o bajo demanda. 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 EC2 o un recurso informático de AWS Fargate.
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 alojamientos 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 facilita AWS Batch el uso de las instancias de spot?
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 las instancias de spot de EC2 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, lo que incluye aquellas lanzadas por una flota de spot de EC2.
Precios
P: P: ¿Cuánto cuesta AWS Batch?
No se aplican cargos adicionales por el uso de AWS Batch. Solo paga por los recursos de AWS (por ejemplo, instancias EC2 o AWS Fargate) 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.
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