aws batch - guía del usuario · para comenzar a usar aws batch, cree una definición de trabajo,...

137
AWS Batch Guía del usuario

Upload: others

Post on 21-Apr-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS BatchGuía del usuario

Page 2: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuario

AWS Batch: Guía del usuarioCopyright © 2020 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's,in any manner that is likely to cause confusion among customers, or in any manner that disparages or discreditsAmazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may notbe affiliated with, connected to, or sponsored by Amazon.

Page 3: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuario

Table of Contents¿Qué es AWS Batch? ......................................................................................................................... 1

Componentes de AWS Batch ....................................................................................................... 1Trabajos ............................................................................................................................ 1Definiciones de trabajo ........................................................................................................ 1Colas de trabajo ................................................................................................................. 1Entorno informático ............................................................................................................. 2

Introducción ............................................................................................................................... 2Configuración ..................................................................................................................................... 3

Inscripción en AWS .................................................................................................................... 3Creación de un usuario de IAM .................................................................................................... 3Crear roles de IAM para los entornos informáticos e instancias de contenedor ..................................... 5Creación de un par de claves ...................................................................................................... 5Creación de una nube virtual privada ............................................................................................ 7Creación de un grupo de seguridad .............................................................................................. 7Instalar la AWS CLI .................................................................................................................... 9

Introducción ..................................................................................................................................... 10Paso 1: Definir un trabajo .......................................................................................................... 10Paso 2: Configurar el entorno informático y la cola de trabajos ........................................................ 12

Trabajos .......................................................................................................................................... 15Enviar un trabajo ...................................................................................................................... 15Estados de trabajo .................................................................................................................... 17Variables de entorno de los trabajos ............................................................................................ 19Reintentos automáticos de trabajo ............................................................................................... 20Dependencias de trabajos .......................................................................................................... 20Tiempos de espera de trabajo .................................................................................................... 21Trabajos de matrices ................................................................................................................. 21

Ejemplo de flujo de trabajo de un trabajo de matriz ................................................................ 23Tutorial: Uso del índice de trabajo de matriz ......................................................................... 25

Trabajos paralelos de varios nodos ............................................................................................. 29Variables de entorno ......................................................................................................... 30Grupos de nodos .............................................................................................................. 31Ciclo de vida del trabajo .................................................................................................... 31Consideraciones del entorno informático .............................................................................. 31

Trabajos de GPU ...................................................................................................................... 32Definiciones de trabajo ...................................................................................................................... 34

Cómo crear una definición de trabajo .......................................................................................... 34Creación de una definición de trabajo paralelo de varios nodos ........................................................ 37Plantilla de definición de trabajo .................................................................................................. 40Parámetros de definición de trabajos ........................................................................................... 42

Nombre de la definición de trabajo ...................................................................................... 42Tipo ................................................................................................................................ 43Parámetros ...................................................................................................................... 43Propiedades de contenedor ................................................................................................ 43Propiedades del nodo ........................................................................................................ 50Estrategia de reintento ....................................................................................................... 51Tiempo de espera ............................................................................................................. 51

Ejemplos de definiciones de trabajo ............................................................................................. 51Utilización de variables de entorno ...................................................................................... 52Cómo usar la sustitución de parámetros ............................................................................... 52Funcionalidad de GPU de prueba ....................................................................................... 53Trabajo paralelos de varios nodos ....................................................................................... 53

Colas de trabajo ............................................................................................................................... 55Cómo crear de una cola de trabajos ............................................................................................ 55

Plantillas de cola de trabajos .............................................................................................. 56

iii

Page 4: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuario

Parámetros de cola de trabajos .................................................................................................. 56Nombre de la cola de trabajos ............................................................................................ 56Estado ............................................................................................................................. 56Prioridad .......................................................................................................................... 57Orden del entorno informático ............................................................................................. 57

Programación de trabajos .................................................................................................................. 58Entornos informáticos ........................................................................................................................ 59

Entornos informáticos administrados ............................................................................................ 59Entornos informáticos no administrados ....................................................................................... 60AMI de recursos informáticos ..................................................................................................... 60

Especificaciones de AMI de recursos informáticos ................................................................. 61Cómo crear una AMI de recursos informáticos ...................................................................... 62Cómo utilizar una AMI de carga de trabajo de GPU ............................................................... 64

Compatibilidad con las plantillas de lanzamiento ............................................................................ 68Datos de usuario de Amazon EC2 en las plantillas de lanzamiento ........................................... 69

Cómo crear un entorno informático .............................................................................................. 71Plantillas de entorno informático .......................................................................................... 75

Parámetros de un entorno informático .......................................................................................... 76Nombre del entorno informático .......................................................................................... 76Tipo ................................................................................................................................ 76Estado ............................................................................................................................. 76Recursos informáticos ....................................................................................................... 77Rol de servicio ................................................................................................................. 80

Estrategias de asignación .......................................................................................................... 80Administración de la memoria ..................................................................................................... 81

Reservar memoria del sistema ............................................................................................ 82Consultar la memoria de .................................................................................................... 82

Elastic Fabric Adapter ....................................................................................................................... 83Políticas, roles y permisos de IAM ...................................................................................................... 85

Estructura de la política ............................................................................................................. 85Sintaxis de la política ........................................................................................................ 86Acciones de AWS Batch .................................................................................................... 86Nombres de recursos de Amazon para AWS Batch ............................................................... 87Probar los permisos .......................................................................................................... 87

Permisos de nivel de recurso admitidos ....................................................................................... 88Ejemplos de políticas ................................................................................................................ 89

Acceso de solo lectura ...................................................................................................... 89Restricción a usuario, imagen, privilegio y rol ........................................................................ 90Restricción según la definición de trabajo ............................................................................. 91Restricción según la cola de trabajos ................................................................................... 91

Política administrada de AWS Batch ............................................................................................ 92AWSBatchFullAccess ........................................................................................................ 92

Creación de políticas de IAM ...................................................................................................... 93Rol de servicio de IAM en AWS Batch ......................................................................................... 93Rol de instancia de Amazon ECS ............................................................................................... 95Rol de flota de spot de Amazon EC2 ........................................................................................... 95

Cómo crear roles de flota de spot de Amazon EC2 en la Consola de administración de AWS ......... 96Cómo crear roles de flota de spot de Amazon EC2 con la AWS CLI ......................................... 97

Rol de IAM de Eventos de CloudWatch ....................................................................................... 98Eventos de CloudWatch ..................................................................................................................... 99

Eventos de AWS Batch ............................................................................................................. 99Eventos de cambio de estado de los trabajos ...................................................................... 100

Trabajos de AWS Batch como destinos de Eventos de CloudWatch ................................................ 101Creación de un trabajo programado ................................................................................... 101Transformador de entrada de eventos ................................................................................ 102

Tutorial: Escucha de Eventos de CloudWatch de AWS Batch ......................................................... 103Requisitos previos ........................................................................................................... 103

iv

Page 5: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuario

Paso 1: Crear la función de Lambda .................................................................................. 104Paso 2: Registrar una regla de eventos .............................................................................. 104Paso 3: Probar la configuración ........................................................................................ 105

Tutorial: Envío de alertas de Amazon Simple Notification Service para eventos de trabajo con error ...... 105Requisitos previos ........................................................................................................... 105Paso 1: Crear y suscribirse a un tema de Amazon SNS ........................................................ 105Paso 2: Registrar una regla de eventos .............................................................................. 106Paso 3: Comprobación de la regla ..................................................................................... 106

CloudTrail ...................................................................................................................................... 108Información de AWS Batch en CloudTrail ................................................................................... 108Descripción de las entradas de archivos de registro de AWS Batch ................................................ 109

Tutorial: Creación de una VPC .......................................................................................................... 111Paso 1: Crear una dirección IP elástica para su gateway NAT ....................................................... 111Paso 2: Ejecutar el asistente para VPC ...................................................................................... 111Paso 3: Crear subredes adicionales ........................................................................................... 112Pasos siguientes ..................................................................................................................... 112

Seguridad ...................................................................................................................................... 114Identity and Access Management .............................................................................................. 114

Público .......................................................................................................................... 114Autenticación con identidades ........................................................................................... 115Administración de acceso mediante políticas ....................................................................... 117Funcionamiento de AWS Batch con IAM ............................................................................ 118Ejemplos de políticas basadas en identidad ........................................................................ 121Solución de problemas ..................................................................................................... 123

Validación de la conformidad .................................................................................................... 125Seguridad de la infraestructura .................................................................................................. 125

Límites del servicio .......................................................................................................................... 127Solución de problemas ..................................................................................................................... 128

Entorno informático INVALID ................................................................................................... 128Nombre de rol o ARN incorrectos ...................................................................................... 128Cómo reparar un entorno informático INVALID ................................................................... 129

Trabajos bloqueados en estado RUNNABLE ................................................................................. 129Instancias de spot no etiquetadas en el momento de su creación ................................................... 130

Historial de revisión ......................................................................................................................... 131

v

Page 6: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioComponentes de AWS Batch

¿Qué es AWS Batch?AWS Batch permite ejecutar cargas de trabajo informático por lotes en la nube de AWS. La informáticapor lotes es una forma común de acceso a grandes cantidades de recursos informáticos utilizada pordesarrolladores, científicos e ingenieros, y AWS Batch elimina la ardua tarea de configurar y administrarla infraestructura necesaria, de forma similar al software de informática por lotes tradicional. Esteservicio puede aprovisionar recursos de forma eficaz en respuesta a los trabajos enviados para eliminarlimitaciones de capacidad, reducir costos informáticos y ofrecer resultados con rapidez.

Al ser un servicio completamente administrado, AWS Batch permite ejecutar cargas de trabajo informáticopor lotes de cualquier escala. AWS Batch proporciona automáticamente recursos informáticos y optimiza ladistribución de la carga de trabajo en función de la cantidad y la escala. Con AWS Batch, no es necesarioinstalar ni administrar software de informática por lotes, lo que le permite centrarse en analizar resultados yresolver problemas.

Componentes de AWS BatchAWS Batch es un servicio regional que simplifica los trabajos por lotes en ejecución en múltiples zonasde disponibilidad dentro de una región. Puede crear entornos informáticos de AWS Batch dentro de unaVPC nueva o existente. Después de que un entorno informático se ha activado y asociado a una colade trabajos, puede precisar las definiciones de trabajo que especifican cuáles imágenes de contenedorDocker ejecutarán sus trabajos. Las imágenes de contenedor se almacenan y se extraen desde registrosde contenedor, que podrían existir dentro o fuera de la infraestructura de AWS.

TrabajosUna unidad de trabajo (como un script de shell, un ejecutable en Linux o una imagen de contenedorDocker) que envía a AWS Batch. Tiene un nombre y se ejecuta como una aplicación en contenedor enuna instancia Amazon EC2 de su entorno informático, utilizando los parámetros que se especifican enuna definición de trabajo. Los trabajos pueden hacer referencia a otros trabajos por nombre o ID, y puedeque de ellos dependa la correcta realización de otros trabajos. Para obtener más información, consulteTrabajos (p. 15).

Definiciones de trabajoUna definición de trabajo especifica de qué forma se ejecutarán los trabajos; es como un proyecto delos recursos en su trabajo. Puede proporcionar su trabajo con un rol de IAM para proporcionar accesoprogramático a otros recursos de AWS, y puede especificar los requisitos de memoria y CPU. La definiciónde trabajo también puede controlar las propiedades de contenedor, las variables de entorno y los puntosde montaje para un almacenamiento persistente. Muchas de las especificaciones de una definición detrabajo pueden anularse mediante la especificación de nuevos valores al enviar trabajos individuales. Paraobtener más información, consulte Definiciones de trabajo (p. 34)

Colas de trabajoAl enviar un trabajo de AWS Batch, usted lo envía a una cola de trabajos determinada, donde permaneceráhasta que se programe en un entorno informático. Puede asociar uno o más entornos informáticos conuna cola de trabajos, y puede asignar valores de prioridad para estos entornos informáticos e incluso entrecolas de trabajo. Por ejemplo, podría tener una cola de prioridad alta a la que envía trabajos prioritarios,

1

Page 7: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioEntorno informático

y una cola de prioridad baja para los trabajos que pueden ejecutarse en cualquier momento, cuando losrecursos informáticos son más económicos.

Entorno informáticoUn entorno informático es un conjunto de recursos informáticos administrados o no administrados quese utilizan para ejecutar trabajos. Los entornos informáticos administrados le permiten especificar lostipos de instancia deseados en varios niveles de detalle. Puede configurar entornos informáticos queutilicen un tipo de instancia determinado, un modelo determinado como c4.2xlarge o m4.10xlarge,o bien, simplemente especificar que desea utilizar los tipos de instancia más recientes. También puedeespecificar el número mínimo, el número deseado y el número máximo de CPU virtuales del entorno,junto con la cantidad que está dispuesto a pagar por una instancia de spot como un porcentaje delprecio de las instancias bajo demanda y un conjunto de destino de subredes de la VPC. AWS Batchlanzará, administrará y terminará en forma eficiente las instancias EC2 según sea necesario. Tambiénpuede administrar sus propios entornos informáticos. En este caso, usted es responsable de configurar yescalar las instancias en un clúster de Amazon ECS que AWS Batch crea para usted. Para obtener másinformación, consulte Entornos informáticos (p. 59).

IntroducciónPara comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola detrabajo en la consola de AWS Batch.

El asistente de primera ejecución de AWS Batch ofrece la posibilidad de crear un entorno informático y unacola de trabajo, y enviar un trabajo de ejemplo "hello world". Si, en su lugar, ya tiene una imagen de Dockerque le gustaría lanzar en AWS Batch, puede crear una definición de trabajo con esa imagen y enviarla a lacola. Para obtener más información, consulte Introducción a AWS Batch (p. 10).

2

Page 8: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioInscripción en AWS

Configuración con AWS BatchSi ya se ha inscrito en Amazon Web Services (AWS) y ha empezado a usar Amazon Elastic ComputeCloud (Amazon EC2) o Amazon Elastic Container Service (Amazon ECS), está muy de cerca de poderusar AWS Batch. El proceso de configuración de todos estos servicios es muy similar, ya que AWS Batchutiliza las instancias de contenedor de Amazon ECS en sus entornos informáticos. Para usar la AWS CLIcon AWS Batch debe usar una versión de la AWS CLI que admita las últimas características de AWSBatch. Si alguna de las características de AWS Batch no son compatibles con la AWS CLI, debe actualizara la última versión. Para obtener más información, consulte http://aws.amazon.com/cli/.

Note

Como AWS Batch utiliza componentes de Amazon EC2, se utiliza la consola de Amazon EC2para muchos de estos pasos.

Lleve a cabo las siguientes tareas para obtener la configuración de AWS Batch. Si ya ha realizado algunode estos pasos, puede omitirlos y proceder con la instalación de la AWS CLI personalizada.

1. Inscripción en AWS (p. 3)2. Creación de un usuario de IAM (p. 3)3. Crear roles de IAM para los entornos informáticos e instancias de contenedor (p. 5)4. Creación de un par de claves (p. 5)5. Creación de una nube virtual privada (p. 7)6. Creación de un grupo de seguridad (p. 7)7. Instalar la AWS CLI (p. 9)

Inscripción en AWSAl registrarse en AWS, su cuenta de AWS se registra automáticamente en todos los servicios, incluidosAmazon EC2 y AWS Batch. Solo se le cobrará por los servicios que utilice.

Si ya dispone de una cuenta de AWS, pase a la siguiente tarea. Si no dispone de una cuenta de AWS,utilice el siguiente procedimiento para crear una.

Para crear una cuenta de AWS

1. Abra https://portal.aws.amazon.com/billing/signup.2. Siga las instrucciones en línea.

Parte del procedimiento de inscripción consiste en recibir una llamada telefónica e indicar un código deverificación en el teclado del teléfono.

Anote su número de cuenta de AWS porque lo necesitará en la siguiente tarea.

Creación de un usuario de IAMCuando obtenga acceso a los servicios de AWS, como Amazon EC2 y AWS Batch, debe proporcionarcredenciales para que estos puedan determinar si tiene permiso de acceso a sus recursos. La consolarequiere que especifique la contraseña. Puede crear claves de acceso para su cuenta de AWS paratener acceso a la interfaz de línea de comandos o API. No obstante, no recomendamos que tenga

3

Page 9: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioCreación de un usuario de IAM

acceso a AWS con las credenciales de su cuenta de AWS; es mejor que utilice AWS Identity and AccessManagement (IAM) en su lugar. Cree un usuario de IAM y añádalo a un grupo de IAM con permisosadministrativos, o conceda al usuario permisos administrativos. Después, podrá obtener acceso a AWSutilizando una URL especial y las credenciales de usuario de IAM.

Si se ha inscrito en AWS, pero no ha creado un usuario de IAM para usted, puede crearlo en la consola deIAM.

Para crearse usted mismo un usuario administrador y agregarlo a un grupo de administradores(consola)

1. Utilice la dirección de correo electrónico y la contraseña de su cuenta de AWS para iniciar sesióncomo Usuario de la cuenta raíz de AWS en la consola de IAM en https://console.aws.amazon.com/iam/.

Note

Le recomendamos que siga la práctica recomendada de utilizar el usuario de IAMAdministrator como se indica a continuación y guardar de forma segura las credencialesde usuario raíz. Inicie sesión como usuario raíz únicamente para realizar algunas tareas deadministración de servicios y de cuentas.

2. En el panel de navegación, elija Users (Usuarios) y, a continuación, elija Add user (Añadir usuario).3. En User name (Nombre de usuario), escriba Administrator.4. Marque la casilla situada junto a Consola de administración de AWS access (Acceso a la Consola de

administración de AWS). A continuación, seleccione Custom password (Contraseña personalizada) yluego escriba la nueva contraseña en el cuadro de texto.

5. (Opcional) De forma predeterminada, AWS requiere al nuevo usuario que cree una nueva contraseñala primera vez que inicia sesión. Puede quitar la marca de selección de la casilla de verificaciónsituada junto a User must create a new password at next sign-in (El usuario debe crear una nuevacontraseña en el siguiente inicio de sesión) para permitir al nuevo usuario restablecer su contraseñadespués de iniciar sesión.

6. Elija Next: Permissions.7. En Set permissions (Establecer persmisos), elija Add user to group (Añadir usuario a grupo).8. Elija Create group (Crear grupo).9. En el cuadro de diálogo Create group (Crear grupo), en Group name (Nombre del grupo) escriba

Administrators.10. Elija Filter policies (Filtrar políticas) y, a continuación, seleccione AWS managed -job function (Función

de trabajo administrada por AWS) para filtrar el contenido de la tabla.11. En la lista de políticas, active la casilla de verificación AdministratorAccess. A continuación, elija

Create group (Crear grupo).

Note

Debe activar el acceso de usuarios y roles de IAM a Facturación para poder utilizar la lospermisos AdministratorAccess para el acceso a la consola de AWS Billing and CostManagement. Para ello, siga las instrucciones que se indican en el paso 1 del tutorial sobrecómo delegar el acceso a la consola de facturación.

12. Retroceda a la lista de grupos y active la casilla de verificación del nuevo grupo. Elija Refresh si esnecesario para ver el grupo en la lista.

13. Elija Next: Tags (Siguiente: Etiquetas).14. (Opcional) Añadir metadatos al rol asociando las etiquetas como pares de clave-valor. Para obtener

más información sobre el uso de etiquetas en IAM, consulte Etiquetado de entidades de IAM en laGuía del usuario de IAM.

15. Elija Next: Review para ver la lista de suscripciones a grupos que se van a añadir al nuevo usuario.Cuando esté listo para continuar, elija Create user (Crear usuario).

4

Page 10: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioCrear roles de IAM para los entornos

informáticos e instancias de contenedor

Puede usar este mismo proceso para crear más grupos y usuarios y para conceder a los usuarios accesoa los recursos de la cuenta de AWS. Para obtener información sobre cómo usar las políticas que restringenlos permisos de los usuarios a recursos de AWS específicos, consulte Administración de acceso y Políticasde ejemplo.

Para iniciar sesión como este nuevo usuario de IAM, cierre la sesión de la consola de AWS y despuésutilice la siguiente dirección URL, donde su_id_de_cuenta_de_aws es su número de cuenta de AWS sinlos guiones (por ejemplo, si su número de cuenta de AWS es 1234-5678-9012, su ID de cuenta de AWSserá 123456789012):

https://your_aws_account_id.signin.aws.amazon.com/console/

Escriba el nombre y la contraseña del usuario de IAM que acaba de crear. Cuando haya iniciado sesión, enla barra de navegación se mostrará "su_nombre_de_usuario @ su_id_de_cuenta_de_aws".

Si no desea que la dirección URL de la página de inicio de sesión contenga el ID de su cuenta de AWS,puede crear un alias de cuenta. En el panel de IAM, elija Create Account Alias (Crear alias de cuenta) yespecifique un alias, como el nombre de su empresa. Para iniciar sesión después de crear un alias decuenta, use la siguiente dirección URL:

https://your_account_alias.signin.aws.amazon.com/console/

Para verificar el enlace de inicio de sesión de los usuarios de IAM de su cuenta, abra la consola de ycompruebe el el enlace de inicio de sesión de los usuarios de IAM en el panel.

Para obtener más información sobre IAM, consulte la guía del usuario de AWS Identity and AccessManagement.

Crear roles de IAM para los entornos informáticos einstancias de contenedor

Las instancias de contenedor y los entornos informáticos de AWS Batch requieren credenciales decuenta de AWS para realizar llamadas a otras API de AWS en su nombre. Debe crear un rol de IAM queproporcione estas credenciales a los entornos informáticos e instancias de contenedor y, a continuación,asociar el rol a los entornos informáticos.

Note

El los roles de instancia de contenedor y de entorno informático de AWS Batch se creanautomáticamente en la experiencia de primera ejecución de consola. Por lo tanto, si va a utilizarla consola AWS Batch, pase a la sección siguiente. Si, en cambio, tiene previsto utilizar la AWSCLI, siga el procedimiento descrito en Rol de servicio de IAM en AWS Batch (p. 93) y en Rol deinstancia de Amazon ECS (p. 95) antes de crear el primer entorno informático.

Creación de un par de clavesAWS utiliza una criptografía de clave pública para proteger la información de acceso de la instancia.Una instancia de Linux como, por ejemplo, una instancia de contenedor de entorno informático de AWSBatch, no tiene contraseña de acceso SSH, en su lugar, se utiliza un par de claves para iniciar sesiónen la instancia de forma segura. Primero se especifica el nombre del par de claves al crearse el entornoinformático y, a continuación, se proporciona la clave privada al iniciar sesión con SSH.

Si aún no ha creado un par de claves, puede crear uno con la consola de Amazon EC2. Recuerde que sipretende lanzar instancias en varias regiones deberá crear un par de claves en cada una de ellas. Para

5

Page 11: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioCreación de un par de claves

obtener más información sobre las regiones, consulte Regiones y zonas de disponibilidad en la Guía delusuario de Amazon EC2 para instancias de Linux.

Para crear un par de claves

1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.2. En la barra de navegación, seleccione una región para el par de claves. Se puede seleccionar

cualquier región disponible, independientemente de su ubicación. Sin embargo, cada par de clavescorresponde a una región específica. Por ejemplo, si tiene previsto lanzar una instancia en la regiónEE.UU. Oeste (Oregón), debe crear un par de claves para la instancia en la misma región.

3. En el panel de navegación, seleccione Key Pairs (Pares de claves), Create Key Pair (Crear par declaves).

4. En el cuadro de diálogo Create Key Pair (Crear par de claves), en Key pair name (Nombre del par declaves), escriba un nombre para el nuevo par de claves y, a continuación, seleccione Create (Crear).Elija un nombre fácil de recordar, como su nombre de usuario de IAM, seguido de -key-pair y delnombre de la región. Por ejemplo, yopar-de-clavesuswest2.

5. Su navegador descargará el archivo de clave privada automáticamente. El nombre de archivo base esel nombre que especificó como nombre del par de claves, y la extensión del archivo es .pem. Guardeel archivo de clave privada en un lugar seguro.

Important

Esta es la única oportunidad para guardar el archivo de clave privada. Deberá proporcionar elnombre de su par de claves al lanzar una instancia, y la clave privada correspondiente cadavez que se conecte a dicha instancia.

6. Si va a usar un cliente SSH en un equipo Mac o Linux para conectarse a su instancia de Linux, utiliceel comando a continuación para establecer los permisos de su archivo de clave privada de maneraque solo usted pueda leerlo.

$ chmod 400 your_user_name-key-pair-region_name.pem

Para obtener más información, consulte Pares de claves de Amazon EC2 en la Guía del usuario deAmazon EC2 para instancias de Linux.

Para conectarse a la instancia mediante el par de claves

Para conectarse a la instancia de Linux desde un equipo que ejecute Mac OS o Linux, especifique elarchivo .pem a su cliente SSH con la opción -i y la ruta a su clave privada. Para conectarse a la instanciade Linux desde un equipo que ejecute Windows, puede utilizar MindTerm o PuTTY. Si pretende utilizarPuTTY, deberá instalarlo y utilizar el siguiente procedimiento para convertir el archivo .pem a un archivo.ppk.

Para prepararse para conectarse a una instancia de Linux desde Windows mediante PuTTY (pasoopcional)

1. Descargue PuTTY desde http://www.chiark.greenend.org.uk/~sgtatham/putty/ e instálelo. Asegúresede instalar el conjunto completo.

2. Inicie PuTTYgen (por ejemplo, desde el menú Inicio, elija Todos los programas > PuTTY >PuTTYgen).

3. En Type of key to generate (Tipo de clave que generar), seleccione SSH-2 RSA.

6

Page 12: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioCreación de una nube virtual privada

4. Elija Load (Cargar). De forma predeterminada, PuTTYgen muestra solo archivos con la extensión.ppk. Para localizar el archivo .pem, seleccione la opción de mostrar todos los tipos de archivo.

5. Seleccione el archivo de clave privada que creó en el procedimiento anterior y elija Open (Abrir). ElijaOK (Aceptar) para descartar el cuadro de diálogo de confirmación.

6. Elija Save private key (Guardar clave privada). PuTTYgen mostrará una advertencia sobre guardar laclave sin contraseña. Elija Yes (Sí).

7. Especifique mismo el nombre de clave que utilizó para el par de claves. PuTTY añadeautomáticamente la extensión de archivo .ppk.

Creación de una nube virtual privadaAmazon Virtual Private Cloud (Amazon VPC) le permite lanzar recursos de AWS en una red virtual quehaya definido. Sugerimos lanzar las instancias de contenedor en una VPC.

Si dispone de una VPC predeterminada, también puede omitir esta sección y pasar a la siguiente tareaCreación de un grupo de seguridad (p. 7). Para determinar si dispone de una VPC predeterminada,consulte Plataformas admitidas en la consola de Amazon EC2 en la Guía del usuario de Amazon EC2para instancias de Linux. Si no tiene, puede crear una no predeterminada en su cuenta. Para ello, siga lospasos que se indican a continuación.

Important

Si su cuenta admite EC2-Classic en una región, entonces no dispone de una VPC predeterminadaen esa región.

Para crear una VPC no predeterminada

1. Abra la consola de Amazon VPC en https://console.aws.amazon.com/vpc/.2. En la barra de navegación, seleccione una región para la VPC. Cada VPC corresponde a una región

específica, así que deberá seleccionar la región en la que creó el par de claves.3. En el panel de VPC, seleccione Start VPC Wizard.4. En la página Step 1: Select a VPC Configuration (Paso 1: Seleccionar una configuración de la VPC),

asegúrese de que esté seleccionada la opción VPC with a Single Public Subnet (VPC con una únicasubred pública) y elija Select (Seleccionar).

5. En la página Step 2: VPC with a Single Public Subnet (Paso 2: VPC con una única subred pública),escriba un nombre sencillo para su VPC en VPC name (Nombre de VPC). Deje los valorespredeterminados en las demás opciones de configuración y elija Create VPC (Crear VPC). En lapágina de confirmación, seleccione OK.

Para obtener más información sobre las Amazon VPC, consulte ¿Qué es Amazon VPC? en la Guía delusuario de Amazon VPC.

Creación de un grupo de seguridadLos grupos de seguridad actúan como un cortafuegos para las instancias de contenedor de entornoinformático asociadas, al controlar el tráfico entrante y saliente en el nivel de instancia del contenedor.

7

Page 13: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioCreación de un grupo de seguridad

Es posible añadir reglas a un grupo de seguridad que le permita conectarse a la instancia de contenedordesde su dirección IP mediante SSH. También se pueden añadir reglas que permitan HTTP de entraday salida y acceso HTTPS desde cualquier lugar. Añada reglas para abrir los puertos requeridos por lastareas.

Recuerde que si pretende lanzar instancias de contenedor en varias regiones deberá crear un grupo deseguridad por región. Para obtener más información, consulte Regiones y zonas de disponibilidad en laGuía del usuario de Amazon EC2 para instancias de Linux.

Note

Necesitará la dirección IP pública de su equipo local, que puede obtener mediante un servicio.Por ejemplo, proporcionamos el siguiente servicio: http://checkip.amazonaws.com/ o https://checkip.amazonaws.com/. Para buscar otro servicio que le brinde su dirección IP, utilice lafrase de búsqueda "what is my IP address" (cuál es mi dirección IP). Si se conecta a través deun proveedor de Internet (ISP) o protegido por un firewall sin una dirección IP estática, deberáidentificar el rango de direcciones IP utilizadas por los equipos cliente.

Para crear un grupo de seguridad con los privilegios mínimos

1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.2. En la barra de navegación, seleccione una región para el grupo de seguridad. Cada grupo de

seguridad corresponde a una región específica, así que deberá seleccionar la región en la que creó elpar de claves.

3. En el panel de navegación, elija Security Groups (Grupos de seguridad), Create Security Group (Creargrupo de seguridad).

4. Escriba un nombre y una descripción para el nuevo grupo de seguridad. Elija un nombre fácil derecordar, como su nombre de usuario de IAM seguido de _SG_ y del nombre de la región. Porejemplo, me_SG_useast1.

5. Consulte la lista de VPC para asegurarse de que su VPC predeterminada esté seleccionada; es decir,que esté marcada con un asterisco (*).

Note

Si su cuenta admite EC2-Classic, seleccione la VPC que haya creado en la tarea anterior.6. Las instancias de contenedor de AWS Batch no requieren la apertura de ningún puerto de entrada.

Sin embargo, probablemente desee añadir una regla SSH para iniciar sesión en la instancia delcontenedor y examinar los contenedores en los trabajos con comandos de Docker. También puedeañadir reglas para HTTP si desea que su instancia de contenedor alojar un trabajo que ejecuteun servidor web. Siga los pasos a continuación para añadir estas reglas de grupo de seguridadopcionales.

En la pestaña Entrada cree las siguientes reglas y seleccione Crear:

• Seleccione Add Rule. En Tipo, seleccione HTTP. En Fuente, elija Cualquier lugar (0.0.0.0/0).• Seleccione Add Rule. En Tipo, seleccione SSH. En Fuente, asegúrese de que la opción IP

personalizada esté seleccionada, y especifique la dirección IP pública de su equipo o reden notación CIDR. Para especificar una dirección IP individual en notación CIDR, añada elprefijo de enrutamiento /32. Por ejemplo, si su dirección IP es 203.0.113.25, especifique203.0.113.25/32. Si su empresa asigna direcciones de un rango, especifíquelo; por ejemplo,203.0.113.0/24.

Note

Por motivos de seguridad, recomendamos que no permita acceso SSH desde todas lasdirecciones IP (0.0.0.0/0) a la instancia, excepto con fines de prueba y solamentedurante un breve periodo.

8

Page 14: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioInstalar la AWS CLI

Instalar la AWS CLIPara utilizar la AWS CLI con AWS Batch, instale la última versión de la AWS CLI. Para obtener másinformación sobre cómo instalar la AWS CLI o cómo actualizarla a la versión más reciente, consulteInstalación de la interfaz de línea de comandos de AWS en la AWS Command Line Interface Guía delusuario.

9

Page 15: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioPaso 1: Definir un trabajo

Introducción a AWS BatchPara comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola detrabajo en la consola de AWS Batch.

El asistente de primera ejecución de AWS Batch ofrece la posibilidad de crear un entorno informático y unacola de trabajo, y enviar un trabajo de ejemplo "hello world". Si, en su lugar, ya tiene una imagen de Dockerque le gustaría lanzar en AWS Batch, puede crear una definición de trabajo con esa imagen y enviarla a lacola.

Important

Antes de comenzar, asegúrese de haber completado los pasos de Configuración con AWSBatch (p. 3) y de que su usuario de AWS disponga de los permisos necesarios (los usuariosadmin no tienen que preocuparse por permisos). Para obtener más información, consulteCreación del primer grupo y usuario administrador de IAM en la Guía del usuario de IAM.

Paso 1: Definir un trabajoEn esta sección, puede elegir entre crear una definición de trabajo o un entorno informático y una cola detrabajos sin definición de trabajo.

Para configurar las opciones de trabajo

1. Abra el asistente de primera ejecución de la consola de AWS Batch en https://console.aws.amazon.com/batch/home#/wizard.

2. Para crear una definición de trabajo, un entorno informático y una cola de trabajos en AWS Batchy, a continuación, al enviar el trabajo, seleccione Using Amazon EC2. Para crear solo el entornoinformático y una cola de trabajos sin enviar un trabajo, seleccione Trabajo no enviado.

3. Si más bien decide crear una definición de trabajo, complete las cuatro secciones siguientes delasistente de primera ejecución: Tiempo de ejecución de un trabajo, Entorno, Parámetros y Variablesde entorno; a continuación, seleccione Siguiente. Si no va a crear una definición de trabajo, seleccioneSiguiente y pase a Paso 2: Configurar el entorno informático y la cola de trabajos (p. 12).

Para especificar el tiempo de ejecución de un trabajo

1. Si va a crear una nueva definición de trabajo, especifique su nombre en Nombre de la definición detrabajo.

2. (Opcional) En Rol de trabajo, especifique un rol de IAM que le otorgue al trabajo permisos para usarlas API de AWS. Esta característica utiliza roles de IAM de Amazon ECS para otorgarle funcionalidadal trabajo. Para obtener más información sobre esta características e incluso, sobre requisitos deconfiguración, consulte IAM Roles for Tasks en la Amazon Elastic Container Service Developer Guide.

Note

Aquí solo se muestran roles con relación de confianza de Rol de tarea de Amazon ElasticContainer Service. Para obtener más información sobre cómo crear un rol de IAM paratrabajos de AWS Batch, consulte Creación de un rol de IAM y una política para sus tareas enla Amazon Elastic Container Service Developer Guide.

3. En Imagen de contenedor, seleccione la imagen de Docker que quiera utilizar para el trabajo. Lasimágenes del registro de Docker Hub están disponibles de forma predeterminada. También es posible

10

Page 16: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioPaso 1: Definir un trabajo

especificar otros repositorios con repository-url/image:tag. Se permiten hasta 255 letras(mayúsculas y minúsculas), números, guiones, caracteres de subrayado, comas, puntos, barrasdiagonales y signos numéricos. Este parámetro se mapea a Image en la sección Crear un contenedorde la Docker Remote API y al parámetro IMAGE de docker run.

Note

La arquitectura de la imagen de Docker debe coincidir con la arquitectura del procesadorde los recursos informáticos en las que estén programadas. Por ejemplo, las imágenes deDocker basadas en ARM solo se pueden ejecutar en recursos informáticos basados en ARM.

• Las imágenes de los repositorios de Amazon ECR utilizan la convenciónde nomenclatura registry/repository:tag. Por ejemplo,aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app:latest

• Las imágenes de los repositorios oficiales de Docker Hub utilizan un solo nombre (por ejemplo,ubuntu o mongo).

• Las imágenes de otros repositorios de Docker Hub se cualifican con un nombre de organización(por ejemplo, amazon/amazon-ecs-agent).

• Las imágenes de otros repositorios online se cualifican más con un nombre de dominio (porejemplo, quay.io/assemblyline/ubuntu).

Para especificar recursos para su entorno

1. En Comando, especifique los comandos que desea transmitir al contenedor. Este parámetro se mapeaa Cmd en la sección Crear un contenedor de la Docker Remote API y al parámetro COMMAND de dockerrun. Para obtener más información sobre el parámetro CMD de Docker, visite https://docs.docker.com/engine/reference/builder/#cmd.

Note

También puede usar valores predeterminados de sustitución de parámetros y marcadores deposición en el comando. Para obtener más información, consulte Parámetros (p. 43).

2. En CPU virtuales, especifique la cantidad de CPU virtuales que quiera reservar para el contenedor.Este parámetro se mapea a CpuShares en la sección Crear un contenedor de la Docker Remote APIy a la opción --cpu-shares de docker run. Cada vCPU es equivalente a 1 024 cuotas de CPU.

3. En Memoria, especifique límite máximo (en MiB) de memoria que quiera presentarle al contenedor deltrabajo. Si su contenedor intenta superar la memoria especificada aquí, se cancela el contenedor. Esteparámetro se mapea a Memory en la sección Crear un contenedor de la Docker Remote API y a laopción --memory de docker run.

4. En Intentos de trabajo, especifique la cantidad máxima de intentos de trabajo (en caso de que falle).Para obtener más información, consulte Reintentos automáticos de trabajo (p. 20).

Parámetros

También puede especificar valores predeterminados de sustitución de parámetros y marcadores deposición en el comando. Para obtener más información, consulte Parámetros (p. 43).

1. En Clave, especifique la clave del parámetro.2. En Valor, especifique el valor del parámetro.

Para especificar variables de entorno

Es posible especificar variables de entorno para transmitir al contenedor de trabajo. Esto es opcional. Esteparámetro se mapea a Env en la sección Crear un contenedor de la Docker Remote API y a la opción --env de docker run.

11

Page 17: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioPaso 2: Configurar el entorno

informático y la cola de trabajos

Important

No es recomendable que utilice variables del entorno en texto sin formato para informaciónconfidencial, como los datos de las credenciales.

1. En Clave, especifique la clave de la variable del entorno.2. En Valor, especifique el valor de la variable del entorno.

Paso 2: Configurar el entorno informático y la colade trabajos

Un entorno informático es una forma de hacer referencia a los recursos informáticos (instancias deAmazon EC2): la configuración y las limitaciones que instruyen a AWS Batch acerca de cómo debenconfigurarse las instancias, y cómo lanzarlas automáticamente. Es posible enviar los trabajos a una cola detrabajo que los almacena hasta que el programador de AWS Batch los ejecuta en un recurso informáticodentro del entorno informático.

Note

Actualmente, solo se puede crear un entorno informático gestionado con el asistente de la primeraejecución. Para crear un entorno de informática no gestionado, consulte Cómo crear un entornoinformático (p. 71).

Para configurar el tipo de entorno informático

1. En Nombre de entorno informático, especifique un nombre único para el entorno informático.2. En Rol de servicio, elija entre crear un rol nuevo o utilizar uno existente que le permita al servicio

de AWS Batch realizar llamadas a las API de AWS necesarias en su nombre. Para obtener másinformación, consulte Rol de servicio de IAM en AWS Batch (p. 93). Si decide crear un rol nuevo,se creará el rol requerido AWSBatchServiceRole.

3. En EC2 instance role (Rol de instancia de EC2), elija entre crear un rol nuevo o utilizar uno existenteque le permita a las instancias de contenedor de Amazon ECS creadas para su entorno informáticorealizar llamadas a las API de AWS necesarias en su nombre. Para obtener más información, consulteRol de instancia de Amazon ECS (p. 95). Si decide crear un rol nuevo, se creará el rol requeridoecsInstanceRole.

Para configurar las instancias

1. En Modelo de aprovisionamiento, seleccione Bajo demanda para lanzar instancias bajo demanda deAmazon EC2, o Spot para utilizar las instancias de spot de Amazon EC2.

2. Si decide utilizar las instancias de spot de Amazon EC2:

a. En Precio de puja máximo, seleccione el porcentaje máximo del precio de spot de ese tipo deinstancia al compararlo con su precio bajo demanda antes de que las instancias se lancen. Porejemplo, si el porcentaje de puja es 20%, el precio de spot de esa instancia de EC2 deberá serinferior al 20% del precio bajo demanda que tenga en ese momento. Siempre se paga el preciomás bajo (de mercado) y nunca más que lo marcado por el porcentaje máximo.

b. En Rol de la flota de spot, elija entre crear un nuevo rol de IAM para la flota de spot de AmazonEC2 o utilizar uno existente para aplicarlo al entorno informático de spot. Si decide crear un rolnuevo, se creará el rol requerido aws-ec2-spot-fleet-role. Para obtener más información,consulte Rol de flota de spot de Amazon EC2 (p. 95).

3. En Tipos de instancias permitidos, seleccione los tipos de instancia de Amazon EC2 que quieralanzar. Se pueden especificar familias de instancias para lanzar cualquier tipo de instancia en

12

Page 18: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioPaso 2: Configurar el entorno

informático y la cola de trabajos

esas familias (por ejemplo, c5, c5n o p3), o se pueden especificar tamaños dentro de una familia(como c5.8xlarge). Tenga en cuenta que los tipos de instancias metal no están en las familias deinstancias (por ejemplo, c5 no incluye c5.metal). También se puede seleccionar optimal paraelegir al momento tipos de instancias (de las familias de instancias C, M y R) que se correspondan conla demanda de las colas de trabajos.

Note

Cuando se crea un entorno informático, los tipos de instancias que se seleccionen para dichoentorno informático deben compartir la misma arquitectura. Por ejemplo, no se puede mezclarinstancias x86 y ARM en el mismo entorno informático.

4. En Mínimo de CPU virtuales, seleccione la cantidad mínima de vCPUs de EC2 que debe mantener elentorno informático, independientemente de la demanda de las colas de trabajos.

5. En CPU virtuales deseadas, seleccione la cantidad de CPU virtuales de EC2 que debe lanzar elentorno informático. A medida que la demanda de las colas de trabajo aumenta, AWS Batch puedeincrementar la cantidad de CPU virtuales en su entorno informático y añadir instancias EC2, hasta lacantidad máxima de CPU virtuales admitidas; a medida que la demanda disminuya, AWS Batch puedereducir la cantidad de CPU virtuales en su entorno informático y eliminar instancias hasta reducir dichacantidad al mínimo.

6. En Máximo de CPU virtuales, seleccione la cantidad máxima de vCPUs de EC2 admitida por elentorno informático, independientemente de la demanda de las colas de trabajo.

Para configurar su red

Los recursos de informática se lanzan en la VPC y en las subredes que especifique aquí. Esto permitecontrolar el aislamiento de red de los recursos informáticos de AWS Batch.

Important

necesitan acceso para comunicarse con el punto de enlace de servicio de Amazon ECS. Estopuede hacerse mediante un punto de enlace de la VPC de tipo interfaz o mediante que tienendirecciones IP públicas.Para obtener más información sobre los puntos de enlace de la VPC de tipo interfaz, consulte .Si no ha configurado un punto de enlace de la VPC de tipo interfaz y sus no tienen direccionesIP públicas, deberán utilizar la conversión de direcciones de red (NAT) para proporcionar esteacceso. Para obtener más información, consulte Gateways de NAT en la Guía del usuario deAmazon VPC. Para obtener más información, consulte Tutorial: Creación de una VPC consubredes públicas y privadas para sus (p. 111).

1. En ID de VPC, seleccione la VPC en la que se lanzarán las instancias.2. En Subredes, elija las subredes en las que la VPC seleccionada deberá alojar las instancias. De forma

predeterminada, se escogen todas las subredes dentro de la VPC seleccionada.3. En Grupos de seguridad, seleccione un su grupo de seguridad para asociarlo a las instancias. De

forma predeterminada, se escoge el grupo de seguridad predeterminado para la VPC.

Para etiquetar las instancias

Si lo desea, puede aplicar etiquetas de pares clave-valor a las instancias que se lanzan en el entornoinformático. Por ejemplo, puede especificar "Name": "AWS Batch Instance - C4OnDemand"como una etiqueta, de modo que cada instancia de su entorno informático tenga ese nombre (es útil parareconocer las instancias de AWS Batch en la consola de Amazon EC2). De forma predeterminada, elnombre del entorno informático se utiliza para etiquetar las instancias.

1. En Clave, especifique la clave de la etiqueta.2. En Valor, especifique el valor de la etiqueta.

13

Page 19: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioPaso 2: Configurar el entorno

informático y la cola de trabajos

Para configurar la cola de trabajos

Es posible enviar los trabajos a una cola de trabajo que los almacena hasta que el programador de AWSBatch los ejecuta en un recurso informático dentro del entorno informático.

• En Nombre de la cola de trabajo, elija un nombre exclusivo para su cola de trabajo.

Para revisar y crear

En la sección Connected compute environments for this job queue (Entornos informáticos conectados paraesta cola de trabajo) se puede ver si el nuevo entorno informático se asocia a la nueva cola de trabajo ysu pedido. Después, podrá asociar otros entornos informáticos a la cola de trabajos. El programador detrabajos utiliza el orden del entorno informático para determinar qué entorno informático debería ejecutarun trabajo determinado. Los entornos informáticos deben estar en estado VALID antes de asociarlos a unacola de trabajos. Puede asociar hasta tres entornos informáticos con una cola de trabajos.

• Revise las configuraciones del entorno informático y de la cola de trabajo y seleccione Crear paracrear el entorno informático.

14

Page 20: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioEnviar un trabajo

TrabajosLos trabajos son la unidad de trabajo que AWS Batch ejecuta. Los trabajos se pueden ejecutar comoaplicaciones en contenedores que se ejecutan en instancias de contenedor Amazon ECS, dentro de unclúster de ECS.

Los trabajos en contenedores pueden hacer referencia a una imagen, comando o parámetros decontenedor. Para obtener más información, consulte Parámetros de definición de trabajos (p. 42).

Puede enviar una gran cantidad de trabajos sencillos e independientes.

Temas• Enviar un trabajo (p. 15)• Estados de trabajo (p. 17)• Variables de entorno de los trabajos de AWS Batch (p. 19)• Reintentos automáticos de trabajo (p. 20)• Dependencias de trabajos (p. 20)• Tiempos de espera de trabajo (p. 21)• Trabajos de matrices (p. 21)• Trabajos paralelos de varios nodos (p. 29)• Trabajos de GPU (p. 32)

Enviar un trabajoUna vez que haya registrado una definición de tareas, puede enviarla como un trabajo a un cola detrabajos de AWS Batch. Muchos de los parámetros que se especifican en la definición de trabajo puedenignorarse en tiempo de ejecución.

Para enviar un trabajo

1. Abra la consola de AWS Batch en https://console.aws.amazon.com/batch/.2. En la barra de navegación, seleccione la región que desea utilizar.3. En el panel de navegación, seleccione Trabajos, Enviar el trabajo.4. En Nombre de trabajo, elija un nombre único para su trabajo.5. En Definición de trabajo, seleccione una definición de trabajo creada anteriormente para el trabajo.

Para obtener más información, consulte Cómo crear una definición de trabajo (p. 34).6. En Cola de trabajo, seleccione una cola de trabajos creada con anterioridad. Para obtener más

información, consulte Cómo crear de una cola de trabajos (p. 55).7. En Tipo de trabajo, elija Único para un único trabajo o Matriz para enviar un trabajo de matriz. Para

obtener más información, consulte Trabajos de matrices (p. 21). Esta opción no está disponiblepara trabajos paralelos de varios nodos.

8. (Solo trabajos de matrices) En Tamaño de matriz, especifique un tamaño de matriz comprendido entre2 y 10 000.

15

Page 21: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioEnviar un trabajo

9. (Opcional) Declare las dependencias de trabajo. Un trabajo puede tener hasta 20 dependencias. Paraobtener más información, consulte Dependencias de trabajos (p. 20).

a. En El trabajo depende de, escriba los ID de trabajo de todos los trabajos que deben finalizar antesde que comience este trabajo.

b. (Solo para trabajos de matrices) En Dependencias de trabajos N a N, especifique los ID de trabajode los trabajos de matrices en los que cada índice de trabajo secundario de este trabajo deberíadepender del correspondiente índice de trabajo secundario de la dependencia. Por ejemplo,JobB:1 depende de JobA:1, y así sucesivamente.

c. (Solo para trabajos de matrices) Seleccione Ejecutar secundarios secuencialmente para crearuna dependencia SEQUENTIAL para el trabajo de matriz actual. Esto garantiza que cada índicede trabajo secundario espera a que termine el elemento de su mismo nivel anterior. Por ejemplo,JobA:1 depende de JobA:0, y así sucesivamente.

10. En Intentos de trabajo, especifique la cantidad máxima de intentos de trabajo (en caso de que falle).Para obtener más información, consulte Reintentos automáticos de trabajo (p. 20).

11. (Opcional) En Execution timeout (Tiempo de espera de ejecución), especifique el número máximo desegundos que desea permitir que el trabajo intente ejecutarse. Si un intento supera la duración deltiempo de espera, se detiene y el estado cambia a FAILED. Para obtener más información, consulteTiempos de espera de trabajo (p. 21).

12. (Opcional) En la sección Parameters (Parámetros), es posible especificar valores predeterminadosde sustitución de parámetros y marcadores de posición para utilizarlos en el comando que ejecuta elcontenedor del trabajo al iniciarse. Para obtener más información, consulte Parámetros (p. 43).

a. Elija Add parameter (Añadir parámetro).b. En Clave, especifique la clave del parámetro.c. En Valor, especifique el valor del parámetro.

13. En CPU virtuales, especifique la cantidad de CPU virtuales que quiera reservar para el contenedor.Este parámetro se mapea a CpuShares en la sección Crear un contenedor de la Docker Remote APIy a la opción --cpu-shares de docker run. Cada vCPU es equivalente a 1 024 cuotas de CPU. Debeespecificar al menos una vCPU.

14. En Memoria, especifique límite máximo (en MiB) de memoria que quiera presentarle al contenedor deltrabajo. Si su contenedor intenta superar la memoria especificada aquí, se cancela el contenedor. Esteparámetro se mapea a Memory en la sección Crear un contenedor de la Docker Remote API y a laopción --memory de docker run. Debe especificar al menos 4 MiB de memoria para un trabajo.

15. (Opcional) En Número de GPU, especifique el número de GPU que utilizará su trabajo.

El trabajo se ejecutará en un contenedor con el número especificado de GPU anclado a dichocontenedor.

16. En Comando, especifique los comandos que desea transmitir al contenedor. Los comandos sencillospueden escribirse en la pestaña Delimitado por espacios tal como lo haría en un símbolo delsistema. Verifique que el resultado JSON que se transfiere al demonio de Docker sea correcto. Si loscomandos son más complejos (con caracteres especiales, por ejemplo), acceda a la pestaña JSON eintroduzca allí el equivalente a la matriz de cadenas.

Este parámetro se mapea a Cmd en la sección Crear un contenedor de la Docker Remote API y alparámetro COMMAND de docker run. Para obtener más información sobre el parámetro CMD de Docker,visite https://docs.docker.com/engine/reference/builder/#cmd.

Note

También puede usar valores predeterminados de sustitución de parámetros y marcadores deposición en el comando. Para obtener más información, consulte Parámetros (p. 43).

17. Es posible especificar variables de entorno para transmitir al contenedor de trabajo. Esto es opcional.Este parámetro se mapea a Env en la sección Crear un contenedor de la Docker Remote API y a laopción --env de docker run.

16

Page 22: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioEstados de trabajo

Important

No es recomendable que utilice variables del entorno en texto sin formato para informaciónconfidencial, como los datos de las credenciales.

a. Elija Add environment variable (Añadir variable de entorno).b. En Clave, especifique la clave de la variable del entorno.

Note

Las variables del entorno no deben comenzar con AWS_BATCH; esta convención denomenclatura está reservada para las variables establecidas por el servicio AWS Batch.

c. En Valor, especifique el valor de la variable del entorno.18. Seleccione Enviar el trabajo.

Note

Los registros de los trabajos RUNNING, SUCCEEDED y FAILED están disponibles enCloudWatch Logs; el grupo de registros es /aws/batch/job y el nombre de secuencia esjobDefinitionName/default/ecs_task_id (este formato puede cambiar en el futuro).Después de que un trabajo alcanza el estado RUNNING, puede recuperar su nombre delflujo de registros mediante programación con la operación API DescribeJobs. Para obtenermás información, consulte Ver datos de registro enviados a CloudWatch Logs en la AmazonCloudWatch Logs User Guide. De forma predeterminada, estos registros están configuradospara no caducar, pero se puede modificar el periodo de retención. Para obtener másinformación, consulte la sección sobre cómo cambiar la retención de datos del registro enCloudWatch Logs en la Amazon CloudWatch Logs User Guide.

Estados de trabajoAl enviar un trabajo a una cola de trabajos de AWS Batch, el trabajo pasa al estado SUBMITTED. Acontinuación, pasa por los estados siguientes hasta que termina de ejecutarse correctamente (finaliza conel código 0) o no (finaliza con un código distinto de cero). Los trabajos de AWS Batch pueden tener lossiguientes estados:

SUBMITTED

Un trabajo que se ha enviado a la cola, y que aún no ha sido evaluado por el programador. Elprogramador evalúa el trabajo para determinar si tiene alguna dependencia pendiente de la correctafinalización de cualquier otro trabajo. Si hay dependencias, el trabajo pasa a PENDING. Si no haydependencias, el trabajo pasa a RUNNABLE.

PENDING

Un trabajo que está en la cola y que aún no se ha podido ejecutar debido a una dependencia de otrotrabajo o recurso. Una vez se cumplan las dependencias, el trabajo pasa a RUNNABLE.

RUNNABLE

Un trabajo que está en la cola, que no tiene dependencias pendientes y, por tanto, que está listo paraser programado para un host. Los trabajos en este estado se inician tan pronto como haya recursossuficientes disponibles en alguno de los entornos informáticos que se asignan a la cola del trabajo. Sinembargo, un trabajo puede permanecer en este estado de forma indefinida si los recursos suficientesno están disponibles.

Note

Si los trabajos no progresan a STARTING, consulte Trabajos bloqueados en estadoRUNNABLE (p. 129) en la sección de resolución de problemas.

17

Page 23: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioEstados de trabajo

STARTING

Estos trabajos se han programado para un host y las operaciones de inicio de contenedor pertinentesestán en curso. Después de que la imagen de contenedor se extraiga y el contenedor esté en marcha,el trabajo pasa a RUNNING.

RUNNING

El trabajo se ejecuta como un trabajo de contenedor en una instancia de contenedor Amazon ECSdentro de un entorno informático. Cuando el contenedor del trabajo se cierra, el código del proceso desalida determina si el trabajo ha finalizado correctamente o si ha fallado. Un código de salida 0 indicauna correcta ejecución y cualquier código de salida distinto de cero indica error. Si al trabajo asociadoa un intento fallido le quedan intentos en su configuración de estrategia de reintento opcional, eltrabajo vuelve a pasar al estado RUNNABLE. Para obtener más información, consulte Reintentosautomáticos de trabajo (p. 20).

Note

Los registros de los trabajos RUNNING están disponibles en CloudWatch Logs; el grupode registros es /aws/batch/job y el nombre de secuencia es jobDefinitionName/default/ecs_task_id (este formato puede cambiar en el futuro).Después de que un trabajo alcanza el estado RUNNING, puede recuperar su nombre delflujo de registros mediante programación con la operación API DescribeJobs. Para obtenermás información, consulte Ver datos de registro enviados a CloudWatch Logs en la AmazonCloudWatch Logs User Guide. De forma predeterminada, estos registros están configuradospara no caducar, pero se puede modificar el periodo de retención. Para obtener másinformación, consulte la sección sobre cómo cambiar la retención de datos del registro enCloudWatch Logs en la Amazon CloudWatch Logs User Guide.

SUCCEEDED

El trabajo se ha completado correctamente con un código de salida 0. El estado de trabajosSUCCEEDED persiste en AWS Batch durante 24 horas.

Note

Los registros de los trabajos SUCCEEDED están disponibles en CloudWatch Logs; el grupode registros es /aws/batch/job y el nombre de secuencia es jobDefinitionName/default/ecs_task_id (este formato puede cambiar en el futuro).Después de que un trabajo alcanza el estado RUNNING, puede recuperar su nombre delflujo de registros mediante programación con la operación API DescribeJobs. Para obtenermás información, consulte Ver datos de registro enviados a CloudWatch Logs en la AmazonCloudWatch Logs User Guide. De forma predeterminada, estos registros están configuradospara no caducar, pero se puede modificar el periodo de retención. Para obtener másinformación, consulte la sección sobre cómo cambiar la retención de datos del registro enCloudWatch Logs en la Amazon CloudWatch Logs User Guide.

FAILED

El trabajo ha fallado en todos los intentos disponibles. El estado de trabajos FAILED persiste en AWSBatch durante 24 horas.

Note

Los registros de los trabajos FAILED están disponibles en CloudWatch Logs; el grupode registros es /aws/batch/job y el nombre de secuencia es jobDefinitionName/default/ecs_task_id (este formato puede cambiar en el futuro).Después de que un trabajo alcanza el estado RUNNING, puede recuperar su flujo de registrosmediante programación con la operación API DescribeJobs. Para obtener más información,consulte Ver datos de registro enviados a CloudWatch Logs en la Amazon CloudWatch LogsUser Guide. De forma predeterminada, estos registros están configurados para no caducar,

18

Page 24: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioVariables de entorno de los trabajos

pero se puede modificar el periodo de retención. Para obtener más información, consulte lasección sobre cómo cambiar la retención de datos del registro en CloudWatch Logs en laAmazon CloudWatch Logs User Guide.

Variables de entorno de los trabajos de AWS BatchAWS Batch establece automáticamente variables de entorno específicas en los trabajos de contenedor.Estas variables de entorno proporcionan introspección para los contenedores dentro de los trabajos;además, puede utilizar los valores de estas variables en la lógica de sus aplicaciones. Todas las variablesque establece AWS Batch comienzan por el prefijo AWS_BATCH_. Este es un prefijo de variable de entornoprotegido, por lo que no podrá utilizarlo en sus propias variables en las definiciones o anulaciones detrabajos.

Las variables de entorno siguientes están disponibles en los contenedores de trabajos:

AWS_BATCH_CE_NAME

Esta variable se establece en el nombre del entorno informático en el que está situado el trabajo.AWS_BATCH_JOB_ARRAY_INDEX

Esta variable solo se establece en los trabajos de matrices secundarios. El índice de trabajo de matrizempieza en 0, y cada trabajo secundario recibe un número de índice único. Por ejemplo, un trabajo dematriz con 10 elementos secundarios tiene valores de índice comprendidos entre 0 y 9. Puede utilizareste valor de índice para controlar la forma en la que se diferencian los elementos secundarios deltrabajo de matriz. Para obtener más información, consulte Tutorial: Uso del índice de trabajo de matrizpara controlar la diferenciación de trabajos (p. 25).

AWS_BATCH_JOB_ATTEMPT

Esta variable se establece en el número de reintentos de trabajo. Al primer intento se le asigna el valor1. Para obtener más información, consulte Reintentos automáticos de trabajo (p. 20).

AWS_BATCH_JOB_ID

Esta variable se establece en el ID de trabajo de AWS Batch.AWS_BATCH_JOB_MAIN_NODE_INDEX

Esta variable solo se establece en los trabajos paralelos de varios nodos. Esta variable se estableceen el número de índice del nodo principal del trabajo. El código de la aplicación puede compararAWS_BATCH_JOB_MAIN_NODE_INDEX con AWS_BATCH_JOB_NODE_INDEX en un nodo individualpara determinar si es el nodo principal.

AWS_BATCH_JOB_MAIN_NODE_PRIVATE_IPV4_ADDRESS

Esta variable solo se establece en los nodos secundarios de trabajos paralelos de varios nodos (noestá presente en el nodo principal). Esta variable se establece en la dirección IPv4 privada del nodoprincipal del trabajo. El código de la aplicación del nodo secundario puede utilizar esta dirección paracomunicarse con el nodo principal.

AWS_BATCH_JOB_NODE_INDEX

Esta variable solo se establece en los trabajos paralelos de varios nodos. Esta variable se estableceen el número de índice del nodo. El índice del nodo comienza a partir de 0 y cada nodo recibeun número de índice único. Por ejemplo, un trabajo paralelo de varios nodos con 10 elementossecundarios tiene valores de índice comprendidos entre 0 y 9.

AWS_BATCH_JOB_NUM_NODES

Esta variable solo se establece en los trabajos paralelos de varios nodos. Esta variable se estableceen el número de nodos solicitados para el trabajo en paralelo de varios nodos.

19

Page 25: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioReintentos automáticos de trabajo

AWS_BATCH_JQ_NAME

Esta variable se establece en el nombre de la cola de trabajos a la que se ha enviado el trabajo.

Reintentos automáticos de trabajoPuede aplicar una estrategia de reintento a los trabajos y las definiciones de trabajo que permita reintentarautomáticamente la ejecución de los trabajos con errores. Entre las posibles situaciones de error seincluyen:

• Cualquier código de salida distinto de cero a partir de un trabajo de contenedor• Una finalización o error de la instancia de Amazon EC2• Un error o caída del servicio interno de AWS

El acto de enviar un trabajo a una cola de trabajos y que pase al estado RUNNING se considera un intento.De forma predeterminada, a cada trabajo se le concede un intento para pasar al estado SUCCEEDEDo FAILED. Sin embargo, la definición de trabajo y los flujos de envíos de trabajo permiten especificaruna estrategia de entre 1 y 10 reintentos. Para obtener más información, consulte Estrategia dereintento (p. 51).

En la ejecución, la variable de entorno AWS_BATCH_JOB_ATTEMPT se ajusta a la cantidad de reintentosde trabajo de contenedor correspondiente. Al primer intento se le asigna el 1, y los intentos posteriores seenumeran en orden ascendente (2, 3, 4, etc.).

Si un intento de trabajo falla por cualquier motivo y la cantidad de intentos especificada en la configuraciónde reintento es mayor que el número de AWS_BATCH_JOB_ATTEMPT, el trabajo se vuelve a colocar en elestado RUNNABLE. Para obtener más información, consulte Estados de trabajo (p. 17).

Note

Los trabajos que se cancelan o se terminan no se reintentan. De la misma manera, los trabajosque fallan debido a una definición de trabajo no válida tampoco se reintentan.

Para obtener más información, consulte Cómo crear una definición de trabajo (p. 34) y Enviar untrabajo (p. 15).

Dependencias de trabajosAl enviar un trabajo de AWS Batch, puede especificar los ID de trabajo de los que depende el trabajo.Al hacerlo, el programador de AWS Batch garantiza que el trabajo solo se ejecuta después de que lasdependencias especificadas hayan finalizado correctamente. Una vez que estas terminen correctamente,el trabajo dependiente pasa del estado PENDING al estado RUNNABLE y, a continuación, a STARTINGy a RUNNING. Si alguna de las dependencias del trabajo produce un error, el trabajo dependiente pasaautomáticamente de PENDING a FAILED.

Por ejemplo, Job A puede expresar una dependencia de hasta 20 trabajos distintos que debencompletarse correctamente para que pueda ejecutarse. A continuación, puede enviar trabajos adicionalesque dependan de Job A y de hasta otros 19 trabajos.

En los trabajos de matrices, puede especificar una dependencia de tipo SEQUENTIAL sin especificar un IDde trabajo para que cada trabajo de matriz secundario se complete de forma secuencial, comenzando apartir del índice 0. También puede especificar una dependencia de tipo N_TO_N con un ID de trabajo. Deesta forma, cada índice secundario de este trabajo debe esperar a que se complete el índice secundariocorrespondiente de cada dependencia antes de comenzar. Para obtener más información, consulteTrabajos de matrices (p. 21).

20

Page 26: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioTiempos de espera de trabajo

Para enviar un trabajo de AWS Batch con dependencias, consulte Enviar un trabajo (p. 15).

Tiempos de espera de trabajoPuede configurar una duración de tiempo de espera para sus trabajos de modo que si un trabajo seejecuta durante más tiempo, AWS Batch lo finaliza. Por ejemplo, es posible que tenga un trabajo que sabeque solo debería tardar 15 minutos en completarse. A veces la aplicación se bloquea en un bucle y seejecuta para siempre, por lo que puede establecer un tiempo de espera de 30 minutos para terminar eltrabajo bloqueado.

Especifique un parámetro attemptDurationSeconds, que debe tener al menos de 60 segundos, en ladefinición del trabajo o al enviarlo. Cuando ha transcurrido este número de segundos después de la marcade tiempo startedAt del intento de trabajo, AWS Batch termina el trabajo. En el recurso informático,el contenedor del trabajo recibe una señal SIGTERM para dar a la aplicación la posibilidad de que seapague correctamente. Si el contenedor se sigue ejecutando al cabo de 30 segundos, se envía una señalSIGKILL para forzar su cierre.

Las finalizaciones por haberse agotado el tiempo de espera se realizan en la medida que es posible. Noespere que se produzcan exactamente en el momento en que se agota el tiempo de espera del intentode trabajo (pueden tardar algunos segundos más). Si su aplicación necesita una ejecución de tiempo deespera precisa, debe implementar esa lógica en la aplicación. Si tiene una gran cantidad de trabajos cuyotiempo de espera se agota simultáneamente, las terminaciones por tiempo de espera se deben comportarcomo una cola del tipo "primero en entrar, primero en salir", donde los trabajos se terminen por lotes.

Si un trabajo se termina por superar la duración del tiempo de espera, no se vuelve a intentar. Si seproduce un error en un intento de trabajo, se puede reintentar si se han habilitado los reintentos y la cuentaatrás del tiempo de espera comienza para el nuevo intento.

En el caso de los trabajos de matriz, los trabajos secundarios tienen la misma configuración de tiempo deespera que el trabajo principal.

Para obtener información sobre el envío de un trabajo de AWS Batch con una configuración de tiempo deespera, consulte Enviar un trabajo (p. 15).

Trabajos de matricesUn trabajo de matriz es un trabajo que comparte parámetros comunes, como la definición de trabajo, lasvCPU y la memoria. Se ejecuta como un conjunto de trabajos básicos relacionados, pero independientes,que se pueden distribuir en varios hosts y pueden ejecutarse de forma simultánea. Los trabajos dematrices son la manera más eficiente de ejecutar trabajos farragosos en paralelo, como simulacionesMonte Carlo, barridos paramétricos o grandes trabajos de representación.

Los trabajos de matrices de AWS Batch se envían de la misma forma que los trabajos normales. Sinembargo, es necesario especificar un tamaño de matriz (entre 2 y 10 000) para definir la cantidad detrabajos secundarios que deberían ejecutarse en la matriz. Si envía un trabajo con un tamaño de matrizde 1 000, se ejecuta un solo trabajo que genera 1 000 trabajos secundarios. El trabajo de matriz es unareferencia o un puntero para administrar todos los trabajos secundarios. Esto permite enviar grandescargas de trabajo con una sola consulta.

Al enviar un trabajo de matriz, el trabajo de matriz principal obtiene un ID de trabajo normal de AWS Batch.Cada trabajo secundario tiene el mismo ID de base, pero su índice de matriz se añade al final del IDprincipal, por ejemplo, example_job_ID:0 para el primer trabajo secundario de la matriz.

Durante el tiempo de ejecución, la variable de entorno AWS_BATCH_JOB_ARRAY_INDEX se establece enel número de índice del trabajo de matriz correspondiente del contenedor. Al primer índice de trabajo dematriz se le asigna el número 0, y los trabajos secundarios posteriores se numeran en orden ascendente

21

Page 27: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioTrabajos de matrices

(1, 2, 3, etc.). Puede utilizar este valor de índice para controlar la forma en la que se diferencian loselementos secundarios del trabajo de matriz. Para obtener más información, consulte Tutorial: Uso delíndice de trabajo de matriz para controlar la diferenciación de trabajos (p. 25).

En las dependencias de trabajo de matriz, puede especificar un tipo para la dependencia, como,por ejemplo, SEQUENTIAL o N_TO_N. Puede especificar una dependencia de tipo SEQUENTIAL (sinespecificar un ID de trabajo) para que cada trabajo de matriz secundario se complete de forma secuencial,comenzando a partir del índice 0. Por ejemplo, si envía un trabajo de matriz con un tamaño de matriz de100, y especifica una dependencia de tipo SEQUENTIAL, se generan 100 trabajos secundarios de formasecuencial, cada uno de los cuales debe completarse correctamente para que comience el siguiente. En lailustración siguiente se muestra Job A, un trabajo de matriz con un tamaño de matriz de 10. Cada trabajodel índice secundario de Job A depende del trabajo secundario anterior. Job A:1 no puede comenzar hastaque termine Job A:0.

También puede especificar una dependencia de tipo N_TO_N con un ID de trabajo para los trabajos dematrices, de modo que cada índice secundario de este trabajo tenga que esperar a que se complete el

22

Page 28: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioEjemplo de flujo de trabajo de un trabajo de matriz

índice secundario correspondiente de cada dependencia antes de comenzar. En la ilustración siguientese muestran Job A y Job B, dos trabajos de matrices con un tamaño de matriz de 10 000. Cada trabajodel índice secundario de Job B depende del índice correspondiente de Job A. Job B:1 no puede comenzarhasta que termine Job A:1.

Si cancela o termina un trabajo de matriz principal, todos los trabajos secundarios se cancelan o terminancon él. Puede cancelar o terminar trabajos secundarios por separado (con lo que adoptarán el estadoFAILED) sin afectar al resto de trabajos secundarios. Sin embargo, si un trabajo de matriz secundarioproduce un error (durante su ejecución o por una cancelación/terminación manual), el trabajo principaltambién producirá un error.

Ejemplo de flujo de trabajo de un trabajo de matrizUn flujo de trabajo habitual para los clientes de AWS Batch consiste en ejecutar un trabajo deconfiguración de requisitos previos, ejecutar una serie de comandos en un gran número de tareas de

23

Page 29: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioEjemplo de flujo de trabajo de un trabajo de matriz

entrada y, a continuación, finalizar con un trabajo que agrega los resultados y escribe datos de resumen enAmazon S3, DynamoDB, Amazon Redshift o Aurora.

Por ejemplo:

• JobA: un trabajo estándar que no es de matriz, que realiza un listado rápido y una validación demetadatos de los objetos de un bucket de Amazon S3, BucketA. La sintaxis JSON de SubmitJob semuestra a continuación.

{ "jobName": "JobA", "jobQueue": "ProdQueue", "jobDefinition": "JobA-list-and-validate:1"}

• JobB: un trabajo de matriz con 10 000 copias que depende de JobA, que ejecuta comandos con un usointensivo de la CPU en cada objeto de BucketA y que carga los resultados en BucketB. La sintaxisJSON de SubmitJob se muestra a continuación.

{ "jobName": "JobB", "jobQueue": "ProdQueue", "jobDefinition": "JobB-CPU-Intensive-Processing:1", "containerOverrides": { "vcpus": 32, "memory": 4096 } "arrayProperties": { "size": 10000 }, "dependsOn": [ { "jobId": "JobA_job_ID" } ]}

• JobC: otro trabajo de matriz de 10 000 copias que depende de JobB con un modelo de dependenciaN_TO_N, que ejecuta comandos con un uso intensivo de la memoria en cada elemento de BucketB,escribe los metadatos en DynamoDB y carga la salida obtenida en BucketC. La sintaxis JSON deSubmitJob se muestra a continuación.

{ "jobName": "JobC", "jobQueue": "ProdQueue", "jobDefinition": "JobC-Memory-Intensive-Processing:1", "containerOverrides": { "vcpus": 1, "memory": 32768 } "arrayProperties": { "size": 10000 }, "dependsOn": [ { "jobId": "JobB_job_ID", "type": "N_TO_N" } ]}

24

Page 30: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioTutorial: Uso del índice de trabajo de matriz

• JobD: un trabajo de matriz que realiza 10 pasos de validación que requieren consultar DynamoDB y quepueden interactuar con cualquiera de los buckets de Amazon S3 anteriores. Cada uno de los pasos deJobD ejecuta el mismo comando, pero el comportamiento es diferente en función del valor de la variablede entorno AWS_BATCH_JOB_ARRAY_INDEX del contenedor del trabajo. Estos pasos de validación seejecutan de forma secuencial (por ejemplo, JobD:0, a continuación JobD:1, y así sucesivamente). Lasintaxis JSON de SubmitJob se muestra a continuación.

{ "jobName": "JobD", "jobQueue": "ProdQueue", "jobDefinition": "JobD-Sequential-Validation:1", "containerOverrides": { "vcpus": 1, "memory": 32768 } "arrayProperties": { "size": 10 }, "dependsOn": [ { "jobId": "JobC_job_ID" }, { "type": "SEQUENTIAL" }, ]}

• JobE: un trabajo final que no es de matriz, que realiza varias operaciones de limpieza sencillas, yque envía una notificación de Amazon SNS con un mensaje que indica que la canalización se hacompletado y que incluye un enlace con la URL de salida. La sintaxis JSON de SubmitJob se muestra acontinuación.

{ "jobName": "JobE", "jobQueue": "ProdQueue", "jobDefinition": "JobE-Cleanup-and-Notification:1", "parameters": { "SourceBucket": "s3://JobD-Output-Bucket", "Recipient": "[email protected]" }, "dependsOn": [ { "jobId": "JobD_job_ID" } ]}

Tutorial: Uso del índice de trabajo de matriz paracontrolar la diferenciación de trabajosEste tutorial muestra cómo utilizar la variable de entorno AWS_BATCH_JOB_ARRAY_INDEX (que se asignaa cada trabajo secundario) para diferenciar los trabajos secundarios. El ejemplo utiliza el número de índicedel trabajo secundario para leer una línea específica de un archivo y sustituir el parámetro asociado a esenúmero de línea por un comando dentro del contenedor del trabajo. En consecuencia, es posible disponerde varios trabajos de AWS Batch ejecutando la misma imagen de Docker y los mismos argumentos de

25

Page 31: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioTutorial: Uso del índice de trabajo de matriz

los comandos, pero los resultados son diferentes, ya que el índice de trabajo de matriz se utiliza comomodificador.

En este tutorial, creará un archivo de texto que tiene todos los colores del arco iris, cada uno en su propialínea. A continuación, creará un script de punto de entrada para un contenedor de Docker que convierte elíndice en un valor que se puede utilizar como número de línea en el archivo de colores (el índice empiezaen cero, pero los números de línea empiezan en uno). Creará un Dockerfile que copia los archivos decolores y de índice en la imagen del contenedor y establece el valor ENTRYPOINT de la imagen en elscript de punto de entrada. El Dockerfile y los recursos se compilarán en una imagen de Docker que seenviará a Amazon ECR. A continuación, deberá registrar una definición de trabajo que utilice la imagende contenedor nueva, enviará un trabajo de matriz de AWS Batch con esa definición de trabajo y verá losresultados.

Requisitos previosEste tutorial tiene los requisitos previos siguientes:

• Un entorno informático de AWS Batch. Para obtener más información, consulte Cómo crear un entornoinformático (p. 71).

• Una cola de trabajos de AWS Batch y un entorno informático asociado. Para obtener más información,consulte Cómo crear de una cola de trabajos (p. 55).

• La AWS CLI debe estar instalada en el sistema local. Para obtener más información, consulte Instalaciónde la AWS Command Line Interface en la AWS Command Line Interface Guía del usuario.

• Docker debe estar instalado en el sistema local. Para obtener más información, consulte About DockerCE en la documentación de Docker.

Paso 1: Crear una imagen de contenedorAunque puede utilizar AWS_BATCH_JOB_ARRAY_INDEX en una definición de trabajo en el parámetro delcomando, resulta más fácil y eficaz crear una imagen de contenedor que utilice la variable en un script depunto de entrada. En esta sección, se describe cómo crear dicha imagen de contenedor.

Para compilar la imagen de contenedor de Docker

1. Cree un directorio nuevo para utilizarlo como espacio de trabajo de la imagen de Docker y desplácesea él.

2. Cree un archivo denominado colors.txt en el directorio del espacio de trabajo y pegue en él elcontenido siguiente.

redorangeyellowgreenblueindigoviolet

3. Cree un archivo denominado print-color.sh en el directorio del espacio de trabajo y pegue en élel contenido siguiente.

Note

La variable LINE se establece en AWS_BATCH_JOB_ARRAY_INDEX + 1 debido a que elíndice de matriz empieza en 0, pero los números de línea empiezan en 1. La variable COLORse establece en el color de colors.txt que está asociado a su número de línea.

#!/bin/sh

26

Page 32: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioTutorial: Uso del índice de trabajo de matriz

LINE=$((AWS_BATCH_JOB_ARRAY_INDEX + 1))COLOR=$(sed -n ${LINE}p /tmp/colors.txt)echo My favorite color of the rainbow is $COLOR.

4. Cree un archivo denominado Dockerfile en el directorio del espacio de trabajo y pegue en él elcontenido siguiente. Este Dockerfile copia los archivos anteriores en el contenedor y configura el scriptde punto de entrada para que se ejecute al iniciarse el contenedor.

FROM busyboxCOPY print-color.sh /tmp/print-color.shCOPY colors.txt /tmp/colors.txtENTRYPOINT /tmp/print-color.sh

5. Compile la imagen de Docker:

docker build -t print-color .

6. Pruebe el contenedor con el script siguiente. Este script establece la variableAWS_BATCH_JOB_ARRAY_INDEX en 0 localmente y, a continuación, incrementa su valor para simularlo que haría un trabajo de matriz con siete elementos secundarios.

AWS_BATCH_JOB_ARRAY_INDEX=0while [ $AWS_BATCH_JOB_ARRAY_INDEX -le 6 ]do docker run -e AWS_BATCH_JOB_ARRAY_INDEX=$AWS_BATCH_JOB_ARRAY_INDEX print-color AWS_BATCH_JOB_ARRAY_INDEX=$((AWS_BATCH_JOB_ARRAY_INDEX + 1))done

Salida:

My favorite color of the rainbow is red.My favorite color of the rainbow is orange.My favorite color of the rainbow is yellow.My favorite color of the rainbow is green.My favorite color of the rainbow is blue.My favorite color of the rainbow is indigo.My favorite color of the rainbow is violet.

Paso 2: Enviar la imagen a Amazon ECRAhora que ha compilado y probado el contenedor de Docker, debe enviarlo a un repositorio de imágenes.En este ejemplo, se utiliza Amazon ECR, pero también puede optar por emplear otro registro, comoDockerHub.

1. Cree un repositorio de imágenes de Amazon ECR para almacenar la imagen de contenedor. Porcuestiones de brevedad, en este ejemplo se utiliza la AWS CLI, pero también puede utilizar la Consolade administración de AWS. Para obtener más información, consulte Creación de un repositorio en laGuía del usuario de Amazon EC2 Container Registry.

aws ecr create-repository --repository-name print-color

2. Etiquete la imagen print-color con el URI del repositorio de Amazon ECR que se obtuvo del pasoanterior.

docker tag print-color aws_account_id.dkr.ecr.region.amazonaws.com/print-color

27

Page 33: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioTutorial: Uso del índice de trabajo de matriz

3. Recupere el comando login para el registro de Amazon ECR. Para obtener más información, consulteRegistros de Amazon ECR en la Guía del usuario de Amazon EC2 Container Registry.

aws ecr get-login --no-include-email

4. Ejecute el comando docker login ... que se devolvió en el paso anterior.5. Envíe la imagen a Amazon ECR:

docker push aws_account_id.dkr.ecr.region.amazonaws.com/print-color

Paso 3: Crear y registrar una definición de trabajoAhora que la imagen de Docker se encuentra en un registro de imágenes, puede especificarla en unadefinición de trabajo de AWS Batch y utilizarla más adelante para ejecutar un trabajo de matriz. Porcuestiones de brevedad, en este ejemplo se utiliza la AWS CLI, pero también puede utilizar la Consolade administración de AWS. Para obtener más información, consulte Cómo crear una definición detrabajo (p. 34).

Para crear una definición de trabajo

1. Cree un archivo denominado print-color.json en el directorio del espacio de trabajo y pegueen él el contenido siguiente. Reemplace el URI del repositorio de imágenes por el URI de su propiaimagen.

{ "jobDefinitionName": "print-color", "type": "container", "containerProperties": { "image": "aws_account_id.dkr.ecr.region.amazonaws.com/print-color", "vcpus": 1, "memory": 250 }}

2. Registre la definición de trabajo en AWS Batch:

aws batch register-job-definition --cli-input-json file://print-color.json

Paso 4: Enviar un trabajo de matriz de AWS BatchUna vez que haya registrado la definición de trabajo, puede enviar un trabajo de matriz de AWS Batch queutilice la imagen de contenedor nueva.

Para enviar un trabajo de matriz de AWS Batch

1. Cree un archivo denominado print-color-job-def.json en el directorio del espacio de trabajo ypegue en él el contenido siguiente.

Note

En este ejemplo, se utiliza el nombre predeterminado de la cola de trabajos que ha creadoel asistente de primera ejecución de AWS Batch. Si el nombre de su cola de trabajos esdiferente, sustituya el nombre first-run-job-queue por el nombre de su cola de trabajos.

{

28

Page 34: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioTrabajos paralelos de varios nodos

"jobName": "print-color", "jobQueue": "first-run-job-queue", "arrayProperties": { "size": 7 }, "jobDefinition": "print-color"}

2. Envíe el trabajo a su cola de trabajos de AWS Batch. Anote el ID de trabajo que se devuelve comoresultado.

aws batch submit-job --cli-input-json file://print-color-job-def.json

3. Describa el estado del trabajo y espere a que el trabajo adopte el valor SUCCEEDED.

Paso 5: Ver los logs del trabajo de matrizCuando el trabajo alcance el estado SUCCEEDED, podrá ver los registros de CloudWatch Logs desde elcontenedor del trabajo.

Para ver los logs del trabajo en CloudWatch Logs

1. Abra la consola de AWS Batch en https://console.aws.amazon.com/batch/.2. En el panel de navegación izquierdo, elija Jobs (Trabajos).3. En Job queue (Cola de trabajos), seleccione una cola.4. En la sección Status (Estado), elija succeeded (realizado correctamente).5. Para mostrar todos los trabajos secundarios del trabajo de matriz, seleccione el ID de trabajo que se

ha obtenido en la sección anterior.6. Para ver los logs del contenedor del trabajo, seleccione uno de los trabajos secundarios y elija View

logs (Ver logs).

7. Vea los logs del otro trabajo secundario. Cada trabajo devuelve un color diferente del arco iris.

Trabajos paralelos de varios nodosLos trabajos paralelos de varios nodos le permiten ejecutar trabajos individuales que abarcan variasinstancias Amazon EC2. Los trabajos paralelos de varios nodos de AWS Batch le permiten ejecutaraplicaciones informáticas de alto rendimiento a gran escala estrechamente acopladas y entrenar modelos

29

Page 35: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioVariables de entorno

de GPU distribuida sin necesidad de lanzar, configurar y administrar los recursos de Amazon EC2directamente. Los trabajos paralelos de varios nodos de AWS Batch son compatibles con cualquier marcode trabajo que admita las comunicaciones entre nodos basadas en IP, como Apache MXNet, TensorFlow,Caffe2 o Message Passing Interface (MPI).

Los trabajos paralelos de varios nodos se envían como un único trabajo. Sin embargo, la definición detrabajo (o las anulaciones de nodos de envío de trabajos) especifica el número de nodos que se debencrear para el trabajo y qué grupos de nodos deben crearse. Cada trabajo paralelo de varios nodos contieneun nodo principal, que se lanza en primer lugar. Una vez que el nodo principal está en marcha, se lanzane inician los nodos secundarios. Si el nodo principal finaliza su ejecución, se considera que el trabajoha finalizado y los nodos secundarios se detienen. Para obtener más información, consulte Grupos denodos (p. 31).

Los nodos de trabajos paralelos de varios nodos son de un solo propietario, lo que significa que solo seejecuta un único contenedor de trabajos en cada instancia Amazon EC2.

El estado final del trabajo (SUCCEEDED o FAILED) lo determina el estado final del trabajo del nodoprincipal. Para obtener el estado de un trabajo paralelo de varios nodos, puede describir el trabajoutilizando el ID de trabajo obtenido al enviar el trabajo. Si necesita los detalles de los nodos secundarios,deberá describir cada nodo secundario por separado. Se hace referencia a los nodos mediante lanotación #N. Por ejemplo, para acceder a los detalles del segundo nodo de un trabajo, debe describiraws_batch_job_id#2 utilizando la acción DescribeJobs de la API de AWS Batch. La informaciónstarted, stoppedAt, statusReason y exit de un trabajo paralelo de varios nodos se rellena desde elnodo principal.

Si se especifican reintentos de trabajos, un error en el nodo principal desencadena otro intento, no así loserrores producidos en los nodos secundarios. Cada nuevo intento de un trabajo paralelo de varios nodosactualiza el intento correspondiente de sus nodos secundarios asociados.

Para ejecutar trabajos paralelos de varios nodos en AWS Batch, el código de la aplicación debe contenerlos marcos de trabajo y las bibliotecas necesarios para la comunicación distribuida.

Variables de entornoEn tiempo de ejecución, además de las variables de entorno estándar que reciben todos los trabajos deAWS Batch, cada nodo se configura con las siguientes variables de entorno específicas de los trabajosparalelos de varios nodos:

AWS_BATCH_JOB_MAIN_NODE_INDEX

Esta variable se establece en el número de índice del nodo principal del trabajo. Elcódigo de la aplicación puede comparar AWS_BATCH_JOB_MAIN_NODE_INDEX conAWS_BATCH_JOB_NODE_INDEX en un nodo individual para determinar si es el nodo principal.

AWS_BATCH_JOB_MAIN_NODE_PRIVATE_IPV4_ADDRESS

Esta variable solo se establece en los nodos secundarios de trabajos paralelos de varios nodos (noestá presente en el nodo principal). Esta variable se establece en la dirección IPv4 privada del nodoprincipal del trabajo. El código de la aplicación del nodo secundario puede utilizar esta dirección paracomunicarse con el nodo principal.

AWS_BATCH_JOB_NODE_INDEX

Esta variable se establece en el número de índice del nodo. El índice del nodo comienza a partir de 0y cada nodo recibe un número de índice único. Por ejemplo, un trabajo paralelo de varios nodos con10 elementos secundarios tiene valores de índice comprendidos entre 0 y 9.

AWS_BATCH_JOB_NUM_NODES

Esta variable se establece en el número de nodos solicitados para el trabajo en paralelo de variosnodos.

30

Page 36: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioGrupos de nodos

Grupos de nodosUn grupo de nodos es un conjunto de nodos de trabajo idénticos que comparten las mismas propiedadesde contenedor. AWS Batch le permite especificar hasta cinco grupos de nodos diferentes para cadatrabajo.

Cada grupo puede tener sus propias imágenes de contenedor, comandos, variables de entorno, etc. Porejemplo, puede enviar un trabajo que requiera una sola instancia c4.xlarge para el nodo principal ycinco instancias c4.xlarge para los nodos secundarios; cada uno de estos grupos de nodos puedeespecificar imágenes de contenedor o comandos distintos que se deben ejecutar para cada trabajo.

De forma alternativa, todos los nodos del trabajo pueden utilizar un único grupo de nodos, y el códigode la aplicación puede diferenciar los roles de los nodos (nodo principal frente a nodo secundario)comparando la variable de entorno AWS_BATCH_JOB_MAIN_NODE_INDEX con su propio valor deAWS_BATCH_JOB_NODE_INDEX. Puede tener un máximo de 1000 nodos en un solo trabajo. Este es ellímite predeterminado para las instancias en un clúster de Amazon ECS, que se puede aumentar bajodemanda.

Note

En la actualidad, todos los grupos de nodos de un trabajo paralelo de varios nodos deben utilizarel mismo tipo de instancia.

Ciclo de vida del trabajoCuando se envía un trabajo paralelo de varios nodos, el trabajo adquiere el estado SUBMITTED y esperaa que terminen las dependencias de trabajo. A continuación, el trabajo pasa al estado RUNNABLE y AWSBatch aprovisiona la capacidad de instancias necesaria para ejecutar el trabajo y lanza estas instancias.

Cada trabajo paralelo de varios nodos contiene un nodo principal. El nodo principal es una única tareasecundaria que AWS Batch monitoriza para determinar el resultado del trabajo de varios nodos enviado. Elnodo principal se lanza en primer lugar y pasa a tener el estado STARTING.

Cuando el nodo principal alcanza el estado RUNNING (después de que el contenedor del nodo se estéejecutando), los nodos secundarios se lanzan y pasan al estado STARTING. Los nodos secundariosaparecen en orden aleatorio. No hay ninguna garantía sobre la sincronización o el orden del lanzamientode los nodos secundarios. Para asegurarse de que todos los nodos de los trabajos se encuentran en elestado RUNNING (una vez que el contenedor del nodo se esté ejecutando), el código de la aplicaciónpuede consultar la API de AWS Batch para obtener información sobre el nodo principal y los nodossecundarios, o coordinarse y esperar hasta que todos los nodos estén online antes de comenzar ningunatarea de procesamiento distribuido. La dirección IP privada del nodo principal está disponible en la variablede entorno AWS_BATCH_JOB_MAIN_NODE_PRIVATE_IPV4_ADDRESS de cada nodo secundario. El códigode la aplicación puede utilizar esta información para coordinar y comunicar datos entre cada una de lastareas.

A medida que finalizan los nodos individuales, pasan al estado SUCCEEDED o FAILED, en función de sucódigo de salida. Si finaliza el nodo principal, se considera que el trabajo ha finalizado y todos los nodossecundarios se detienen. Si un nodo secundario se cierra, AWS Batch no realiza ninguna acción en elresto de nodos del trabajo. Si no desea que el trabajo continúe con una cantidad reducida de nodos, debetenerlo en cuenta en el código de la aplicación para terminar o cancelar el trabajo.

Consideraciones del entorno informáticoHay varios aspectos que es preciso tener en cuenta al configurar entornos informáticos para ejecutartrabajos paralelos de varios nodos con AWS Batch.

• Si va a enviar trabajos paralelos de varios nodos a un entorno informático, considere la posibilidad decrear un grupo de ubicación en clúster en una única zona de disponibilidad y asociarlo a los recursos

31

Page 37: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioTrabajos de GPU

informáticos. Esto mantiene los trabajos paralelos de varios nodos en una agrupación lógica deinstancias muy próxima al alto potencial de flujo de la red. Para obtener más información, consulteGrupos de ubicación en la Guía del usuario de Amazon EC2 para instancias de Linux.

• Los trabajos paralelos de varios nodos no se admiten en entornos informáticos que utilicen instancias despot.

• Los trabajos paralelos de varios nodos de AWS Batch utilizan el modo de red awsvpc de Amazon ECS,que otorga a los contenedores de trabajos paralelos de varios nodos las mismas propiedades de redque las instancias Amazon EC2. Cada contenedor de trabajos paralelos de varios nodos obtiene supropia interfaz de red elástica, una dirección IP privada principal y un nombre de host DNS interno. Lainterfaz de red se crea en la misma subred de VPC como su recurso informático de host. Los grupos deseguridad que se hayan aplicado a los recursos informáticos se aplicarán también a ella. Para obtenermás información, consulte Integración en red de las tareas con el modo de red awsvpc en la AmazonElastic Container Service Developer Guide.

• El entorno informático no puede tener asociados más de cinco grupos de seguridad.• Las interfaces de red elásticas que se crean y asocian a los recursos informáticos no se pueden separar

manualmente ni la cuenta puede modificarlas. De este modo, se evita la eliminación accidental de unainterfaz de red elástica que esté asociada a un trabajo en ejecución. Para liberar las interfaces de redelásticas de una tarea, termine el trabajo.

• El entorno informático debe tener un número máximo de CPU virtuales suficiente para admitir el trabajoparalelo de varios nodos.

• Los límites de instancias Amazon EC2 deben ser capaces de satisfacer el número de instanciasnecesarias para ejecutar el trabajo. Por ejemplo, si el trabajo requiere 30 instancias, pero la cuenta solopuede ejecutar 20 en una región, el trabajo se bloquea en el estado RUNNABLE.

• Si especifica un tipo de instancia para un grupo de nodos en un trabajo paralelo de varios nodos, elentorno informático debe ser capaz de lanzar ese tipo de instancia.

Trabajos de GPULos trabajos de GPU le permiten ejecutar los trabajos que utilizan las GPU de una instancia.

Se admiten los siguientes tipos de instancias basadas en GPU de Amazon EC2. Para obtener másinformación, consulte Instancias G3 de Amazon EC2, Instancias G4 de Amazon EC2, Instancias P2 deAmazon EC2 e Instancias P3 de Amazon EC2.

Tipo de instancia GPU Memoria deGPU

vCPU Memoria Ancho de banda de lared

g3s.xlarge 1 8 GiB 4 30,5 GiB 10 Gbps

g3.4xlarge 1 8 GiB 16 122 GiB Hasta 10 Gbps

g3.8xlarge 2 16 GiB 32 244 GiB 10 Gbps

g3.16xlarge 4 32 GiB 64 488 GiB 25 Gbps

g4dn.xlarge 1 16 GiB 4 16 GiB Hasta 25 Gbps.

g4dn.2xlarge 1 16 GiB 8 32 GiB Hasta 25 Gbps.

g4dn.4xlarge 1 16 GiB 16 64 GiB Hasta 25 Gbps.

g4dn.8xlarge 1 16 GiB 32 128 GiB 50 Gbps

g4dn.12xlarge 4 64 GiB 48 192 GiB 50 Gbps

32

Page 38: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioTrabajos de GPU

Tipo de instancia GPU Memoria deGPU

vCPU Memoria Ancho de banda de lared

g4dn.16xlarge 1 16 GiB 64 256 GiB 50 Gbps

p2.xlarge 1 12 GiB 4 61 GiB Alta

p2.8xlarge 8 96 GiB 32 488 GiB 10 Gbps

p2.16xlarge 16 192 GiB 64 732 GiB 20 Gbps

p3.2xlarge 1 16 GiB 8 61 GiB Hasta 10 Gbps

p3.8xlarge 4 64 GiB 32 244 GiB 10 Gbps

p3.16xlarge 8 128 GiB 64 488 GiB 25 Gbps

p3dn.24xlarge 8 256 GiB 96 768 GiB 100 Gbps

El parámetro resourceRequirements de la definición del trabajo especifica el número de GPU que se vaa anclar al contenedor y no va a estar disponible para ningún otro trabajo que se ejecute en esa instanciadurante el transcurso del mismo. Todos los tipos de instancia de un entorno informático que ejecutarán lostrabajos de GPU deben pertenecer a las familias de instancias de p2, p3, g3, g3s o g4. Si no lo hace así,un trabajo de GPU podría quedar bloqueado en el estado RUNNABLE.

Los trabajos que no utilizan las GPU se pueden ejecutar en instancias con GPU, pero es posible quecueste más ejecutarlas en las instancias con GPU que en instancias sin GPU similares. En función de lavCPU específica, la memoria y el tiempo necesario, estos trabajos sin GPU pueden bloquear la ejecuciónde los trabajos de GPU.

33

Page 39: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioCómo crear una definición de trabajo

Definiciones de trabajoLas definiciones de trabajo de AWS Batch especifican cómo se ejecutan los trabajos. Si bien cada trabajodebe hacer referencia a una definición de trabajo, muchos de los parámetros especificados en dichadefinición pueden ser ignorados en tiempo de ejecución.

Contenido• Cómo crear una definición de trabajo (p. 34)• Creación de una definición de trabajo paralelo de varios nodos (p. 37)• Plantilla de definición de trabajo (p. 40)• Parámetros de definición de trabajos (p. 42)• Ejemplos de definiciones de trabajo (p. 51)

Algunos de los atributos especificados en una definición de trabajo son:

• La imagen de Docker a utilizar con el contenedor en el trabajo• La cantidad de vCPU y de memoria a utilizar con el contenedor• El comando que el contenedor debe ejecutar al iniciarse• Las variables de entorno que se deben transmitirse al contenedor cuando se inicia, de haberlas• Los volúmenes de datos que deben utilizarse con el contenedor• Los roles de IAM (de haberlos) que el trabajo debe utilizar para los permisos de AWS

Para obtener una descripción completa de los parámetros disponibles en una definición de trabajo,consulte Parámetros de definición de trabajos (p. 42).

Cómo crear una definición de trabajoAntes de ejecutar trabajos en AWS Batch, es necesario crear una definición de trabajo. Este proceso varíaligeramente para los trabajos paralelos de un solo nodo y de varios nodos. En este tema, se explica cómocrear una definición de trabajo para un trabajo de AWS Batch que no sea un trabajo paralelo de variosnodos.

Para crear una definición de trabajo paralelo de varios nodos, consulte Creación de una definición detrabajo paralelo de varios nodos (p. 37). Para obtener más información sobre los trabajos paralelos devarios nodos, consulte Trabajos paralelos de varios nodos (p. 29).

Para crear una nueva definición de trabajo

1. Abra la consola de AWS Batch en https://console.aws.amazon.com/batch/.2. En la barra de navegación, seleccione la región que desea utilizar.3. En el panel de navegación, seleccione Definiciones de trabajo y, a continuación, Crear.4. En Nombre de la definición de trabajo, escriba un nombre único para la definición de trabajo. Se

admiten hasta 128 letras (mayúsculas y minúsculas), números, guiones y caracteres de subrayado.5. En Intentos de trabajo, especifique la cantidad máxima de intentos de trabajo (en caso de que falle).

Para obtener más información, consulte Reintentos automáticos de trabajo (p. 20).6. (Opcional) En Execution timeout (Tiempo de espera de ejecución), especifique el número máximo de

segundos que desea permitir que su trabajo intente ejecutarse. Si un intento supera la duración deltiempo de espera, se detiene y el estado cambia a FAILED. Para obtener más información, consulteTiempos de espera de trabajo (p. 21).

34

Page 40: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioCómo crear una definición de trabajo

7. En Job requires multiple node configurations (El trabajo requiere configuraciones de varios nodos),deje este cuadro sin marcar. Si lo que desea es crear una definición de trabajo paralelo de variosnodos, consulte Creación de una definición de trabajo paralelo de varios nodos (p. 37).

8. (Opcional) En la sección Parameters (Parámetros), es posible especificar valores predeterminadosde sustitución de parámetros y marcadores de posición para utilizarlos en el comando que ejecuta elcontenedor del trabajo al iniciarse. Para obtener más información, consulte Parámetros (p. 43).

a. Elija Add parameter (Añadir parámetro).b. En Clave, especifique la clave del parámetro.c. En Valor, especifique el valor del parámetro.

9. (Opcional) En Rol de trabajo, especifique un rol de IAM que le otorgue al trabajo permisos para usarlas API de AWS. Esta característica utiliza roles de IAM de Amazon ECS para otorgarle funcionalidadal trabajo. Para obtener más información, incluso sobre requisitos de configuración, consulte Roles deIAM para tareas en la Amazon Elastic Container Service Developer Guide.

Note

Aquí solo se muestran roles con relación de confianza de Rol de tarea de Amazon ElasticContainer Service. Para obtener más información sobre cómo crear un rol de IAM paratrabajos de AWS Batch, consulte Creación de un rol de IAM y una política para sus tareas enla Amazon Elastic Container Service Developer Guide.

10. En Imagen de contenedor, seleccione la imagen de Docker que quiera utilizar para el trabajo. Lasimágenes del registro de Docker Hub están disponibles de forma predeterminada. También es posibleespecificar otros repositorios con repository-url/image:tag. Se permiten hasta 255 letras(mayúsculas y minúsculas), números, guiones, caracteres de subrayado, comas, puntos, barrasdiagonales y signos numéricos. Este parámetro se mapea a Image en la sección Crear un contenedorde la Docker Remote API y al parámetro IMAGE de docker run.

Note

La arquitectura de la imagen de Docker debe coincidir con la arquitectura del procesadorde los recursos informáticos en las que estén programadas. Por ejemplo, las imágenes deDocker basadas en ARM solo se pueden ejecutar en recursos informáticos basados en ARM.

• Las imágenes de los repositorios de Amazon ECR utilizan la convenciónde nomenclatura registry/repository:tag. Por ejemplo,aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app:latest

• Las imágenes de los repositorios oficiales de Docker Hub utilizan un solo nombre (por ejemplo,ubuntu o mongo).

• Las imágenes de otros repositorios de Docker Hub se cualifican con un nombre de organización(por ejemplo, amazon/amazon-ecs-agent).

• Las imágenes de otros repositorios online se cualifican más con un nombre de dominio (porejemplo, quay.io/assemblyline/ubuntu).

11. En Comando, especifique los comandos que desea transmitir al contenedor. Los comandos sencillospueden escribirse en la pestaña Delimitado por espacios tal como lo haría en un símbolo del sistema.Posteriormente, compruebe que el resultado JSON que se transfiere al demonio de Docker seacorrecto. Si los comandos son más complejos (con caracteres especiales, por ejemplo), acceda a lapestaña JSON e introduzca allí el equivalente a la matriz de cadenas.

Este parámetro se mapea a Cmd en la sección Crear un contenedor de la Docker Remote API y alparámetro COMMAND de docker run. Para obtener más información sobre el parámetro CMD de Docker,visite https://docs.docker.com/engine/reference/builder/#cmd.

Note

Se pueden utilizar valores predeterminados para la sustitución de parámetros y marcadoresde posición en el comando. Para obtener más información, consulte Parámetros (p. 43).

35

Page 41: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioCómo crear una definición de trabajo

12. En CPU virtuales, especifique la cantidad de CPU virtuales que quiera reservar para el contenedor.Este parámetro se mapea a CpuShares en la sección Crear un contenedor de la Docker Remote APIy a la opción --cpu-shares de docker run. Cada vCPU es equivalente a 1 024 cuotas de CPU. Debeespecificar al menos una vCPU.

13. En Memoria, especifique límite máximo (en MiB) de memoria que quiera presentarle al contenedor deltrabajo. Si su contenedor intenta superar la memoria especificada aquí, se cancela el contenedor. Esteparámetro se mapea a Memory en la sección Crear un contenedor de la Docker Remote API y a laopción --memory de docker run. Debe especificar al menos 4 MiB de memoria para un trabajo.

Note

Si está intentando maximizar la utilización de los recursos proporcionando a las tareasla mayor cantidad de memoria posible para un tipo de instancia determinado, consulteAdministración de la memoria en (p. 81).

14. (Opcional) En la sección Resource requirements (Requisitos de recursos), puede configurar losrequisitos del contenedor del trabajo. En Number of GPUs (Número de GPU), especifique el númerode GPU que se van a usar en el trabajo.

El trabajo se ejecutará en un contenedor con el número especificado de GPU anclado a dichocontenedor.

15. En la sección Seguridad, configure las opciones de seguridad del contenedor del trabajo.

a. Para concederle privilegios elevados al contenedor del trabajo en la instancia del host (similaresa los de un usuario root), seleccione Privilegiado. Este parámetro se corresponde con elobjeto Privileged de la sección Crear un contenedor de Docker Remote API y la opción --privileged de docker run.

b. En Usuario, introduzca el nombre de usuario a utilizar dentro del contenedor. Este parámetro semapea a User en la sección Crear un contenedor de la Docker Remote API y a la opción --userde docker run.

16. (Opcional) En la sección Mount points (Puntos de montaje), puede configurar los puntos de montajedel contenedor del trabajo al que se va a obtener acceso.

a. En Ruta del contenedor, escriba la ruta del contenedor en el que montar el volumen del host.b. En Volumen de origen, escriba el nombre del volumen que montar.c. Para que el volumen sea de solo lectura para el contenedor, seleccione Solo lectura.

17. (Opcional) En la sección Volumes (Volúmenes), puede especificar los volúmenes de datos del trabajoque se van a pasar al contenedor del trabajo.

a. En Nombre, escriba un nombre para su volumen. Se admiten hasta 255 letras (mayúsculas yminúsculas), números, guiones y caracteres de subrayado.

b. En Ruta de origen, escriba la ruta de la instancia del host que presentar al contenedor. Si se dejaeste campo en blanco, el demonio de Docker asigna una ruta de host. Si se especifica una rutade origen, el volumen de datos persiste en esa ubicación de la instancia de contenedor de hosthasta que la elimine manualmente. Si la ruta de origen no existe en el host de la instancia decontenedor, el demonio de Docker la crea. Si la ubicación existe, el contenido de la carpeta de laruta de origen se exporta al contenedor.

18. (Opcional) En la sección Environment variables (Variables de entorno), puede especificar las variablesde entorno que se van a pasar al contenedor del trabajo. Este parámetro se mapea a Env en lasección Crear un contenedor de la Docker Remote API y a la opción --env de docker run.

Important

No es recomendable que utilice variables del entorno en texto sin formato para informaciónconfidencial, como los datos de las credenciales.

a. Elija Add environment variable (Añadir variable de entorno).36

Page 42: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioCreación de una definición de

trabajo paralelo de varios nodos

b. En Clave, especifique la clave de la variable del entorno.

Note

Las variables del entorno no deben comenzar con AWS_BATCH; esta convención denomenclatura está reservada para las variables establecidas por el servicio AWS Batch.

c. En Valor, especifique el valor de la variable del entorno.19. (Opcional) En la sección Ulimits, puede configurar los valores de ulimit que van a usar con el

contenedor del trabajo.

a. Elija Add limit (Añadir límite).b. En Limitar nombre, seleccione el ulimit a aplicar.c. En Límite flexible, seleccione el límite flexible que aplicar al tipo de ulimit.d. En Límite invariable, seleccione el límite máximo que aplicar al tipo de ulimit.

20. (Opcional) En la sección Linux Parameters (Parámetros de Linux), puede configurar las asignacionesde dispositivos que se van a usar con el contenedor del trabajo para que este pueda obtener acceso aun dispositivo de la instancia del host.

a. En la sección Devices (Dispositivos), seleccione Add device (Agregar dispositivo).b. En Host path (Ruta de host), especifique la ruta de un dispositivo de la instancia del host.c. En Container path (Ruta del contenedor), especifique la ruta de la instancia del contenedor que va

a exponer el dispositivo asignado a la instancia del host. Si se deja en blanco, se utiliza la ruta delhost en el contenedor.

d. En la página Permissions (Permisos), haga clic en uno o varios permisos para aplicarlos aldispositivo del contenedor. Los permisos disponibles son READ, WRITE y MKNOD.

21. Seleccione Crear una definición de trabajo.

Creación de una definición de trabajo paralelo devarios nodos

Antes de ejecutar trabajos en AWS Batch, es necesario crear una definición de trabajo. Este proceso varíaligeramente para los trabajos paralelos de un solo nodo y de varios nodos. En este tema, se explica cómocrear una definición de trabajo para un trabajo paralelo de varios nodos de AWS Batch. Para obtener másinformación, consulte Trabajos paralelos de varios nodos (p. 29).

Para crear una definición de trabajo paralelo de un solo nodo, consulte Cómo crear una definición detrabajo (p. 34).

Para crear una definición de trabajo paralelo de varios nodos

1. Abra la consola de AWS Batch en https://console.aws.amazon.com/batch/.2. En la barra de navegación, seleccione la región que desea utilizar.3. En el panel de navegación, seleccione Definiciones de trabajo y, a continuación, Crear.4. En Nombre de la definición de trabajo, escriba un nombre único para la definición de trabajo. Se

admiten hasta 128 letras (mayúsculas y minúsculas), números, guiones y caracteres de subrayado.5. En Intentos de trabajo, especifique la cantidad máxima de intentos de trabajo (en caso de que falle).

Para obtener más información, consulte Reintentos automáticos de trabajo (p. 20).6. (Opcional) En Execution timeout (Tiempo de espera de ejecución), especifique el número máximo de

segundos que desea permitir que su trabajo intente ejecutarse. Si un intento supera la duración deltiempo de espera, se detiene y el estado cambia a FAILED. Para obtener más información, consulteTiempos de espera de trabajo (p. 21).

37

Page 43: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioCreación de una definición de

trabajo paralelo de varios nodos

7. Seleccione Job requires multiple node configurations (El trabajo requiere configuraciones de variosnodos) y complete los subpasos siguientes. Si lo que desea es crear una definición de trabajo paralelode un nodo, consulte Cómo crear una definición de trabajo (p. 34).

a. En Number of nodes (Número de nodos), introduzca el número total de nodos que desea utilizaren el trabajo.

b. En Main node (Nodo principal), introduzca el índice de nodo que desea utilizar para el nodoprincipal. El índice de nodo principal predeterminado es 0.

c. (Opcional) Para restringir los nodos a un tipo de instancia determinado, elija uno en el menúdesplegable. Si no especifica un tipo de instancia, AWS Batch elige el tipo de instancia máspequeño que cumpla los requisitos del nodo más grande (vCPU y memoria) entre los tipos deinstancias disponibles en el entorno informático.

Important

Asegúrese de elegir un tipo de instancia que esté disponible para su lanzamiento en elentorno informático. De lo contrario, el trabajo se bloqueará en el estado RUNNABLE ybloqueará los trabajos posteriores.

8. (Opcional) En la sección Parameters (Parámetros), es posible especificar valores predeterminadosde sustitución de parámetros y marcadores de posición para utilizarlos en el comando que ejecuta elcontenedor del trabajo al iniciarse. Para obtener más información, consulte Parámetros (p. 43).

a. Elija Add parameter (Añadir parámetro).b. En Clave, especifique la clave del parámetro.c. En Valor, especifique el valor del parámetro.

9. En la sección Node properties (Propiedades del nodo), configure los grupos de nodos. De formapredeterminada, se crea automáticamente un único grupo de nodos con el número predeterminado denodos.

10. En Target nodes (Nodos de destino), especifique el rango del grupo de nodos utilizando la notaciónrange_start:range_end.

Puede crear hasta cinco rangos de nodos para el número de nodos que ha especificado para eltrabajo. Los rangos de nodos utilizan el valor de índice para un nodo, y el índice de nodo comienzaa partir de 0. El valor del índice del rango final del grupo de nodos final debe ser el número de nodosque ha especificado en Step 7.a (p. 38) menos uno. Por ejemplo, si ha especificado 10 nodos ydesea utilizar un único grupo de nodos, el rango final debería ser 9.

11. En Imagen de contenedor, seleccione la imagen de Docker que quiera utilizar para el trabajo. Lasimágenes del registro de Docker Hub están disponibles de forma predeterminada. También es posibleespecificar otros repositorios con repository-url/image:tag. Se permiten hasta 255 letras(mayúsculas y minúsculas), números, guiones, caracteres de subrayado, comas, puntos, barrasdiagonales y signos numéricos. Este parámetro se mapea a Image en la sección Crear un contenedorde la Docker Remote API y al parámetro IMAGE de docker run.

Note

La arquitectura de la imagen de Docker debe coincidir con la arquitectura del procesadorde los recursos informáticos en las que estén programadas. Por ejemplo, las imágenes deDocker basadas en ARM solo se pueden ejecutar en recursos informáticos basados en ARM.

• Las imágenes de los repositorios de Amazon ECR utilizan la convenciónde nomenclatura registry/repository:tag. Por ejemplo,aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app:latest

• Las imágenes de los repositorios oficiales de Docker Hub utilizan un solo nombre (por ejemplo,ubuntu o mongo).

• Las imágenes de otros repositorios de Docker Hub se cualifican con un nombre de organización(por ejemplo, amazon/amazon-ecs-agent).

38

Page 44: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioCreación de una definición de

trabajo paralelo de varios nodos

• Las imágenes de otros repositorios online se cualifican más con un nombre de dominio (porejemplo, quay.io/assemblyline/ubuntu).

12. En CPU virtuales, especifique la cantidad de CPU virtuales que quiera reservar para el contenedor.Este parámetro se mapea a CpuShares en la sección Crear un contenedor de la Docker Remote APIy a la opción --cpu-shares de docker run. Cada vCPU es equivalente a 1 024 cuotas de CPU. Debeespecificar al menos una vCPU.

13. En Memoria, especifique límite máximo (en MiB) de memoria que quiera presentarle al contenedor deltrabajo. Si su contenedor intenta superar la memoria especificada aquí, se cancela el contenedor. Esteparámetro se mapea a Memory en la sección Crear un contenedor de la Docker Remote API y a laopción --memory de docker run. Debe especificar al menos 4 MiB de memoria para un trabajo.

Note

Si está intentando maximizar la utilización de los recursos proporcionando a las tareasla mayor cantidad de memoria posible para un tipo de instancia determinado, consulteAdministración de la memoria en (p. 81).

14. En Comando, especifique los comandos que desea transmitir al contenedor. Los comandos sencillospueden escribirse en la pestaña Delimitado por espacios tal como lo haría en un símbolo del sistema.Posteriormente, compruebe que el resultado JSON que se transfiere al demonio de Docker seacorrecto. Si los comandos son más complejos (con caracteres especiales, por ejemplo), acceda a lapestaña JSON e introduzca allí el equivalente a la matriz de cadenas.

Este parámetro se mapea a Cmd en la sección Crear un contenedor de la Docker Remote API y alparámetro COMMAND de docker run. Para obtener más información sobre el parámetro CMD de Docker,visite https://docs.docker.com/engine/reference/builder/#cmd.

Note

Se pueden utilizar valores predeterminados para la sustitución de parámetros y marcadoresde posición en el comando. Para obtener más información, consulte Parámetros (p. 43).

15. (Opcional) Para concederle privilegios elevados al contenedor del trabajo en la instancia del host(similares a los de un usuario root), seleccione Privileged (Privilegiado). Este parámetro secorresponde con el objeto Privileged de la secciónCrear un contenedor de Docker Remote API y laopción --privileged de docker run.

16. (Opcional) En Rol de trabajo, especifique un rol de IAM que le otorgue al trabajo permisos para usarlas API de AWS. Esta característica utiliza roles de IAM de Amazon ECS para otorgarle funcionalidadal trabajo. Para obtener más información, incluso sobre requisitos de configuración, consulte Roles deIAM para tareas en la Amazon Elastic Container Service Developer Guide.

Note

Aquí solo se muestran roles con relación de confianza de Rol de tarea de Amazon ElasticContainer Service. Para obtener más información sobre cómo crear un rol de IAM paratrabajos de AWS Batch, consulte Creación de un rol de IAM y una política para sus tareas enla Amazon Elastic Container Service Developer Guide.

17. En Usuario, introduzca el nombre de usuario a utilizar dentro del contenedor. Este parámetro semapea a User en la sección Crear un contenedor de la Docker Remote API y a la opción --user dedocker run.

18. Especifique puntos de montaje para el contenedor del trabajo acceda a ellos. Este paso es opcional.

a. En Ruta del contenedor, escriba la ruta del contenedor en el que montar el volumen del host.b. En Volumen de origen, escriba el nombre del volumen que montar.c. Para que el volumen sea de solo lectura para el contenedor, seleccione Solo lectura.

19. Se pueden especificar volúmenes de datos para que el trabajo los transmita a su contenedor. Estepaso es opcional.

39

Page 45: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioPlantilla de definición de trabajo

a. En Nombre, escriba un nombre para su volumen. Se admiten hasta 255 letras (mayúsculas yminúsculas), números, guiones y caracteres de subrayado.

b. En Ruta de origen, escriba la ruta de la instancia del host que presentar al contenedor. Si se dejaeste campo en blanco, el demonio de Docker asigna una ruta de host. Si se especifica una rutade origen, el volumen de datos persiste en esa ubicación de la instancia de contenedor de hosthasta que la elimine manualmente. Si la ruta de origen no existe en el host de la instancia decontenedor, el demonio de Docker la crea. Si la ubicación existe, el contenido de la carpeta de laruta de origen se exporta al contenedor.

20. Es posible especificar variables de entorno para transmitir al contenedor de trabajo. Esto es opcional.Este parámetro se mapea a Env en la sección Crear un contenedor de la Docker Remote API y a laopción --env de docker run.

Important

No es recomendable que utilice variables del entorno en texto sin formato para informaciónconfidencial, como los datos de las credenciales.

a. Elija Add environment variable (Añadir variable de entorno).b. En Clave, especifique la clave de la variable del entorno.

Note

Las variables del entorno no deben comenzar con AWS_BATCH; esta convención denomenclatura está reservada para las variables establecidas por el servicio AWS Batch.

c. En Valor, especifique el valor de la variable del entorno.21. En Ulimits, configure los valores ulimit para el contenedor del trabajo.

a. Elija Add limit (Añadir límite).b. En Limitar nombre, seleccione el ulimit a aplicar.c. En Límite flexible, seleccione el límite flexible que aplicar al tipo de ulimit.d. En Límite invariable, seleccione el límite máximo que aplicar al tipo de ulimit.

22. Vuelva al Step 10 (p. 38) y repita los pasos para cada grupo de nodos que desee configurar para eltrabajo.

23. Seleccione Crear una definición de trabajo.

Plantilla de definición de trabajoA continuación se muestra una plantilla de definición de trabajo vacía. Puede utilizar esta plantilla paracrear la definición del trabajo, que posteriormente se puede guardar en un archivo y utilizarse con la opciónde la AWS CLI --cli-input-json. Para obtener más información sobre estos parámetros, consulteParámetros de definición de trabajos (p. 42).

{ "jobDefinitionName": "", "type": "container", "parameters": { "KeyName": "" }, "containerProperties": { "image": "", "vcpus": 0, "memory": 0, "command": [ "" ],

40

Page 46: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioPlantilla de definición de trabajo

"jobRoleArn": "", "volumes": [ { "host": { "sourcePath": "" }, "name": "" } ], "environment": [ { "name": "", "value": "" } ], "mountPoints": [ { "containerPath": "", "readOnly": true, "sourceVolume": "" } ], "readonlyRootFilesystem": true, "privileged": true, "ulimits": [ { "hardLimit": 0, "name": "", "softLimit": 0 } ], "user": "", "instanceType": "" }, "nodeProperties": { "numNodes": 0, "mainNode": 0, "nodeRangeProperties": [ { "targetNodes": "", "container": { "image": "", "vcpus": 0, "memory": 0, "command": [ "" ], "jobRoleArn": "", "volumes": [ { "host": { "sourcePath": "" }, "name": "" } ], "environment": [ { "name": "", "value": "" } ], "mountPoints": [ { "containerPath": "", "readOnly": true,

41

Page 47: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioParámetros de definición de trabajos

"sourceVolume": "" } ], "readonlyRootFilesystem": true, "privileged": true, "ulimits": [ { "hardLimit": 0, "name": "", "softLimit": 0 } ], "user": "", "instanceType": "" } } ] }, "retryStrategy": { "attempts": 0 }, "timeout": { "attemptDurationSeconds": 0 }}

Note

Puede generar la plantilla de definición de trabajo anterior con el siguiente comando de la AWSCLI:

$ aws batch register-job-definition --generate-cli-skeleton

Parámetros de definición de trabajosLas definiciones de trabajos se dividen en cuatro partes básicas: el nombre de la definición de trabajo, eltipo de definición de trabajo, los valores predeterminados de los marcadores de posición de sustitución deparámetros, y las propiedades del contenedor del trabajo.

Contenido• Nombre de la definición de trabajo (p. 42)• Tipo (p. 43)• Parámetros (p. 43)• Propiedades de contenedor (p. 43)• Propiedades del nodo (p. 50)• Estrategia de reintento (p. 51)• Tiempo de espera (p. 51)

Nombre de la definición de trabajojobDefinitionName

Al registrar una definición de trabajo, es necesario especificar un nombre. Se admiten hasta 128letras (mayúsculas y minúsculas), números, guiones y caracteres de subrayado. A la primeradefinición de trabajo registrado con ese nombre se le da asigna la revisión 1. A las definiciones de

42

Page 48: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioTipo

trabajo posteriores registradas con el mismo nombre se les asignan números de revisión en ordenascendente.

Tipo: cadena

Obligatorio: Sí

Tipotype

Al registrar una definición de trabajo, es necesario especificar el tipo de trabajo. Para obtener másinformación sobre los trabajos paralelos con varios nodos, consulte the section called “Creación deuna definición de trabajo paralelo de varios nodos” (p. 37).

Tipo: String

Valores válidos: container | multinode

Requerido: sí

Parámetrosparameters

Al enviar un trabajo, es posible especificar parámetros que sustituyan los marcadores de posición oignoren los parámetros de definición de trabajo predeterminados. Los parámetros de las solicitudesde envío de trabajo prevalecen sobre los predeterminados de la definición de trabajo. Esto le permiteutilizar la misma definición de trabajo para varios trabajos que utilicen el mismo formato y cambiarvalores en el comando de forma programada en el momento del envío.

Tipo: mapa de cadena a cadena

Obligatorio: No

Al registrar una definición de trabajo, es posible utilizar marcadores de posición de sustitución deparámetros en el campo command de las propiedades de un contenedor de trabajo. Por ejemplo:

"command": [ "ffmpeg", "-i", "Ref::inputfile", "-c", "Ref::codec", "-o", "Ref::outputfile" ]

En el ejemplo anterior, hay marcadores de posición de sustitución de parámetros Ref::inputfile,Ref::codec y Ref::outputfile en el comando. El objeto parameters de la definición de trabajopermite establecer valores predeterminados para estos marcadores de posición. Por ejemplo, paradefinir un valor predeterminado para el marcador de posición Ref::codec, especifique lo siguiente enla definición del trabajo:

"parameters" : {"codec" : "mp4"}

Cuando esta definición de trabajo se envíe para su ejecución, el argumento Ref::codec delcomando del contenedor se sustituirá por el valor predeterminado mp4.

Propiedades de contenedorAl registrar una definición de trabajo, se debe especificar una lista de las propiedades de contenedor quese transmiten al demonio de Docker en una instancia de contenedor cuando se coloca el trabajo. Las

43

Page 49: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioPropiedades de contenedor

siguientes propiedades de contenedor se permiten en una definición de trabajo. Para los trabajos de unsolo nodo, estas propiedades de contenedor se establecen en el nivel de definición de trabajo. En lostrabajos paralelos de varios nodos, las propiedades de contenedor se establecen en el nivel Propiedadesdel nodo (p. 50) para cada grupo de nodos.

command

El comando que se transfiere al contenedor. Este parámetro se mapea a Cmd en la sección Crearun contenedor de la Docker Remote API y al parámetro COMMAND de docker run. Para obtener másinformación sobre el parámetro CMD de Docker, consulte https://docs.docker.com/engine/reference/builder/#cmd.

"command": ["string", ...]

Tipo: matriz de cadenas

Obligatorio: noenvironment

Las variables de entorno a transferir a un contenedor. Este parámetro se mapea a Env en la secciónCrear un contenedor de la Docker Remote API y a la opción --env de docker run.

Important

No es recomendable que utilice variables del entorno en texto sin formato para informaciónconfidencial, como los datos de las credenciales.

Tipo: matriz de pares clave-valor

Obligatorio: noname

El nombre de la variable de entorno.

Tipo: cadena

Obligatorio: sí, si se utiliza environment.value

El valor de la variable de entorno.

Tipo: cadena

Obligatorio: sí, si se utiliza environment.

"environment" : [ { "name" : "string", "value" : "string" }, { "name" : "string", "value" : "string" }]

image

La imagen que se utiliza para iniciar un contenedor. Esta cadena se transfiere directamenteal demonio de Docker. Las imágenes del registro de Docker Hub están disponibles deforma predeterminada. También es posible especificar otros repositorios con repository-url/image:tag. Se permiten hasta 255 letras (mayúsculas y minúsculas), números, guiones,caracteres de subrayado, comas, puntos, barras diagonales y signos numéricos. Este parámetro se

44

Page 50: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioPropiedades de contenedor

mapea a Image en la sección Crear un contenedor de la Docker Remote API y al parámetro IMAGE dedocker run.

Note

La arquitectura de la imagen de Docker debe coincidir con la arquitectura del procesadorde los recursos informáticos en las que estén programadas. Por ejemplo, las imágenes deDocker basadas en ARM solo se pueden ejecutar en recursos informáticos basados en ARM.

• Las imágenes de los repositorios de Amazon ECR utilizan la convenciónde nomenclatura registry/repository:tag. Por ejemplo,aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app:latest

• Las imágenes de los repositorios oficiales de Docker Hub utilizan un solo nombre (por ejemplo,ubuntu o mongo).

• Las imágenes de otros repositorios de Docker Hub se cualifican con un nombre de organización (porejemplo, amazon/amazon-ecs-agent).

• Las imágenes de otros repositorios online se cualifican más con un nombre de dominio (porejemplo, quay.io/assemblyline/ubuntu).

Tipo: cadena

Obligatorio: síjobRoleArn

Al registrar una definición de trabajo, es posible especificar un rol de IAM. El rol le concede alcontenedor de trabajo permisos para llamar a las acciones de la API que se especifican en suspolíticas asociadas, en nombre de quien registra la definición de trabajo. Para obtener másinformación, consulte Roles de IAM para tareas en la Amazon Elastic Container Service DeveloperGuide.

Tipo: cadena

Obligatorio: nomemory

El límite máximo (en MiB) de memoria a presentar al contenedor. Si su contenedor intenta superarla memoria especificada aquí, se cancela el contenedor. Este parámetro se mapea a Memory en lasección Crear un contenedor de la Docker Remote API y a la opción --memory de docker run. Debeespecificar al menos 4 MiB de memoria para un trabajo.

Note

Si está intentando maximizar la utilización de los recursos proporcionando a las tareasla mayor cantidad de memoria posible para un tipo de instancia determinado, consulteAdministración de la memoria en (p. 81).

Tipo: Número entero

Obligatorio: símountPoints

Los puntos de montaje para los volúmenes de datos del contenedor. Este parámetro se correspondecon el objeto Volumes de la sección Crear un contenedor de Docker Remote API y la opción --volume de docker run.

"mountPoints": [ { "sourceVolume": "string", "containerPath": "string",

45

Page 51: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioPropiedades de contenedor

"readOnly": true|false } ]

Tipo: matriz de objetos

Obligatorio: NosourceVolume

El nombre del volumen a montar.

Tipo: cadena

Obligatorio: sí, si se utiliza mountPoints.containerPath

La ruta en el contenedor en la que montar el volumen de host.

Tipo: cadena

Obligatorio: sí, si se utiliza mountPoints.readOnly

Si este valor es true, el acceso del contenedor al volumen es de solo lectura. Si este valor esfalse, el contenedor puede escribir en el volumen. El valor predeterminado es false.

Tipo: booleano

Obligatorio: noprivileged

Cuando este parámetro es verdadero, al contenedor se le conceden privilegios elevados en lainstancia de contenedor de host, similares a los de un usuario root. Este parámetro se correspondecon el objeto Privileged de la sección Crear un contenedor de Docker Remote API y la opción --privileged de docker run.

"privileged": true|false

Tipo: booleano

Obligatorio: noreadonlyRootFilesystem

Cuando este parámetro es verdadero, al contenedor se le concede acceso de solo lectura a susistema de archivos raíz. Este parámetro se mapea a ReadonlyRootfs en la sección Crear uncontenedor de la Docker Remote API y a la opción --read-only de docker run.

"readonlyRootFilesystem": true|false

Tipo: booleano

Obligatorio: noulimits

Una lista de valores para ulimits a definir en el contenedor. Este parámetro se mapea a Ulimitsen la sección Crear un contenedor de la Docker Remote API y a la opción --ulimit de docker run.

46

Page 52: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioPropiedades de contenedor

"ulimits": [ { "name": string, "softLimit": integer, "hardLimit": integer } ... ]

Tipo: matriz de objetos

Obligatorio: Noname

El valor type de ulimit.

Tipo: cadena

Obligatorio: sí, si se utiliza ulimits.hardLimit

El límite máximo para el tipo de ulimit.

Tipo: Número entero

Obligatorio: sí, si se utiliza ulimits.softLimit

El límite flexible para el tipo de ulimit.

Tipo: Número entero

Obligatorio: sí, si se utiliza ulimits.user

El nombre de usuario que utilizar dentro del contenedor. Este parámetro se mapea a User en lasección Crear un contenedor de la Docker Remote API y a la opción --user de docker run.

"user": "string"

Tipo: cadena

Obligatorio: noresourceRequirements

Indica el número de GPU que se reservará para su contenedor.

"resourceRequirements" : [ { "type": "GPU", "value": "number" } ]

Tipo: matriz de objetos

Obligatorio: No

47

Page 53: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioPropiedades de contenedor

type

El único valor admitido es GPU.

Tipo: cadena

Obligatorio: sí, si se utiliza resourceRequirements.value

El número de GPU físicas que requerirá cada contenedor.

Tipo: cadena

Obligatorio: sí, si se utiliza resourceRequirements.linuxParameters

Modificaciones específicas de Linux que se aplican al contenedor, como los detalles de asignación dedispositivos.

"linuxParameters": { "devices": [ { "hostPath": "string", "containerPath": "string", "permissions": [ "READ", "WRITE", "MKNOD" ] } ] }

Tipo: objeto LinuxParameters

Requerido: Nodevices

Lista de dispositivos asignados en el contenedor.

Tipo: matriz de objetos Device

Obligatorio: nohostPath

Ruta del host en la que está disponible el dispositivo.

Tipo: String

Obligatorio: sícontainerPath

Ruta del contenedor en la que se expone el dispositivo. Si no se especifica, el dispositivo seexpone en la misma ruta que la ruta del host.

Tipo: String

Obligatorio: nopermissions

Permisos del dispositivo en el contenedor. Si no se especifica, los permisos se establecen enREAD, WRITE y MKNOD.

48

Page 54: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioPropiedades de contenedor

Tipo: matriz de cadenas

Requerido: No

Valores válidos: READ | WRITE | MKNODvcpus

El número de vCPU reservado para el contenedor. Este parámetro se mapea a CpuShares en lasección Crear un contenedor de la Docker Remote API y a la opción --cpu-shares de docker run.Cada vCPU es equivalente a 1 024 cuotas de CPU. Debe especificar al menos una vCPU.

Tipo: Número entero

Obligatorio: sívolumes

Al registrar una definición de trabajos, puede especificar una lista de los volúmenes que se pasan aldemonio de Docker en una instancia de contenedor. Los siguientes parámetros están permitidos enlas propiedades de contenedor:

[ { "name": "string", "host": { "sourcePath": "string" } }]

name

El nombre del volumen. Se admiten hasta 255 letras (mayúsculas y minúsculas), números,guiones y caracteres de subrayado. Se hace referencia a este nombre en el parámetrosourceVolume de la definición de contenedor mountPoints.

Tipo: cadena

Obligatorio: síhost

El contenido del parámetro host determina si el volumen de datos persiste en la instancia decontenedor del host y dónde se almacena. Si el parámetro host está vacío, el demonio de Dockerle asigna una ruta de host al volumen de datos. Sin embargo, no se garantiza que los datospersistan después de que el contenedor asociado deje de funcionar.

Tipo: objeto

Obligatorio: NosourcePath

La ruta de la instancia de contenedor del host que se le presenta al contenedor. Si esteparámetro está vacío, el demonio de Docker asigna una ruta de host.

Si el parámetro host contiene una ubicación de ubicación de archivos sourcePath, elvolumen de datos persiste en la ubicación especificada en la instancia de contenedor delhost hasta que la elimine manualmente. Si el valor sourcePath no existe en la instancia decontenedor del host, el demonio de Docker la crea. Si la ubicación existe, el contenido de lacarpeta de la ruta de origen se exporta.

49

Page 55: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioPropiedades del nodo

Tipo: cadena

Obligatorio: no

Propiedades del nodonodeProperties

Al registrar una definición de trabajo paralelo de varios nodos, debe especificar una lista de laspropiedades de los nodos que determinen el número de nodos que se van a utilizar en el trabajo, elíndice de nodo principal y los distintos rangos de nodos que se van a emplear. En una definición detrabajo, se permiten las siguientes propiedades de nodo. Para obtener más información, consulteTrabajos paralelos de varios nodos (p. 29).

Tipo: objeto NodeProperties

Obligatorio: nomainNode

Especifica el índice de nodo del nodo principal de un trabajo paralelo de varios nodos.

Tipo: Número entero

Obligatorio: sínumNodes

El número de nodos asociados a un trabajo paralelo de varios nodos.

Tipo: Número entero

Obligatorio: sínodeRangeProperties

Una lista de rangos de nodos y sus propiedades asociados a un trabajo paralelo de varios nodos.

Tipo: matriz de objetos NodeRangeProperty

Obligatorio: sítargetNodes

El rango de nodos, utilizando valores de índice de nodo. Un rango de 0:3 indica nodos convalores de índice de 0 a 3. Si se omite el valor inicial del rango (:n), se utiliza 0 para iniciarel rango. Si se omite el valor final del rango (n:), se utiliza el índice de nodo más alto posiblepara finalizar el rango. Los rangos de nodos acumulativos se deben tener en cuenta todoslos nodos (0:n). Puede anidar rangos de nodos, por ejemplo 0:10 y 4:5, en cuyo caso laspropiedades del rango 4:5 anulan las propiedades del rango 0:10.

Tipo: cadena

Obligatorio: nocontainer

Los detalles del contenedor del rango de nodos. Para obtener más información, consultePropiedades de contenedor (p. 43).

Tipo: objeto ContainerProperties

Obligatorio: no

50

Page 56: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioEstrategia de reintento

Estrategia de reintentoretryStrategy

Al registrar una definición de trabajo, se puede especificar una estrategia de reintento para aplicarlaa los trabajos fallidos que se envíen con esta definición de trabajo. De forma predeterminada, cadatrabajo se intenta una vez. Si especifica más de un intento, el trabajo lo intenta de nuevo si se produceun error (por ejemplo, si devuelve un código de salida distinto de cero o si la instancia de contenedorse termina). Para obtener más información, consulte Reintentos automáticos de trabajo (p. 20).

Tipo: objeto RetryStrategy

Obligatorio: noattempts

La cantidad de veces que toma pasar un trabajo al estado RUNNABLE. Es posible especificar entre1 y 10 intentos. Si attempts es mayor que uno y el envío del trabajo falla, se reintenta tantasveces como se haya especificado hasta que pase a RUNNABLE.

"attempts": integer

Tipo: Número entero

Obligatorio: no

Tiempo de esperatimeout

Puede configurar una duración de tiempo de espera para sus trabajos de modo que si un trabajo seejecuta durante más tiempo, AWS Batch lo finaliza. Para obtener más información, consulte Tiemposde espera de trabajo (p. 21). Si un trabajo se termina debido a que se ha agotado el tiempo de espera,no se vuelve a intentar. Cualquier configuración de tiempo de espera que se especifique durante unaoperación SubmitJob sustituye la configuración de tiempo de espera definida aquí. Para obtener másinformación, consulte Tiempos de espera de trabajo (p. 21).

Tipo: objeto JobTimeout

Obligatorio: noattemptDurationSeconds

La duración en segundos (medida a partir de la marca de tiempo startedAt del intento detrabajo) después de la cual AWS Batch termina los trabajos pendientes. El valor mínimo deltiempo de espera es 60 segundos.

Tipo: Número entero

Obligatorio: no

Ejemplos de definiciones de trabajoLos ejemplos de definiciones de trabajo a continuación ilustran cómo utilizar patrones comunes como, porejemplo, variables de entorno, sustituciones de parámetros y montajes de volúmenes.

51

Page 57: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioUtilización de variables de entorno

Utilización de variables de entornoEn el siguiente ejemplo, la definición de trabajo utiliza variables de entorno para especificar un tipo dearchivo y un URL de Amazon S3. Este ejemplo se ha extraído del artículo de blog de informática tituladoCreating a Simple "Fetch & Run" AWS Batch Job. El script fetch_and_run.sh que se describe en elartículo utiliza estas variables de entorno para descargar el script myjob.sh de S3 y declarar su tipo dearchivo.

Si bien en este ejemplo el comando y las variables de entorno están codificados de forma rígida enla definición de trabajo, es posible enviar un trabajo con esta definición y especificar sustituciones decomandos y de variables de entorno para que la definición de trabajo sea más versátil.

{ "jobDefinitionName": "fetch_and_run", "type": "container", "containerProperties": { "image": "123456789012.dkr.ecr.us-east-1.amazonaws.com/fetch_and_run", "vcpus": 2, "memory": 2000, "command": [ "myjob.sh", "60" ], "jobRoleArn": "arn:aws:iam::123456789012:role/AWSBatchS3ReadOnly", "environment": [ { "name": "BATCH_FILE_S3_URL", "value": "s3://my-batch-scripts/myjob.sh" }, { "name": "BATCH_FILE_TYPE", "value": "script" } ], "user": "nobody" }}

Cómo usar la sustitución de parámetrosEl siguiente ejemplo de definición de trabajo ilustra cómo permitir la sustitución de parámetros y cómoestablecer valores predeterminados.

Las declaraciones Ref:: de la sección command se utilizan para definir marcadores de posición parasustituir parámetros. Al enviar un trabajo con esta definición de trabajo, se especifican las sustituciones deparámetros que ocuparán dichos valores, como inputfile y outputfile. La sección parameters acontinuación establece un valor predeterminado para codec, pero es posible invalidar ese parámetro sifuera necesario.

Para obtener más información, consulte Parámetros (p. 43).

{ "jobDefinitionName": "ffmpeg_parameters", "type": "container", "parameters": {"codec": "mp4"}, "containerProperties": { "image": "my_repo/ffmpeg", "vcpus": 2, "memory": 2000, "command": [

52

Page 58: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioFuncionalidad de GPU de prueba

"ffmpeg", "-i", "Ref::inputfile", "-c", "Ref::codec", "-o", "Ref::outputfile" ], "jobRoleArn": "arn:aws:iam::123456789012:role/ECSTask-S3FullAccess", "user": "nobody" }}

Funcionalidad de GPU de pruebaEn el siguiente ejemplo, la definición de trabajo prueba si la AMI de carga de trabajo de GPU descritaen Cómo utilizar una AMI de carga de trabajo de GPU (p. 64) se ha configurado correctamente. Estadefinición de trabajo de ejemplo ejecuta el ejemplo del clasificador Tensorflow deep MNIST de GitHub.

{ "containerProperties": { "image": "tensorflow/tensorflow:1.8.0-devel-gpu", "vcpus": 8, "command": [ "sh", "-c", "cd /tensorflow/tensorflow/examples/tutorials/mnist; python mnist_deep.py" ], "memory": 32000 }, "type": "container", "jobDefinitionName": "tensorflow_mnist_deep"}

Es posible crear un archivo con el texto JSON indicado arriba, que se denominetensorflow_mnist_deep.json y, a continuación, registrar una definición de trabajo de AWS Batch conel siguiente comando:

aws batch register-job-definition --cli-input-json file://tensorflow_mnist_deep.json

Trabajo paralelos de varios nodosLa definición de trabajo de ejemplo siguiente muestra un trabajo paralelo de varios nodos. Para obtenermás información, consulte Creación de un flujo de trabajo de dinámica molecular estrechamenterelacionado con trabajos paralelos de múltiples nodos en AWS Batch en el blog de AWS Compute.

{ "jobDefinitionName": "gromacs-jobdef", "jobDefinitionArn": "arn:aws:batch:us-east-2:123456789012:job-definition/gromacs-jobdef:1", "revision": 6, "status": "ACTIVE", "type": "multinode", "parameters": {}, "nodeProperties": { "numNodes": 2, "mainNode": 0, "nodeRangeProperties": [ {

53

Page 59: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioTrabajo paralelos de varios nodos

"targetNodes": "0:1", "container": { "image": "123456789012.dkr.ecr.us-east-2.amazonaws.com/gromacs_mpi:latest", "vcpus": 8, "memory": 24000, "command": [], "jobRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole", "ulimits": [], "instanceType": "p3.2xlarge" } } ] }}

54

Page 60: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioCómo crear de una cola de trabajos

Colas de trabajoLos trabajos se envían a una cola de trabajos, donde permanecen hasta que pueden programarse paraejecutarse en un entorno informático. Una cuenta de AWS puede tener varias colas de trabajo. Porejemplo, puede crear una cola que utilice instancias bajo demanda de Amazon EC2 para trabajos de altaprioridad y otra cola que utilice instancias de spot de Amazon EC2 para trabajos de baja prioridad. Lascolas de trabajo tienen una prioridad que el programador utiliza para determinar qué cola debe evaluarseprimero para su ejecución.

Cómo crear de una cola de trabajosAntes de enviar trabajos en AWS Batch, es necesario crear una cola de trabajo. Al crear una cola detrabajos, se asocian uno o más entornos informáticos a la cola y se les asigna un orden de preferencia.

También se define una prioridad en la cola de trabajos, que determina el orden en el que el programadorde AWS Batch coloca trabajos en sus entornos informáticos asociados. Por ejemplo, si un entornoinformático se asocia a más de una cola de trabajos, se le da preferencia a la cola de trabajos de mayorprioridad para programar trabajos en ese entorno.

Para crear una cola de trabajos

1. Abra la consola de AWS Batch en https://console.aws.amazon.com/batch/.2. En la barra de navegación, seleccione la región a utilizar.3. En el panel de navegación, seleccione Colas de trabajo, Crear cola.4. En Nombre de la cola, escriba un nombre único para su cola de trabajos.5. Asegúrese de que Enable job queue (Habilitar cola de trabajos) esté seleccionado para que su cola de

trabajos pueda aceptar envíos de trabajos.6. En Prioridad, escriba un valor entero para la prioridad de la cola de trabajos. Las colas de trabajo

con mayor prioridad (o con un valor entero mayor en el parámetro priority) se evalúan primero alasociarse con un mismo entorno informático. La prioridad se determina en orden descendente; porejemplo, a una cola de trabajos con una prioridad valor de 10 se le dará preferencia por encima deuna cola de trabajos cuyo valor de prioridad sea 1.

7. En la sección Connected compute environments for this queue (Entornos informáticos conectadospara esta cola), seleccione uno o varios entornos informáticos de la lista para asociarlos a la cola detrabajos, en el orden en el que la cola debe intentar la colocación. El programador de trabajos utilizael orden del entorno informático para determinar qué entorno informático debería ejecutar un trabajodeterminado. Los entornos informáticos deben estar en estado VALID antes de asociarlos a una colade trabajos. Puede asociar hasta tres entornos informáticos con una cola de trabajos.

Note

Todos los entornos informáticos asociados a una cola de trabajos deben compartir lamisma arquitectura. AWS Batch no admite la mezcla de tipos de arquitecturas de entornosinformáticos en una única cola de trabajos.

Es posible cambiar el orden de entornos informáticos con las flechas hacia arriba y abajo situadasjunto a la columna Servicio de la tabla.

8. Elija Crear para crear la cola de trabajos y terminar.

55

Page 61: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioPlantillas de cola de trabajos

Plantillas de cola de trabajosA continuación se muestra una plantilla de cola de trabajos vacía. Utilice esta plantilla para crear la cola detrabajos, que posteriormente se puede guardar en un archivo y utilizarse con la opción de la AWS CLI --cli-input-json. Para obtener más información sobre estos parámetros, consulte CreateJobQueue enla Referencia de la API de AWS Batch.

{ "jobQueueName": "", "state": "", "priority": 0, "computeEnvironmentOrder": [{ "order": 0, "computeEnvironment": "" }]}

Note

Puede generar la plantilla de cola de trabajos mostrada anteriormente con el siguiente comandode la AWS CLI.

$ aws batch create-job-queue --generate-cli-skeleton

Parámetros de cola de trabajosLas colas de trabajo se dividen en cuatro componentes básicos: nombre, estado, prioridad y orden delentorno informático.

Nombre de la cola de trabajosjobQueueName

Nombre del entorno informático. Se admiten hasta 128 letras (mayúsculas y minúsculas), números ycaracteres de subrayado.

Tipo: cadena

Obligatorio: Sí

Estadostate

Estado de la cola de trabajos. Si el estado es ENABLED (el valor predeterminado), puede aceptartrabajos.

Tipo: cadena

Valores válidos: ENABLED | DISABLED

Obligatorio: No

56

Page 62: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioPrioridad

Prioridadpriority

Prioridad de la cola de trabajo. Las colas con mayor prioridad (o con un valor entero mayor en elparámetro priority) se evalúan primero al asociarse con un mismo entorno informático. La prioridadse determina en orden descendente; por ejemplo, a una cola de trabajos con una prioridad valor de 10se le dará preferencia por encima de una cola de trabajos cuyo valor de prioridad sea 1.

Tipo: Número entero

Obligatorio: Sí

Orden del entorno informáticocomputeEnvironmentOrder

El conjunto de entornos informáticos asignado a una cola de trabajos y el orden de cada uno enfunción del otro. El programador de trabajos utiliza este parámetro para determinar qué entornoinformático debería ejecutar un trabajo determinado. Los entornos informáticos deben estar en estadoVALID antes de asociarlos a una cola de trabajos. Puede asociar hasta tres entornos informáticos conuna cola de trabajos.

Note

Todos los entornos informáticos asociados a una cola de trabajos deben compartir lamisma arquitectura. AWS Batch no admite la mezcla de tipos de arquitecturas de entornosinformáticos en una única cola de trabajos.

Tipo: matriz de objetos ComputeEnvironmentOrder

Obligatorio: sícomputeEnvironment

El Nombre de recurso de Amazon (ARN) del entorno informático.

Tipo: cadena

Obligatorio: síorder

El orden del entorno informático. Los entornos informáticos se intentan en orden ascendente. Porejemplo, si hay dos entornos informáticos asociados a una cola de trabajos, se intenta primerocolocar el trabajo del entorno informático del valor entero order más bajo.

57

Page 63: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuario

Programación de trabajosEl programador de AWS Batch evalúa cuándo, dónde y cómo ejecutar los trabajos que se han enviado auna cola de trabajos. Los trabajos se ejecutan aproximadamente en el orden en que se envían siempreque todas las dependencias de demás trabajos se hayan cumplido.

58

Page 64: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioEntornos informáticos administrados

Entornos informáticosLas colas de trabajos se asignan a uno o varios entornos informáticos. Los entornos informáticos incluyeninstancias de contenedor de Amazon ECS que se utilizan para ejecutar trabajos por lotes en contenedores.Un entorno informático determinado también puede asignarse a una o varias colas de trabajos. Dentrode una cola de trabajos, los entornos informáticos asociados tienen un orden que el programador utilizapara determinar dónde colocar los trabajos que están listos para ejecutarse. Si el entorno informáticotiene recursos gratuitos, el trabajo se programa para una instancia de contenedor dentro de dichoentorno informático. Si el entorno informático no puede proporcionar un recurso informático apropiado, elprogramador intenta ejecutar el trabajo en el siguiente entorno informático.

Temas• Entornos informáticos administrados (p. 59)• Entornos informáticos no administrados (p. 60)• AMI de recursos informáticos (p. 60)• Compatibilidad con las plantillas de lanzamiento (p. 68)• Cómo crear un entorno informático (p. 71)• Parámetros de un entorno informático (p. 76)• Estrategias de asignación (p. 80)• Administración de la memoria en (p. 81)

Entornos informáticos administradosLos entornos informáticos administrados permiten describir los requisitos empresariales. En un entornoinformático administrado, AWS Batch gestiona la capacidad y los tipos de instancia de los recursosinformáticos en función de la especificación de estos recursos que se haya definido al crear el entorno.Puede elegir entre utilizar instancias bajo demanda de utilizar Amazon EC2 o instancias de spot enel entorno informático administrado. Si lo desea, puede configurar un precio máximo, de modo quelas instancias de spot solo se lancen cuando el precio de la instancia de spot esté por debajo de undeterminado porcentaje del precio bajo demanda.

Los entornos informáticos administrados lanzan instancias de contenedor de Amazon ECS en las VPCy en las subredes que se especifiquen al crear el entorno informático. Las instancias de contenedor deAmazon ECS necesitan acceso de red externo para comunicarse con el punto de enlace de servicio deAmazon ECS. Si las instancias de contenedor no tienen direcciones IP públicas (porque las subredeselegidas no las proporcionan de forma predeterminada), deberán utilizar conversión de dirección de red(NAT) para proporcionar este acceso. Para obtener más información, consulte Gateways NAT en la Guíadel usuario de Amazon VPC. Para obtener ayuda para crear una VPC, consulte Tutorial: Creación de unaVPC con subredes públicas y privadas para sus (p. 111).

De manera predeterminada, los entornos informáticos administrados de AWS Batch usan una versiónaprobada y reciente de la AMI optimizada para Amazon ECS para los recursos informáticos. Sin embargo,es posible que desee crear sus propias AMI para utilizarlas en sus entornos informáticos administrados porvarias razones. Para obtener más información, consulte AMI de recursos informáticos (p. 60).

Note

AWS Batch no actualiza las AMI en un entorno informático una vez que se ha creado este (porejemplo, cuando hay disponible una versión más reciente de la AMI optimizada para Amazon

59

Page 65: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioEntornos informáticos no administrados

ECS). El usuario es el responsable de la administración del sistema operativo invitado (incluidaslas actualizaciones y los parches de seguridad) y de cualquier otra utilidad o software deaplicaciones que se instale en los recursos informáticos. Para utilizar una nueva AMI con lostrabajos de AWS Batch:

1. Cree un nuevo entorno informático con la nueva AMI.2. Añada el entorno informático a una cola de trabajos existente.3. Quite el entorno informático antiguo de la cola de trabajos.4. Elimine el entorno informático antiguo.

Entornos informáticos no administradosEn un entorno de informática no administrado, usted gestiona sus propios recursos informáticos. Debeasegurarse de que la AMI que utiliza para sus recursos informáticos cumple la especificación de la AMIde instancia de contenedor de Amazon ECS. Para obtener más información, consulte Especificaciones deAMI de recursos informáticos (p. 61) y Cómo crear una AMI de recursos informáticos (p. 62).

Una vez que haya creado su entorno informático sin administrar, utilice la operación de la APIDescribeComputeEnvironments para visualizar los detalles de dicho entorno. Encuentre el clúster deAmazon ECS asociado al entorno y, a continuación, lance manualmente las instancias de contenedor enese clúster de Amazon ECS.

El siguiente comando de la AWS CLI también proporciona el ARN del clúster de Amazon ECS:

aws batch describe-compute-environments --compute-environments unmanagedCE --query computeEnvironments[].ecsClusterArn

Para obtener más información, consulte Lanzamiento de una instancia de contenedor de Amazon ECSen la Amazon Elastic Container Service Developer Guide. Al lanzar los recursos informáticos, especifiqueel ARN del clúster de Amazon ECS que los recursos deben registrar con los siguientes datos de usuariode Amazon EC2. Sustituya ecsClusterArn con el ARN del clúster obtenido mediante el comandopreviamente mencionado.

#!/bin/bashecho "ECS_CLUSTER=ecsClusterArn" >> /etc/ecs/ecs.config

AMI de recursos informáticosDe manera predeterminada, los entornos informáticos administrados de AWS Batch usan una versiónaprobada y reciente de la AMI optimizada para Amazon ECS para los recursos informáticos. Sin embargo,es posible que desee crear sus propias AMI para utilizarlas en sus entornos informáticos administrados yno administrados por las siguientes razones:

• Aumentar el tamaño de su almacenamiento AMI raíz o volúmenes de datos• Añadir volúmenes de almacenamiento de instancias para los tipos de instancias de Amazon EC2

admitidos• Configurar el agente de contenedores de Amazon ECS con opciones personalizadas• Configurar Docker para utilizar opciones personalizadas• Configurar una AMI de carga de trabajo de GPU que permite a los contenedores acceder a hardware de

GPU en los tipos de instancias de Amazon EC2 admitidos

60

Page 66: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioEspecificaciones de AMI de recursos informáticos

Temas• Especificaciones de AMI de recursos informáticos (p. 61)• Cómo crear una AMI de recursos informáticos (p. 62)• Cómo utilizar una AMI de carga de trabajo de GPU (p. 64)

Especificaciones de AMI de recursos informáticosLa especificación de AMI de recursos informáticos de AWS Batch consta de lo siguiente:

Obligatorio

• Una moderna distribución de Linux que ejecuta al menos la versión 3,10 de kernel de Linux en una AMIde tipo de virtualización HVM.

Important

Los trabajos paralelos de varios nodos solo se pueden ejecutar en recursos informáticos quese hayan lanzado en una instancia de Amazon Linux con el paquete ecs-init instalado.Recomendamos utilizar la AMI optimizada para Amazon ECS predeterminada al crear elentorno informático (es decir, no especificar una AMI personalizada). Para obtener másinformación, consulte Trabajos paralelos de varios nodos (p. 29).

• El agente de contenedor de Amazon ECS (preferiblemente la versión más reciente). Para obtener másinformación, consulte Instalación del agente de contenedor de Amazon ECS en la Amazon ElasticContainer Service Developer Guide.

• El controlador de registros awslogs debe especificarse como un controlador de registros disponiblecon la variable de entorno ECS_AVAILABLE_LOGGING_DRIVERS cuando el agente de contenedor deAmazon ECS se inicia. Para obtener más información, consulte Configuración del agente de contenedorde Amazon ECS en la Amazon Elastic Container Service Developer Guide.

• Un demonio de Docker que ejecuta al menos la versión 1.9, y cualquier dependencia de tiempoejecución de Docker. Para obtener más información, consulte Check runtime dependencies en ladocumentación de Docker.

Note

Para conseguir la mejor experiencia, le recomendamos la versión de Docker que se envía y seprueba con la versión de agente de Amazon ECS correspondiente que está utilizando. Paraobtener más información, consulte Versiones del agente de contenedor de Amazon ECS en laAmazon Elastic Container Service Developer Guide.

Recomendado

• Un proceso de inicialización y nanny para ejecutar y monitorizar el agente de Amazon ECS. La AMIoptimizada para Amazon ECS usa el proceso upstart ecs-init y otros sistemas operativos puedenutilizar systemd. Para consultar diversos ejemplos de scripts de configuración de datos de usuarioque utilizan systemd para iniciar y monitorizar el agente de contenedor de Amazon ECS, lea Scriptsde configuración de datos de usuario de instancia de contenedor de ejemplo en la Amazon ElasticContainer Service Developer Guide. Para obtener más información sobre ecs-init, consulte elproyecto ecs-init en GitHub. Los entornos informáticos administrados requieren, como mínimo, queel agente de Amazon ECS se inicie al arrancar. Si el agente de Amazon ECS no se ejecuta en el recursoinformático, no puede aceptar trabajos desde AWS Batch.

La AMI optimizada para Amazon ECS está preconfigurada con estos requisitos y recomendaciones.Recomendamos que utilice la AMI optimizada para Amazon ECS o una AMI de Amazon Linux con elpaquete ecs-init instalado para sus recursos informáticos. Elija otra AMI si la aplicación requiere un

61

Page 67: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioCómo crear una AMI de recursos informáticos

sistema operativo específico o una versión de Docker que aún no esté disponible en estas AMI. Paraobtener más información, consulte la sección sobre Versiones de AMI optimizadas para Amazon ECS en laAmazon Elastic Container Service Developer Guide.

Cómo crear una AMI de recursos informáticosEs posible crear sus propias AMI de recursos informáticos personalizadas para usarlas en entornosinformáticos administrados y sin administrar, siempre y cuando siga la Especificaciones de AMI derecursos informáticos (p. 61). Después de crear la AMI personalizada, puede crear un entornoinformático que utilice dicha AMI, asociarla con una cola de trabajos y, a continuación, iniciar el envío detrabajos a dicha cola.

Para crear una AMI de recursos informáticos personalizada

1. Elija una AMI base como punto de partida. La AMI base debe utilizar virtualización HVM y no puedeser una AMI de Windows.

Note

La AMI que elija para un entorno informático debe coincidir con la arquitectura de los tiposde instancias que tenga previsto utilizar para dicho entorno informático. Por ejemplo, sisu entorno informático utiliza tipos de instancias A1, la AMI de recursos informáticos queelija debe admitir instancias ARM. Amazon ECS ofrece versiones x86 y ARM de la AMI deAmazon Linux 2 optimizada para Amazon ECS. Para obtener más información, consulteVersiones de la AMI de Amazon Linux 2 optimizadas para Amazon ECS en la Amazon ElasticContainer Service Developer Guide.

La AMI optimizada para Amazon ECS es la AMI predeterminada para recursos informáticos enentornos informáticos administrados. La AMI optimizada para Amazon ECS está preconfigurada eingenieros de AWS la han probado en AWS Batch. Es la AMI más sencilla para comenzar y para quelos recursos informáticos funcionen en AWS rápidamente. Para obtener más información, consultela sección sobre Versiones de AMI optimizadas para Amazon ECS en la Amazon Elastic ContainerService Developer Guide.

También puede elegir otra variante de Amazon Linux e instalar el paquete ecs-init con el siguientecomando:

sudo yum install -y ecs-init

Por ejemplo, si desea ejecutar cargas de trabajo de GPU en los recursos informáticos de AWS Batch,puede empezar con la AMI de Amazon Linux Deep Learning como punto de partida y configurarla parapoder ejecutar trabajos de AWS Batch. Para obtener más información, consulte Cómo utilizar una AMIde carga de trabajo de GPU (p. 64).

Important

Si elige una AMI base incompatible con el paquete ecs-init, debe configurar una formade iniciar el agente de Amazon ECS al arrancar y mantenerla en ejecución. Para consultardiversos ejemplos de scripts de configuración de datos de usuario que utilizan systemd parainiciar y monitorizar el agente de contenedor de Amazon ECS, lea Scripts de configuraciónde datos de usuario de instancia de contenedor de ejemplo en la Amazon Elastic ContainerService Developer Guide.

2. Lance una instancia desde su AMI base seleccionada con las opciones de almacenamientoadecuadas para su AMI. Es posible configurar el tamaño y la cantidad de volúmenes de Amazon EBSo de almacenamiento de instancias, si el tipo de instancia que ha seleccionado es compatible conellos. Para obtener más información, consulte las secciones Lanzamiento de una instancia y Almacénde instancias Amazon EC2 en la Guía del usuario de Amazon EC2 para instancias de Linux.

62

Page 68: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioCómo crear una AMI de recursos informáticos

3. Conéctese a la instancia con SSH y llevar a cabo las tareas de configuración que sean necesarias,como, por ejemplo:

• Instalar el agente de contenedor de Amazon ECS Para obtener más información, consulteInstalación del agente de contenedor de Amazon ECS en la Amazon Elastic Container ServiceDeveloper Guide.

• Configurar un script para formatear volúmenes de almacén de instancias• Añadir un volumen de almacén de instancias o sistemas de archivos de Amazon EFS al archivo /etc/fstab para que puedan montarse al arrancar.

• Configurar opciones de Docker (activar la depuración, ajustar el tamaño de la imagen base, etc.).• Instalar paquetes o copiar archivos.

Para obtener más información, consulte Conexión a la instancia de Linux mediante SSH en la Guía delusuario de Amazon EC2 para instancias de Linux.

4. Si ha iniciado el agente de contenedor Amazon ECS en la instancia, debe detenerla y eliminar elarchivo de comprobación de datos persistentes antes de crear su AMI; de lo contrario, el agente no seiniciará en las instancias lanzadas desde la AMI.

a. Detenga el agente de contenedor de Amazon ECS.

• Amazon ECS-optimized Amazon Linux 2 AMI:

sudo systemctl stop ecs

• Amazon ECS-optimized Amazon Linux AMI:

sudo stop ecs

b. Elimine el archivo de comprobación de datos persistentes. De forma predeterminada, este archivose encuentra en /var/lib/ecs/data/ecs_agent_data.json. Utilice el siguiente comandopara eliminar el archivo.

sudo rm -rf /var/lib/ecs/data/ecs_agent_data.json

5. Cree una nueva AMI desde su instancia en ejecución. Para obtener más información, consulteCreación de una AMI de Linux con el respaldo de Amazon EBS en la Guía del usuario de AmazonEC2 para instancias de Linux.

Para utilizar la AMI nueva con AWS Batch

1. Una vez completado el proceso de creación de la AMI, cree un entorno informático con la AMI nueva(asegúrese de seleccionar Habilitar ID de AMI especificada por el usuario y especifique el ID de la AMIpersonalizada en Step 5.j (p. 73)). Para obtener más información, consulte Cómo crear un entornoinformático (p. 71).

Note

La AMI que elija para un entorno informático debe coincidir con la arquitectura de los tiposde instancias que tenga previsto utilizar para dicho entorno informático. Por ejemplo, sisu entorno informático utiliza tipos de instancias A1, la AMI de recursos informáticos queelija debe admitir instancias ARM. Amazon ECS ofrece versiones x86 y ARM de la AMI deAmazon Linux 2 optimizada para Amazon ECS. Para obtener más información, consulteVersiones de la AMI de Amazon Linux 2 optimizadas para Amazon ECS en la Amazon ElasticContainer Service Developer Guide.

63

Page 69: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioCómo utilizar una AMI de carga de trabajo de GPU

2. Cree una cola de trabajos y asocie el entorno informático nuevo. Para obtener más información,consulte Cómo crear de una cola de trabajos (p. 55).

Note

Todos los entornos informáticos asociados a una cola de trabajos deben compartir lamisma arquitectura. AWS Batch no admite la mezcla de tipos de arquitecturas de entornosinformáticos en una única cola de trabajos.

3. (Opcional) Envíe un trabajo de muestra a la cola de trabajos nueva. Para obtener más información,consulte Ejemplos de definiciones de trabajo (p. 51), Cómo crear una definición de trabajo (p. 34) yEnviar un trabajo (p. 15).

Cómo utilizar una AMI de carga de trabajo de GPUPara ejecutar cargas de trabajo de GPU en los recursos informáticos de AWS Batch, debe utilizar unaAMI compatible con GPU. Para obtener más información, consulte Uso de GPU en Amazon ECS y AMIoptimizadas para Amazon ECS en la Amazon Elastic Container Service Developer Guide.

En entornos informáticos administrados, si el entorno informático especifica cualquier familia de instanciao tipo de instancia de p2, p3, g3, g3s o g4, AWS Batch utiliza una AMI optimizada para GPU de AmazonECS.

En entornos informáticos no administrados, se recomienda una AMI optimizada para GPU de AmazonECS. Puede utilizar las operaciones del almacén de parámetros de AWS Command Line Interface o AWSAdministrador de sistemas GetParameter, GetParameters y GetParametersByPath para recuperar losmetadatos de las AMI optimizadas para GPU de Amazon ECS recomendadas.

En los siguientes ejemplos se muestra el uso de GetParameter.

AWS CLI

$ aws ssm get-parameter --name /aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended \ --region us-east-2 --output json

El resultado incluye la información de AMI en el parámetro de valor:

{ "Parameter": { "Name": "/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended", "LastModifiedDate": 1555434128.664, "Value": "{\"schema_version\":1,\"image_name\":\"amzn2-ami-ecs-gpu-hvm-2.0.20190402-x86_64-ebs\",\"image_id\":\"ami-083c800fe4211192f\",\"os\":\"Amazon Linux 2\",\"ecs_runtime_version\":\"Docker version 18.06.1-ce\",\"ecs_agent_version\":\"1.27.0\"}", "Version": 9, "Type": "String", "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended" }}

Python

from __future__ import print_function

import jsonimport boto3

64

Page 70: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioCómo utilizar una AMI de carga de trabajo de GPU

ssm = boto3.client('ssm', 'us-east-2')

response = ssm.get_parameter(Name='/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended')jsonVal = json.loads(response['Parameter']['Value'])print("image_id = " + jsonVal['image_id'])print("image_name = " + jsonVal['image_name'])

El resultado solo incluye el ID y el nombre de AMI:

image_id = ami-083c800fe4211192fimage_name = amzn2-ami-ecs-gpu-hvm-2.0.20190402-x86_64-ebs

En los siguientes ejemplos se muestra el uso de GetParameters.

AWS CLI

$ aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_name \ /aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_id \ --region us-east-2 --output json

El resultado incluye todos los metadatos de cada uno de los parámetros:

{ "InvalidParameters": [], "Parameters": [ { "Name": "/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_id", "LastModifiedDate": 1555434128.749, "Value": "ami-083c800fe4211192f", "Version": 9, "Type": "String", "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_id" }, { "Name": "/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_name", "LastModifiedDate": 1555434128.712, "Value": "amzn2-ami-ecs-gpu-hvm-2.0.20190402-x86_64-ebs", "Version": 9, "Type": "String", "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_name" } ]}

Python

from __future__ import print_function

import boto3

ssm = boto3.client('ssm', 'us-east-2')

response = ssm.get_parameters(

65

Page 71: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioCómo utilizar una AMI de carga de trabajo de GPU

Names=['/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_name', '/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_id'])for parameter in response['Parameters']: print(parameter['Name'] + " = " + parameter['Value'])

El resultado incluye el ID de AMI y el nombre de AMI, con la ruta completa de los nombres:

/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_id = ami-083c800fe4211192f/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_name = amzn2-ami-ecs-gpu-hvm-2.0.20190402-x86_64-ebs

En los siguientes ejemplos se muestra el uso de GetParametersByPath.

AWS CLI

$ aws ssm get-parameters-by-path --path /aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended \ --region us-east-2 --output json

El resultado incluye todos los metadatos de todos los parámetros de la ruta especificada:

{ "Parameters": [ { "Name": "/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/ecs_agent_version", "LastModifiedDate": 1555434128.801, "Value": "1.27.0", "Version": 8, "Type": "String", "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/ecs_agent_version" }, { "Name": "/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/ecs_runtime_version", "LastModifiedDate": 1548368308.213, "Value": "Docker version 18.06.1-ce", "Version": 1, "Type": "String", "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/ecs_runtime_version" }, { "Name": "/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_id", "LastModifiedDate": 1555434128.749, "Value": "ami-083c800fe4211192f", "Version": 9, "Type": "String", "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_id" }, { "Name": "/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_name", "LastModifiedDate": 1555434128.712, "Value": "amzn2-ami-ecs-gpu-hvm-2.0.20190402-x86_64-ebs",

66

Page 72: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioCómo utilizar una AMI de carga de trabajo de GPU

"Version": 9, "Type": "String", "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_name" }, { "Name": "/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/os", "LastModifiedDate": 1548368308.143, "Value": "Amazon Linux 2", "Version": 1, "Type": "String", "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/os" }, { "Name": "/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/schema_version", "LastModifiedDate": 1548368307.914, "Value": "1", "Version": 1, "Type": "String", "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/schema_version" } ]}

Python

from __future__ import print_function

import boto3

ssm = boto3.client('ssm', 'us-east-2')

response = ssm.get_parameters_by_path(Path='/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended')for parameter in response['Parameters']: print(parameter['Name'] + " = " + parameter['Value'])

El resultado incluye los valores de todos los nombres de parámetros de la ruta especificada, con laruta completa de los nombres:

/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/ecs_agent_version = 1.27.0/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/ecs_runtime_version = Docker version 18.06.1-ce/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_id = ami-083c800fe4211192f/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_name = amzn2-ami-ecs-gpu-hvm-2.0.20190402-x86_64-ebs/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/os = Amazon Linux 2/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/schema_version = 1

Para obtener más información, consulte Recuperación de los metadatos de la AMI optimizada paraAmazon ECS en la Amazon Elastic Container Service Developer Guide.

67

Page 73: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioCompatibilidad con las plantillas de lanzamiento

Compatibilidad con las plantillas de lanzamientoAWS Batch admite el uso de plantillas de lanzamiento de Amazon EC2 en los entornos informáticos. Lacompatibilidad con las plantillas de lanzamiento le permite modificar la configuración predeterminada de losrecursos informáticos de AWS Batch sin necesidad de crear AMI personalizadas.

Es necesario crear una plantilla de lanzamiento para poder asociarla a un entorno informático. Puede crearuna plantilla de lanzamiento en la consola de Amazon EC2, o bien puede utilizar la AWS CLI o un SDK deAWS. Por ejemplo, el archivo JSON mostrado a continuación representa una plantilla de lanzamiento queredimensiona el volumen de datos de Docker para la AMI predeterminada del recurso informático de AWSBatch y también lo configura como cifrado.

{ "LaunchTemplateName": "increase-container-volume-encrypt", "LaunchTemplateData": { "BlockDeviceMappings": [ { "DeviceName": "/dev/xvdcz", "Ebs": { "Encrypted": true, "VolumeSize": 100, "VolumeType": "gp2" } } ] }}

Puede crear la plantilla de lanzamiento anterior guardando el JSON en un archivo denominado lt-data.json y ejecutando el siguiente comando de la AWS CLI:

aws ec2 --region <region> create-launch-template --cli-input-json file://lt-data.json

Para obtener más información sobre las plantillas de lanzamiento, consulte Lanzar una instancia desdeuna plantilla de lanzamiento en la Guía del usuario de Amazon EC2 para instancias de Linux.

Si utiliza una plantilla de lanzamiento para crear el entorno informático, puede mover los siguientesparámetros del entorno informático existente a la plantilla de lanzamiento:

Note

Si se especifica alguno de estos parámetros (con la excepción de las etiquetas de AmazonEC2) tanto en la plantilla de lanzamiento como en la configuración del entorno informático, losparámetros de este tienen preferencia. Las etiquetas de Amazon EC2 se combinan entre laplantilla de lanzamiento y la configuración del entorno informático. Si se produce una colisión en laclave de la etiqueta, el valor de la configuración del entorno informático tiene prioridad.

• Par de claves de Amazon EC2• ID de AMI de Amazon EC2• ID de grupo de seguridad• Etiquetas de Amazon EC2

AWS Batch no tiene en cuenta los siguientes parámetros de la plantilla de lanzamiento:

• Tipo de instancia (especifique los tipos de instancia que desea utilizar al crear el entorno informático)• Rol de instancia (especifique el rol de instancia que desea utilizar al crear el entorno informático)

68

Page 74: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioDatos de usuario de Amazon EC2

en las plantillas de lanzamiento

• Subredes de interfaz de red (especifique las subredes que desea utilizar al crear el entorno informático)• Opciones del mercado de instancias (AWS Batch debe controlar la configuración de instancias de spot)• Deshabilitar la terminación de la API (AWS Batch debe controlar el ciclo de vida de la instancia)

AWS Batch no admite la actualización de un entorno informático con una versión nueva de la plantillade lanzamiento. Si actualiza la plantilla de lanzamiento, debe crear un entorno informático nuevo con laplantilla nueva para que los cambios surtan efecto.

Datos de usuario de Amazon EC2 en las plantillas delanzamientoPuede proporcionar datos de usuario de Amazon EC2 en la plantilla de lanzamiento que será ejecutadapor cloud-init al lanzar las instancias. Los datos de usuario pueden realizar escenarios de configuracióncomunes, incluidos pero sin limitarse a:

• Inclusión de usuarios o grupos• Instalación de paquetes• Creación de particiones y sistemas de archivos

Los datos de usuario de Amazon EC2 de las plantillas de lanzamiento deben estar en el formato archivomultiparte MIME, ya que dichos datos se combinan con otros datos de usuario de AWS Batch necesariospara configurar los recursos informáticos. Puede combinar varios bloques de datos de usuario en un únicoarchivo multiparte MIME. Por ejemplo, es posible que desee combinar un boothook de nube que configureel demonio de Docker con un script de shell de datos de usuario que escribe información de configuraciónpara el agente de contenedor de Amazon ECS.

Un archivo multiparte MIME consta de los siguientes componentes:

• El tipo de contenido y declaración de límite de partes: Content-Type: multipart/mixed;boundary="==BOUNDARY=="

• La declaración de versión de MIME: MIME-Version: 1.0• Uno o más bloques de datos de usuario, que contienen los siguientes componentes:

• El límite de apertura, que señala el inicio de un bloque de datos de usuario: --==BOUNDARY==• La declaración de tipo de contenido para el bloque: Content-Type: text/cloud-config;charset="us-ascii". Para obtener más información sobre los tipos de contenido, consulte ladocumentación de Cloud-Init.

• El contenido de los datos de usuario, por ejemplo, una lista de comandos de shell o directivas cloud-init

• El límite de cierre, que señala el final del archivo multiparte MIME: --==BOUNDARY==--

A continuación, se muestran algunos archivos multiparte MIME de ejemplo que puede utilizar para crearlos suyos propios.

Note

Si añade datos de usuario a una plantilla de lanzamiento en la consola de Amazon EC2, puedepegarlos como texto sin formato o cargarlos desde un archivo. Si utiliza la AWS CLI o un SDK deAWS, primero debe codificar en base64 los datos de usuario y enviar esa cadena como valor delparámetro UserData al llamar a CreateLaunchTemplate, como se muestra en el JSON siguiente.

{ "LaunchTemplateName": "base64-user-data",

69

Page 75: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioDatos de usuario de Amazon EC2

en las plantillas de lanzamiento

"LaunchTemplateData": { "UserData": "ewogICAgIkxhdW5jaFRlbXBsYXRlTmFtZSI6ICJpbmNyZWFzZS1jb250YWluZXItdm9sdW..." }}

Ejemplos• Ejemplo: montaje de un sistema de archivos de Amazon EFS existente (p. 70)• Ejemplo: anulación de la configuración predeterminada del agente de contenedor de Amazon

ECS (p. 70)• Ejemplo: montaje de un sistema de archivos de Amazon FSx for Lustre existente (p. 71)

Ejemplo: montaje de un sistema de archivos de Amazon EFSexistenteExample

Este archivo multiparte MIME de ejemplo configura el recurso informático para instalar el paqueteamazon-efs-utils y montar un sistema de archivos de Amazon EFS existente en /mnt/efs.

MIME-Version: 1.0Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="

--==MYBOUNDARY==Content-Type: text/cloud-config; charset="us-ascii"

packages:- amazon-efs-utils

runcmd:- file_system_id_01=fs-abcdef123- efs_directory=/mnt/efs

- mkdir -p ${efs_directory}- echo "${file_system_id_01}:/ ${efs_directory} efs tls,_netdev" >> /etc/fstab- mount -a -t efs defaults

--==MYBOUNDARY==--

Ejemplo: anulación de la configuración predeterminada delagente de contenedor de Amazon ECSExample

Este archivo multiparte MIME de ejemplo anula la configuración de limpieza predeterminada de lasimágenes de Docker de un recurso informático.

MIME-Version: 1.0Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="

--==MYBOUNDARY==Content-Type: text/x-shellscript; charset="us-ascii"

#!/bin/bashecho ECS_IMAGE_CLEANUP_INTERVAL=60m >> /etc/ecs/ecs.configecho ECS_IMAGE_MINIMUM_CLEANUP_AGE=60m >> /etc/ecs/ecs.config

70

Page 76: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioCómo crear un entorno informático

--==MYBOUNDARY==--

Ejemplo: montaje de un sistema de archivos de Amazon FSx forLustre existenteExample

Este archivo multiparte MIME de ejemplo configura el recurso informático para instalar el paquetelustre2.10 de la biblioteca Extras y montar un sistema de archivos de Amazon FSx for Lustre existenteen /scratch. Este es un ejemplo de Amazon Linux 2. Para obtener instrucciones de instalación de otrasdistribuciones de Linux, consulte Instalación del cliente Lustre en la Guía del usuario de Amazon FSx forLustre.

MIME-Version: 1.0Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="

--==MYBOUNDARY==Content-Type: text/cloud-config; charset="us-ascii"

runcmd:- file_system_id_01=fs-0abcdef1234567890- region=us-east-2- fsx_directory=/scratch- amazon-linux-extras install -y lustre2.10- mkdir -p ${fsx_directory}- mount -t lustre ${file_system_id_01}.fsx.${region}.amazonaws.com@tcp:fsx ${fsx_directory}

--==MYBOUNDARY==--

En los miembros volumes y mountPoints de las propiedades del contenedor, se deben asignar los puntosde montaje al contenedor.

{ "volumes": [ { "host": { "sourcePath": "/scratch" }, "name": "Scratch" } ], "mountPoints": [ { "containerPath": "/scratch", "sourceVolume": "Scratch" } ],}

Cómo crear un entorno informáticoAntes de ejecutar trabajos en AWS Batch, primero es necesario crear un entorno informático. Es posiblecrear un entorno informático administrado en el que AWS Batch administre las instancias en el entorno enfunción de las especificaciones. Otra posibilidad es crear un entorno informático no administrado dondecontrole la configuración de la instancia dentro del entorno.

71

Page 77: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioCómo crear un entorno informático

Para crear un entorno informático administrado

1. Abra la consola de AWS Batch en https://console.aws.amazon.com/batch/.2. En la barra de navegación, seleccione la región que desea utilizar.3. En el panel de navegación, seleccione Entornos informáticos, Crear entorno.4. Configure el entorno.

a. En Tipo de entorno informático, seleccione Administrado.b. En Nombre de entorno informático, especifique un nombre único para el entorno informático.

Se admiten hasta 128 letras (mayúsculas y minúsculas), números, guiones y caracteres desubrayado.

c. En Rol de servicio, elija entre crear un nuevo rol o usar uno que ya exista. El rol le permite alservicio de AWS Batch realizar llamadas a la API de AWS necesarias en su nombre. Para obtenermás información, consulte Rol de servicio de IAM en AWS Batch (p. 93). Si decide crear un rolnuevo, se creará el rol requerido AWSBatchServiceRole.

d. En Instance role (Rol de instancia), elija si desea crear un perfil de instancia nuevo o utilizar unoya existente que tenga asociados los permisos de IAM necesarios. Este perfil de instancia permitea las instancias de contenedor de Amazon ECS que se crearon para su entorno informáticorealizar llamadas a las API de AWS necesarias en su nombre. Para obtener más información,consulte Rol de instancia de Amazon ECS (p. 95). Si decide crear un perfil de instancia nuevo,se creará el rol requerido (ecsInstanceRole).

e. En Par de claves EC2, seleccione un par de claves Amazon EC2 que ya existan para asociarlas ala instancia en el momento de lanzarla. Este par de claves le permite conectarse a las instanciascon SSH (garantiza que su grupo de seguridad permite la entrada en el puerto 22).

f. Asegúrese de que Habilitar el entorno informático esté seleccionado para que entorno informáticopueda aceptar trabajos del programador de trabajos de AWS Batch.

5. Configure los recursos informáticos.

a. En Modelo de aprovisionamiento, seleccione Bajo demanda para lanzar instancias bajo demandade Amazon EC2, o Spot para utilizar las instancias de spot de Amazon EC2.

b. Si decidió utilizar instancias de spot:

i. (Opcional) En Precio máximo, seleccione el porcentaje máximo del precio que puede teneruna instancia de spot en relación con su precio bajo demanda antes de que lancen lasinstancias. Por ejemplo, si el precio máximo es el 20%, el precio de spot de esa instancia deEC2 deberá ser inferior al 20% del precio bajo demanda que tenga en ese momento. Siemprese paga el precio más bajo (de mercado) y nunca más que lo marcado por el porcentajemáximo. Si se deja este campo en blanco, el valor predeterminado es el 100% del precio bajodemanda.

ii. En Rol de la flota de spot, seleccione un rol de IAM para la flota de spot de Amazon EC2 quequiera aplicar a su entorno informático de spot. Si aún no tiene un rol de IAM para la flota despot de Amazon EC2, primero debe crear uno. Para obtener más información, consulte Rolde flota de spot de Amazon EC2 (p. 95).

Important

Para etiquetar las instancias de spot en el momento de su creación (consulte Step7 (p. 74)), el rol de IAM para la flota de spot de Amazon EC2 debe utilizar lapolítica administrada más reciente AmazonEC2SpotFleetTaggingRole. La políticaadministrada AmazonEC2SpotFleetRole no tiene los permisos necesarios paraetiquetar instancias de spot. Para obtener más información, consulte Instancias despot no etiquetadas en el momento de su creación (p. 130).

c. En Tipos de instancias permitidos, elija los tipos de instancia Amazon EC2 que se puedenlanzar. Se pueden especificar familias de instancias para lanzar cualquier tipo de instanciaen esas familias (por ejemplo, c5, c5n o p3), o se pueden especificar tamaños dentro de una

72

Page 78: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioCómo crear un entorno informático

familia (como c5.8xlarge). Tenga en cuenta que los tipos de instancias metal no están en lasfamilias de instancias (por ejemplo, c5 no incluye c5.metal). También se puede seleccionaroptimal para elegir al momento tipos de instancias (de las familias de instancias C, M y R) quese correspondan con la demanda de las colas de trabajos.

Note

Cuando se crea un entorno informático, los tipos de instancias que se seleccionen paradicho entorno informático deben compartir la misma arquitectura. Por ejemplo, no sepuede mezclar instancias x86 y ARM en el mismo entorno informático.

Note

AWS Batch escalará las GPU en función de la cantidad necesaria en sus colas detrabajo. Para utilizar la programación de GPU, el entorno informático debe incluir tipos deinstancia de las familias p2, p3, g3, g3s o g4.

d. Para Allocation strategy (Estrategia de asignación), elija la estrategia de asignación que seutilizará al seleccionar los tipos de instancia de la lista de tipos de instancia permitidos. Paraobtener más información, consulte the section called “Estrategias de asignación” (p. 80).

e. (Opcional) En Launch template (Plantilla de lanzamiento), seleccione una plantilla de lanzamientode Amazon EC2 existente para configurar los recursos informáticos; la versión predeterminada dela plantilla se rellena automáticamente. Para obtener más información, consulte Compatibilidadcon las plantillas de lanzamiento (p. 68).

f. (Opcional) En Launch template version (Versión de la plantilla de lanzamiento), introduzca$Default, $Latest o el número de versión específico que desea utilizar.

g. En Mínimo de CPU virtuales, seleccione la cantidad mínima de vCPUs de EC2 que debemantener el entorno informático, independientemente de la demanda de las colas de trabajos.

h. En CPU virtuales deseadas, seleccione la cantidad de vCPU de EC2 con las que el entornoinformático debería realizar lanzamientos. A medida que aumenta la demanda de la cola detrabajos, AWS Batch también puede incrementar la cantidad de vCPU en su entorno informáticoy añadir instancias EC2, hasta alcanzar la cantidad máxima de vCPU. A medida que la demandadisminuye, AWS Batch puede reducir la cantidad de vCPU en su entorno informático y eliminarinstancias, hasta alcanzar la cantidad mínima de vCPU.

i. En Máximo de CPU virtuales, seleccione la cantidad máxima de vCPUs de EC2 admitida por elentorno informático, independientemente de la demanda de las colas de trabajos.

j. (Opcional) Marque Habilitar ID de AMI especificada por el usuario para utilizar sus propias AMIpersonalizadas. De manera predeterminada, los entornos informáticos administrados de AWSBatch usan una versión aprobada y reciente de la AMI optimizada para Amazon ECS para losrecursos informáticos. Puede crear y utilizar sus propias AMI en su entorno informático siguiendola especificación de AMI de recursos informáticos. Para obtener más información, consulte AMI derecursos informáticos (p. 60).

Note

La AMI que elija para un entorno informático debe coincidir con la arquitectura delos tipos de instancias que tenga previsto utilizar para dicho entorno informático. Porejemplo, si su entorno informático utiliza tipos de instancias A1, la AMI de recursosinformáticos que elija debe admitir instancias ARM. Amazon ECS ofrece versiones x86y ARM de la AMI de Amazon Linux 2 optimizada para Amazon ECS. Para obtener másinformación, consulte Versiones de la AMI de Amazon Linux 2 optimizadas para AmazonECS en la Amazon Elastic Container Service Developer Guide.

• En ID de AMI, pegue el ID de la AMI personalizada y seleccione Validar AMI.6. Configure redes.

73

Page 79: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioCómo crear un entorno informático

Important

necesitan acceso para comunicarse con el punto de enlace de servicio de Amazon ECS. Estopuede hacerse mediante un punto de enlace de la VPC de tipo interfaz o mediante que tienendirecciones IP públicas.Para obtener más información sobre los puntos de enlace de la VPC de tipo interfaz,consulte .Si no ha configurado un punto de enlace de la VPC de tipo interfaz y sus no tienendirecciones IP públicas, deberán utilizar la conversión de direcciones de red (NAT) paraproporcionar este acceso. Para obtener más información, consulte Gateways de NAT en laGuía del usuario de Amazon VPC. Para obtener más información, consulte Tutorial: Creaciónde una VPC con subredes públicas y privadas para sus (p. 111).

a. En ID de VPC, seleccione la VPC en la que se lanzarán las instancias.b. En Subredes, elija las subredes en las que la VPC seleccionada deberá alojar las instancias. De

forma predeterminada, se escogen todas las subredes dentro de la VPC seleccionada.c. En Grupos de seguridad, seleccione un su grupo de seguridad para asociarlo a las instancias. De

forma predeterminada, se escoge el grupo de seguridad predeterminado para la VPC.7. Etiquete sus instancias. Este paso es opcional. Por ejemplo, puede especificar "Name": "AWS

Batch Instance - C4OnDemand" como etiqueta, de modo que cada instancia de su entornoinformático tenga ese nombre. Esto es útil para reconocer las instancias de AWS Batch en la consolade Amazon EC2

8. Para terminar, seleccione Crear.

Para crear un entorno informático no administrado

1. Abra la consola de AWS Batch en https://console.aws.amazon.com/batch/.2. En la barra de navegación, seleccione la región que desea utilizar.3. En el panel de navegación, seleccione Entornos informáticos, Crear entorno.4. En Tipo de entorno informático, seleccione No administrados.5. En Nombre de entorno informático, especifique un nombre único para el entorno informático. Se

admiten hasta 128 letras (mayúsculas y minúsculas), números, guiones y caracteres de subrayado.6. En Rol de servicio, elija entre crear un rol nuevo o utilizar uno existente que le permita al servicio

de AWS Batch realizar llamadas a las API de AWS necesarias en su nombre. Para obtener másinformación, consulte Rol de servicio de IAM en AWS Batch (p. 93). Si decide crear un rol nuevo,se creará el rol requerido AWSBatchServiceRole.

7. Asegúrese de que Habilitar el entorno informático esté seleccionado para que entorno informáticopueda aceptar trabajos del programador de trabajos de AWS Batch.

8. Para terminar, seleccione Crear.9. Recupere el ARN del clúster de Amazon ECS asociado. Este paso es opcional. El siguiente comando

de la AWS CLI proporciona el ARN del clúster de Amazon ECS para un entorno informático:

aws batch describe-compute-environments --compute-environments unmanagedCE --query computeEnvironments[].ecsClusterArn

10. Lanzar instancias de contenedor en el clúster de Amazon ECS asociado. Este paso es opcional. Paraobtener más información, consulte Lanzamiento de una instancia de contenedor de Amazon ECS en laAmazon Elastic Container Service Developer Guide. Al lanzar los recursos informáticos, especifique elARN del clúster de Amazon ECS que los recursos deben registrar con los siguientes datos de usuariode Amazon EC2. Sustituya ecsClusterArn con el ARN del clúster obtenido mediante el comandopreviamente mencionado.

#!/bin/bash

74

Page 80: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioPlantillas de entorno informático

echo "ECS_CLUSTER=ecsClusterArn" >> /etc/ecs/ecs.config

Note

El entorno informático no administrado no tiene recursos informáticos hasta que se lancemanualmente.

Plantillas de entorno informáticoA continuación se muestra una plantilla de entorno informático vacía. Puede utilizar esta plantilla para crearun entorno informático que puede guardar en un archivo y utilizarse con la opción --cli-input-json dela AWS CLI. Para obtener más información sobre estos parámetros, consulte CreateComputeEnvironmenten la Referencia de la API de AWS Batch.

{ "computeEnvironmentName": "", "type": "UNMANAGED", "state": "ENABLED", "computeResources": { "type": "EC2", "minvCpus": 0, "maxvCpus": 0, "desiredvCpus": 0, "instanceTypes": [ "" ], "imageId": "", "subnets": [ "" ], "securityGroupIds": [ "" ], "ec2KeyPair": "", "instanceRole": "", "tags": { "KeyName": "" }, "bidPercentage": 0, "spotIamFleetRole": "", "launchTemplate": { "launchTemplateId": "", "launchTemplateName": "", "version": "" } }, "serviceRole": ""}

Note

Puede generar la plantilla de entorno de computación mostrada anteriormente con el siguientecomando de la AWS CLI:

$ aws batch create-compute-environment --generate-cli-skeleton

75

Page 81: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioParámetros de un entorno informático

Parámetros de un entorno informáticoLos entornos informáticos se dividen en cinco componentes básicos: nombre, tipo, estado, definición delrecurso informático (en el caso de entornos informáticos administrados) y el rol de servicio a utilizar paraconcederle permisos de IAM a AWS Batch.

Temas• Nombre del entorno informático (p. 76)• Tipo (p. 76)• Estado (p. 76)• Recursos informáticos (p. 77)• Rol de servicio (p. 80)

Nombre del entorno informáticocomputeEnvironmentName

Nombre del entorno informático. Se admiten hasta 128 letras (mayúsculas y minúsculas), números,guiones y caracteres de subrayado.

Tipo: cadena

Obligatorio: Sí

Tipotype

El tipo de entorno informático. Seleccione MANAGED para que AWS Batch administre los recursosinformáticos que defina. Para obtener más información, consulte Recursos informáticos (p. 77).Seleccione UNMANAGED para administrar sus propios recursos informáticos.

Tipo: cadena

Valores válidos: MANAGED | UNMANAGED

Obligatorio: sí

Estadostate

El estado del entorno informático.

Si el estado es ENABLED, el programador de AWS Batch intenta realizar trabajos de una cola detrabajos asociada en los recursos informáticos dentro del entorno. Si el entorno informático esgestionado, puede escalar sus instancias de forma descendente o ascendente automáticamente, enfunción de la demanda de la cola de trabajos.

Si el estado es DISABLED, el programador de AWS Batch no intenta colocar los trabajos en elentorno. Los trabajos en estado STARTING o RUNNING continúan avanzando con normalidad. Losentornos informáticos administrados en el estado DISABLED no se escalan de forma ascendente. Sin

76

Page 82: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioRecursos informáticos

embargo, sí se escalan de forma descendente al valor minvCpus cuando las instancias se vuelveninactivas.

Tipo: cadena

Valores válidos: ENABLED | DISABLED

Obligatorio: no

Recursos informáticoscomputeResources

Detalles de los recursos informáticos administrados por el entorno informático.

Tipo: objeto ComputeResource

Necesario: este parámetro es necesario para entornos informáticos administradostype

El tipo de entorno informático. Utilice este parámetro para especificar si desea utilizar lasinstancias bajo demanda de Amazon EC2 o las instancias de spot de Amazon EC2 en su entornoinformático. Si elige SPOT, también deberá especificar un rol de la flota de spot de Amazon EC2con el parámetro spotIamFleetRole. Para obtener más información, consulte Rol de flota despot de Amazon EC2 (p. 95).

Valores válidos: EC2 | SPOT

Obligatorio: síallocationStrategy

La estrategia de asignación que se utilizará para el recurso informático en caso de que no sepuedan asignar suficientes instancias del tipo de instancia más adecuado. Puede deberse a ladisponibilidad del tipo de instancia en la región o a los límites de servicio de Amazon EC2. Si nose especifica esto, el valor predeterminado es BEST_FIT, que utilizará solo el tipo de instancia demejor ajuste, esperando capacidad adicional si no está disponible. Esta estrategia de asignaciónmantiene los costos más bajos, pero puede limitar el escalado. BEST_FIT_PROGRESSIVEseleccionará tipos de instancia adicionales que sean lo suficientemente grandes como paracumplir los requisitos de los trabajos en la cola, con preferencia por tipos de instancia con uncosto menor por CPU virtual de la unidad. SPOT_CAPACITY_OPTIMIZED solo está disponiblepara recursos informáticos de instancia de spot y seleccionará tipos de instancia adicionales quesean lo suficientemente grandes como para cumplir los requisitos de los trabajos en la cola, conpreferencia para los tipos de instancia que tienen menos probabilidades de ser interrumpidos.

Valores válidos: BEST_FIT | BEST_FIT_PROGRESSIVE | SPOT_CAPACITY_OPTIMIZED

Obligatorio: nominvCpus

La cantidad mínima de CPU virtuales de Amazon EC2 que debe mantener un entorno (incluso siun entorno informático está DISABLED).

Tipo: Número entero

Obligatorio: símaxvCpus

La cantidad máxima de CPU virtuales de Amazon EC2 que puede alcanzar un entorno.

77

Page 83: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioRecursos informáticos

Note

Con las estrategias de asignación BEST_FIT_PROGRESSIVE ySPOT_CAPACITY_OPTIMIZED, puede que AWS Batch necesite ir más allá de maxvCpuspara satisfacer sus necesidades de capacidad. En este caso, AWS Batch nunca superarámaxvCpus en más de una instancia (por ejemplo, no más de una instancia de entre lasespecificadas en su entorno informático).

Tipo: número entero

Obligatorio: sídesiredvCpus

La cantidad deseada de CPU virtuales de Amazon EC2 en el entorno informático. AWS Batchmodifica este valor entre los valores mínimo y máximo, en función de la demanda de la cola detrabajos.

Tipo: Número entero

Obligatorio: noinstanceTypes

Los tipos de instancia que pueden lanzarse. Se pueden especificar familias de instancias paralanzar cualquier tipo de instancia en esas familias (por ejemplo, c5, c5n o p3), o se puedenespecificar tamaños dentro de una familia (como c5.8xlarge). Tenga en cuenta que los tiposde instancias metal no están en las familias de instancias (por ejemplo, c5 no incluye c5.metal).También se puede seleccionar optimal para elegir al momento tipos de instancias (de lasfamilias de instancias C, M y R) que se correspondan con la demanda de las colas de trabajos.

Note

Cuando se crea un entorno informático, los tipos de instancias que se seleccionen paradicho entorno informático deben compartir la misma arquitectura. Por ejemplo, no sepuede mezclar instancias x86 y ARM en el mismo entorno informático.

Tipo: matriz de cadenas

Obligatorio: síimageId

El ID de la Imagen de máquina de Amazon (AMI) se utiliza para instancias lanzadas en el entornoinformático.

Note

La AMI que elija para un entorno informático debe coincidir con la arquitectura delos tipos de instancias que tenga previsto utilizar para dicho entorno informático. Porejemplo, si su entorno informático utiliza tipos de instancias A1, la AMI de recursosinformáticos que elija debe admitir instancias ARM. Amazon ECS ofrece versiones x86y ARM de la AMI de Amazon Linux 2 optimizada para Amazon ECS. Para obtener másinformación, consulte Versiones de la AMI de Amazon Linux 2 optimizadas para AmazonECS en la Amazon Elastic Container Service Developer Guide.

Tipo: cadena

Obligatorio: nosubnets

Las subredes de VPC en las que se lanzan los recursos informáticos. Estas subredes deben estardentro de la misma VPC.

78

Page 84: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioRecursos informáticos

Tipo: matriz de cadenas

Obligatorio: SísecurityGroupIds

Los grupos de seguridad de EC2 a asociar con las instancias lanzadas en el entorno informático.

Tipo: matriz de cadenas

Obligatorio: Síec2KeyPair

El par de claves de EC2 que se utiliza para las instancias lanzadas en el entorno informático.Puede utilizar este par de claves para iniciar sesión en las instancias con SSH.

Tipo: cadena

Obligatorio: noinstanceRole

El perfil de instancia de Amazon ECS que se asocia a instancias de Amazon EC2 en unentorno informático. Puede especificar el nombre abreviado o el Nombre de recurso deAmazon (ARN) completo de un perfil de instancia. Por ejemplo, ecsInstanceRole oarn:aws:iam::aws_account_id:instance-profile/ecsInstanceRole. Para obtenermás información, consulte Rol de instancia de Amazon ECS (p. 95).

Tipo: cadena

Obligatorio: sítags

Las etiquetas de los pares de valores de claves que se aplican a las instancias que se lanzan enel entorno informático. Por ejemplo, puede especificar "Name": "AWS Batch Instance -C4OnDemand" como etiqueta, de modo que cada instancia de su entorno informático tenga esenombre. Esto es útil para reconocer las instancias de AWS Batch en la consola de Amazon EC2

Tipo: mapa de cadena a cadena

Obligatorio: nobidPercentage

El porcentaje máximo que puede tener el precio una instancia de spot en comparación conel precio bajo demanda para ese tipo de instancia antes de que se lancen las instancias. Porejemplo, si el porcentaje máximo es del 20%, el precio de spot de esa instancia EC2 deberá serinferior al 20% del precio bajo demanda que tenga en ese momento. Siempre se paga el preciomás bajo (de mercado) y nunca más que lo marcado por el porcentaje máximo. Si se deja estecampo en blanco, el valor predeterminado es el 100% del precio bajo demanda.

Obligatorio: nospotIamFleetRole

El nombre de recurso de Amazon (ARN) del rol de Amazon EC2 para la flota de spot de IAM quese aplica a un entorno informático SPOT. Para obtener más información, consulte Rol de flota despot de Amazon EC2 (p. 95).

Important

Para etiquetar las instancias de spot en el momento de su creación, el rol de IAMde flota de spot especificado aquí debe utilizar la política administrada más recienteAmazonEC2SpotFleetTaggingRole. La política administrada AmazonEC2SpotFleetRole

79

Page 85: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioRol de servicio

recomendada anteriormente no tiene los permisos necesarios para etiquetar instanciasde spot. Para obtener más información, consulte Instancias de spot no etiquetadas en elmomento de su creación (p. 130).

Tipo: cadena

Necesario: este parámetro es necesario para entornos informáticos SPOT.launchTemplate

Una plantilla de lanzamiento opcional para asociarla a los recursos informáticos. Para utilizaruna plantilla de lanzamiento, debe especificar el ID o el nombre de esta en la solicitud, perono ambos. Para obtener más información, consulte Compatibilidad con las plantillas delanzamiento (p. 68).

Tipo: LaunchTemplateSpecification

objeto

Obligatorio: nolaunchTemplateId

El ID de la plantilla de lanzamiento.

Tipo: cadena

Obligatorio: nolaunchTemplateName

El nombre de la plantilla de lanzamiento.

Tipo: cadena

Obligatorio: noversion

El número de versión de la plantilla de lanzamiento.

Tipo: cadena

Obligatorio: no

Rol de servicioserviceRole

El nombre de recurso de Amazon (ARN) completo del rol de IAM que permite a AWS Batch realizarllamadas a otros servicios de AWS en su nombre. Para obtener más información, consulte Rol deservicio de IAM en AWS Batch (p. 93).

Tipo: cadena

Obligatorio: sí

Estrategias de asignaciónCuando se crea un entorno informático administrado, AWS Batch seleccionará los tipos de instancia deentre los instanceTypes especificados que mejor se adapten a las necesidades de los trabajos. Laestrategia de asignación define el comportamiento cuando AWS Batch necesita capacidad adicional.

80

Page 86: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioAdministración de la memoria

BEST_FIT

AWS Batch selecciona el tipo de instancia que mejor se adapte a las necesidades de los trabajoscon preferencia por el tipo de instancia de menor costo. Si las instancias adicionales del tipo deinstancia seleccionado no están disponibles, AWS Batch esperará a que lo estén. Si no hay suficientesinstancias disponibles, o si el usuario está alcanzando los límites de servicio de Amazon EC2, lostrabajos adicionales no se ejecutarán hasta que los trabajos en ejecución hayan finalizado. Estaestrategia de asignación mantiene los costos más bajos, pero puede limitar el escalado.

BEST_FIT_PROGRESSIVE

AWS Batch seleccionará tipos de instancia adicionales que sean lo suficientemente grandes comopara cumplir los requisitos de los trabajos en la cola, con preferencia por tipos de instancia con uncosto menor por CPU virtual de la unidad. Si las instancias adicionales de los tipos de instanciapreviamente seleccionados no están disponibles, AWS Batch seleccionará nuevos tipos de instancia.

SPOT_CAPACITY_OPTIMIZED

AWS Batch seleccionará uno o varios tipos de instancia que sean lo suficientemente grandes comopara cumplir los requisitos de los trabajos en la cola, con preferencia por los tipos de instancia quetengan menos probabilidades de interrumpirse. Esta estrategia de asignación solo está disponible paralos recursos informáticos de instancia de spot.

Con las estrategias BEST_FIT_PROGRESSIVE y SPOT_CAPACITY_OPTIMIZED, puede que AWS Batchnecesite ir más allá de maxvCpus para satisfacer sus necesidades de capacidad. En este caso, AWSBatch nunca irá más allá de maxvCpus por una sola instancia.

Administración de la memoria enCuando el agente de contenedor de Amazon ECS registra una en un , el agente debe determinar lacantidad de memoria disponible en la para reservarla para las s. Debido a la sobrecarga de la memoria dela plataforma y a la memoria ocupada por el kernel del sistema, este número es diferente de la cantidad dememoria instalada que se anuncia para las instancias Amazon EC2. Por ejemplo, una instancia m4.largetiene 8 GiB de memoria instalada. Sin embargo, esto no siempre significa que haya exactamente 8192 MiBde memoria disponible para las s cuando se registra la .

Si especifica 8192 MiB para la y ninguna tiene 8192 MiB o más de memoria disponible para satisfacer esterequisito, la no podrá situarse en el .

Para obtener más información, consulte Reservar memoria del sistema (p. 82).

El agente de contenedor de Amazon ECS utiliza la función ReadMemInfo() de Docker para consultarla memoria total disponible en el sistema operativo. Linux herramientas de línea de comandos paradeterminar la memoria total.

Example - Determinar la memoria total en Linux

El comando free devuelve la memoria total reconocida por el sistema operativo.

$ free -b

Este es un ejemplo de la salida para una instancia m4.large que ejecuta la Amazon ECS-optimizedAmazon Linux AMI.

total used free shared buffers cachedMem: 8373026816 348180480 8024846336 90112 25534464 205418496

81

Page 87: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioReservar memoria del sistema

-/+ buffers/cache: 117227520 8255799296

Esta instancia tiene 8 373 026 816 bytes de memoria total, lo que se traduce en 7 985 MiB disponiblespara tareas.

Reservar memoria del sistemaSi se ocupa toda la memoria de una con las s, es posible que las s tengan que competir por lamemoria con los procesos críticos del sistema, lo que podría desencadenar un error del sistema.El agente de contenedor de Amazon ECS dispone de una variable de configuración denominadaECS_RESERVED_MEMORY que se puede utilizar para quitar un número concreto de MiB de memoria delgrupo asignado a las s. Este es un mecanismo eficaz que permite reservar memoria para los procesoscríticos del sistema.

Consultar la memoria dePuede ver la cantidad de memoria que registra una en la consola de Amazon ECS (o mediante laoperación DescribeContainerInstances de la API). Si intenta maximizar la utilización de recursosproporcionando a las s la mayor cantidad de memoria posible para un determinado tipo de instancia,puede observar la memoria disponible para esa y asignar después a las s esa cantidad de memoria.

Para ver la memoria de un

1. Abra la consola de Amazon ECS en https://console.aws.amazon.com/ecs/.2. Elija el clúster donde se alojan las s que desea ver.3. Elija ECS Instances (Instancias ECS) y, en la columna Container Instance (Instancia de contenedor),

la que desee ver.4. En la sección Resources (Recursos), se muestra la memoria registrada y la memoria disponible para

la .

El valor de Registered (Registrada) es la memoria que la registró en Amazon ECS cuando se lanzópor primera vez, mientras que el valor de Available (Disponible) es la memoria que aún no se haasignado a ninguna .

82

Page 88: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuario

Elastic Fabric AdapterUn adaptador Elastic Fabric Adapter (EFA) es un dispositivo de red que acelera las aplicaciones deinformática de alto rendimiento (HPC). AWS Batch es compatible con las aplicaciones que utilizan EFA sise cumplen las siguientes condiciones.

• El entorno informático contiene únicamente los tipos de instancias admitidos (c5n.18xlarge,c5n.metal, i3en.24xlarge, m5dn.24xlarge, m5n.24xlarge, r5dn.24xlarge, r5n.24xlargey p3dn.24xlarge).

• El sistema operativo de la AMI es compatible con EFA: Amazon Linux, Amazon Linux 2, Red HatEnterprise Linux 7,6, CentOS 7,6, Ubuntu 16.04 o Ubuntu 18.04.

• La AMI tiene cargado el controlador de EFA.• El grupo de seguridad del adaptador EFA debe permitir todo el tráfico de entrada y salida del propio

grupo de seguridad.• Todas las instancias que utilizan un adaptador EFA deben estar en el mismo grupo de ubicación en

clúster.• La definición del trabajo debe incluir un miembro devices con hostPath establecido en /dev/infiniband/uverbs0 para permitir que el dispositivo EFA se transfiera a través del contenedor. Sise especifica containerPath, también debe establecerse en /dev/infiniband/uverbs0. Si seconfigura permissions, debe establecerse en READ | WRITE | MKNOD.

La ubicación del miembro LinuxParameters será diferente en los trabajos paralelos de varios nodos ylos trabajos de contenedor de un solo nodo. En los ejemplos siguientes, se ilustran las diferencias, perofaltan algunos valores necesarios.

Example Ejemplo de un trabajo paralelo con varios nodos

{ "jobDefinitionName": "EFA-MNP-JobDef", "type": "multinode", "nodeProperties": { ... "nodeRangeProperties": [ { ... "container": { ... "linuxParameters": { "devices": [ { "hostPath": "/dev/infiniband/uverbs0", "containerPath": "/dev/infiniband/uverbs0", "permissions": [ "READ", "WRITE", "MKNOD" ] }, ], }, }, }, ], },}

83

Page 89: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuario

Example Ejemplo de un trabajo de contenedor con un solo nodo

{ "jobDefinitionName": "EFA-Container-JobDef", "type": "container", ... "containerProperties": { ... "linuxParameters": { "devices": [ { "hostPath": "/dev/infiniband/uverbs0", }, ], }, },}

Para obtener más información sobre EFA, consulte Elastic Fabric Adapter en la Guía del usuario deAmazon EC2 para instancias de Linux.

84

Page 90: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioEstructura de la política

Políticas, roles y permisos de IAMpara AWS Batch

De forma predeterminada, los usuarios de IAM no tienen permiso para crear ni modificar recursos deAWS Batch, ni para realizar tareas con la API de AWS Batch. Esto significa que tampoco pueden hacerloutilizando la consola de AWS Batch ni la AWS CLI. Para permitir a los usuarios de IAM crear o modificarrecursos y enviar trabajos, debe crear políticas de IAM que concedan a los usuarios de IAM permisospara usar los recursos y las acciones de la API que necesitan. A continuación, asocie esas políticas a losusuarios o grupos de IAM que necesiten esos permisos.

Cuando se asocia una política a un usuario o un grupo de usuarios, esta les concede o deniega permisospara realizar las tareas especificadas en los recursos indicados. Para obtener más información, consultePermisos y políticas en la Guía del usuario de IAM. Para obtener más información sobre cómo crear yadministrar políticas personalizadas de IAM, consulte Administración de IAMpolíticas de .

Del mismo modo, AWS Batch también realiza llamadas a otros servicios de AWS por usted, por lo queel servicio debe autenticarse con sus credenciales. Esta autenticación se realiza creando una políticay un rol de IAM que pueda conceder estos permisos y, a continuación, vinculando dicho rol con susentornos informáticos al crearlos. Para obtener más información, consulte Rol de instancia de AmazonECS (p. 95), Roles de IAM, Usar roles vinculados a servicios y Creación de un rol para delegarpermisos a un servicio de AWS en la Guía del usuario de IAM.

Introducción

Una política de IAM debe conceder o denegar permisos para usar una o varias acciones de AWS Batch.

Temas• Estructura de la política (p. 85)• Permisos de nivel de recurso admitidos para las acciones de la API de AWS Batch (p. 88)• Ejemplos de políticas (p. 89)• Política administrada de AWS Batch (p. 92)• Creación de políticas de IAM en AWS Batch (p. 93)• Rol de servicio de IAM en AWS Batch (p. 93)• Rol de instancia de Amazon ECS (p. 95)• Rol de flota de spot de Amazon EC2 (p. 95)• Rol de IAM de Eventos de CloudWatch (p. 98)

Estructura de la políticaEn los siguientes temas se explica la estructura de una política de IAM.

Temas• Sintaxis de la política (p. 86)• Acciones de AWS Batch (p. 86)• Nombres de recursos de Amazon para AWS Batch (p. 87)

85

Page 91: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioSintaxis de la política

• Comprobar que los usuarios tienen los permisos necesarios (p. 87)

Sintaxis de la políticaUna política de IAM es un documento JSON que contiene una o varias instrucciones. Cada instruccióntiene la estructura siguiente:

{ "Statement":[{ "Effect":"effect", "Action":"action", "Resource":"arn", "Condition":{ "condition":{ "key":"value" } } } ]}

Una instrucción está compuesta por varios elementos:

• Effect: el valor de effect puede ser Allow o Deny. De forma predeterminada, los usuarios de IAM notienen permiso para utilizar los recursos y las acciones de la API, por lo que se deniegan todas lassolicitudes. Si se concede un permiso explícito se anula el valor predeterminado. Una denegaciónexplícita invalida cualquier permiso concedido.

• Action: el valor de action es la acción de la API para la que concede o deniega permisos. Para obtenermás información de cómo especificar el valor de action, consulte Acciones de AWS Batch (p. 86).

• Resource: el recurso al que afecta la acción. Algunas acciones de la API de AWS Batch permiten incluiren la política recursos específicos que la acción puede crear o modificar. Para especificar un recurso enla instrucción se utiliza el nombre de recurso de Amazon (ARN). Para obtener más información, consultePermisos de nivel de recurso admitidos para las acciones de la API de AWS Batch (p. 88) y Nombresde recursos de Amazon para AWS Batch (p. 87). Si actualmente la operación de la API de AWSBatch no admite permisos de nivel de recursos, debe utilizar el carácter comodín * para especificar quetodos los recursos pueden resultar afectados por la acción.

• Condition: las condiciones son opcionales. Se pueden usar para controlar cuándo está en vigor lapolítica.

Para obtener más información sobre las instrucciones de política de IAM de ejemplo para AWS Batch,consulte Creación de políticas de IAM en AWS Batch (p. 93).

Acciones de AWS BatchEn una instrucción de política de IAM, puede especificar cualquier acción de API de cualquier servicioque sea compatible con IAM. Para AWS Batch, use el prefijo siguiente con el nombre de la acción de API:batch:. Por ejemplo: batch:SubmitJob y batch:CreateComputeEnvironment.

Para especificar varias acciones en una única instrucción, sepárelas con comas del siguiente modo:

"Action": ["batch:action1", "batch:action2"]

También puede utilizar caracteres comodín para especificar varias acciones. Por ejemplo, puedeespecificar todas las acciones cuyo nombre comience por la palabra "Describe" del siguiente modo:

86

Page 92: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioNombres de recursos de Amazon para AWS Batch

"Action": "batch:Describe*"

Para especificar todas las acciones de API de AWS Batch, use el carácter comodín * del siguiente modo:

"Action": "batch:*"

Para ver la lista de las acciones de AWS Batch, consulte Acciones en la Referencia de la API de AWSBatch.

Nombres de recursos de Amazon para AWS BatchCada instrucción de política de IAM se aplica a los recursos especificados utilizando sus ARN.

Un ARN tiene la siguiente sintaxis general:

arn:aws:[service]:[region]:[account]:resourceType/resourcePath

service

El servicio (por ejemplo, batch).región

La región para el recurso (por ejemplo us-east-2).account

El ID de cuenta de AWS, sin guiones (por ejemplo, 123456789012).resourceType

El tipo de recurso (por ejemplo, compute-environment).resourcePath

Una ruta que identifica al recurso. Puede utilizar carácter comodín * en las rutas.

Algunas de las operaciones de la API de AWS Batch actualmente admiten los permisos de nivel derecursos. Para obtener más información, consulte Permisos de nivel de recurso admitidos para lasacciones de la API de AWS Batch (p. 88). Para especificar todos los recursos o cuando una acción deAPI no admita ARN, utilice el carácter comodín * en el elemento Resource de la siguiente manera:

"Resource": "*"

Comprobar que los usuarios tienen los permisosnecesariosAntes de utilizar una política de IAM en un entorno de producción, le recomendamos que compruebeque concede a los usuarios permisos para utilizar las acciones de la API y los recursos específicos quenecesiten.

En primer lugar, cree un usuario de IAM para realizar pruebas y asocie la política de IAM al usuario deprueba. A continuación, realice una solicitud como usuario de prueba. Puede realizar solicitudes de pruebaen la consola o con la AWS CLI.

87

Page 93: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioPermisos de nivel de recurso admitidos

Note

También puede probar las políticas con el simulador de políticas de IAM. Para obtener másinformación sobre el simulador de políticas, consulte el tema sobre cómo trabajar con el simuladorde políticas de IAM en la Guía del usuario de IAM.

Si la política no concede los permisos previstos al usuario o es demasiado permisiva, puede ajustarlasegún sea necesario. Repita las pruebas hasta obtener el resultado deseado.

Important

Puede que los cambios en la política tarden varios minutos en propagarse y surtir efecto. Porlo tanto, le recomendamos que espere cinco minutos antes de probar las actualizaciones de lamisma.

Si se produce un error en la comprobación de autorización, la solicitud devuelve un mensajecodificado con información de diagnóstico. Puede descodificar el mensaje usando la acciónDecodeAuthorizationMessage. Para obtener más información, consulte DecodeAuthorizationMessageen la AWS Security Token Service API Reference y decode-authorization-message en la AWS CLICommand Reference.

Permisos de nivel de recurso admitidos para lasacciones de la API de AWS Batch

El término permisos de nivel de recursos se refiere a la posibilidad de especificar los recursos en losque pueden realizar acciones los usuarios. AWS Batch es compatible parcialmente con los permisos denivel de recursos. Esto significa que, para algunas acciones de AWS Batch, puede determinar cuándo sepermite utilizarlas a los usuarios en función de si se cumplen una serie de condiciones o de los recursosconcretos que pueden utilizar los usuarios. Por ejemplo, puede conceder a los usuarios permisos paraenviar trabajos, pero solo a una cola de trabajos específica y únicamente con una definición de trabajodeterminada.

En la tabla siguiente, se indican las acciones de la API de AWS Batch que actualmente admiten permisosde nivel de recursos, los recursos admitidos, los ARN de recursos y las claves de condición de cada unade ellas.

Important

Si una acción de la API de AWS Batch no aparece en la tabla, significa que no admite lospermisos de nivel de recursos. Si una acción de la API de AWS Batch no admite este tipo depermisos de nivel de recursos, puede conceder permisos a los usuarios para que la utilicen, perotendrá que usar un carácter comodín * para el elemento de recurso de la instrucción de la política.

Acción de la API Recurso Claves de condición

RegisterJobDefinition Definición de trabajo

arn:aws:batch:región:cuenta:job-definition/*

arn:aws:batch:región:cuenta:job-definition/definition-name:revision

batch:User

batch:Privileged

batch:Image

DeregisterJobDefinition Definición de trabajo

arn:aws:batch:región:cuenta:job-definition/*

n/a

88

Page 94: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioEjemplos de políticas

Acción de la API Recurso Claves de condiciónarn:aws:batch:región:cuenta:job-definition/definition-name:revision

SubmitJob Definición de trabajo

arn:aws:batch:región:cuenta:job-definition/*

arn:aws:batch:región:cuenta:job-definition/definition-name:revision

Cola de trabajos

arn:aws:batch:región:cuenta:job-queue/*

arn:aws:batch:región:cuenta:job-queue/queue-name

n/a

Ejemplos de políticasEn los siguientes ejemplos, se muestran instrucciones de política que puede utilizar para controlar lospermisos que tienen los usuarios de IAM en AWS Batch.

Ejemplos• Ejemplo: acceso de solo lectura (p. 89)• Ejemplo: restricción del envío de un trabajo según el usuario de POSIX, la imagen de Docker el nivel

de privilegios y el rol (p. 90)• Ejemplo: restricción del envío de un trabajo según el prefijo de la definición de trabajo (p. 91)• Ejemplo: restricción según la cola de trabajos (p. 91)

Ejemplo: acceso de solo lecturaLa siguiente política concede a los usuarios permisos para usar todas las acciones de la API de AWSBatch cuyos nombres empiecen por Describe y por List.

Los usuarios no tienen permiso para realizar ninguna acción en los recursos (a menos que otra instrucciónles de permiso para ello), porque, de forma predeterminada, se les deniega el permiso para usar accionesde la API.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "batch:Describe*", "batch:List*" ], "Resource": "*" } ]}

89

Page 95: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioRestricción a usuario, imagen, privilegio y rol

Ejemplo: restricción del envío de un trabajo según elusuario de POSIX, la imagen de Docker el nivel deprivilegios y el rolLa siguiente política permite a un usuario administrar su propio conjunto de definiciones de trabajorestringidas.

Las instrucciones primera y segunda permiten que un usuario registre y anule el registro de cualquierdefinición de trabajo cuyo nombre tenga el prefijo JobDefA_.

La primera instrucción también utiliza claves de contexto de condición para restringir los valores de usuariode POSIX, estado de privilegio e imagen de contenedor en las containerProperties de una definiciónde trabajo. Para obtener más información, consulte RegisterJobDefinition en la Referencia de la API deAWS Batch. En este ejemplo, las definiciones de trabajo solo se pueden registrar cuando el usuario dePOSIX es nobody, la marca de privilegio es false y la imagen es myImage en un repositorio de AmazonECR.

Important

Docker resuelve el parámetro user en el uid de ese usuario desde la imagen del contenedor. Enla mayoría de los casos, se encuentra en el archivo /etc/passwd de la imagen del contenedor.Esta resolución de nombres se puede evitar si usan valores de uid directos tanto en la definiciónde trabajo como en las políticas de IAM asociadas. Tanto las API de AWS Batch como las clavescondicionales de IAM de batch:User admiten valores numéricos.

La tercera instrucción restringe a un usuario a pasar únicamente un rol específico a una definición detrabajo.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "batch:RegisterJobDefinition" ], "Resource": [ "arn:aws:batch:<aws_region>:<aws_account_id>:job-definition/JobDefA_*" ], "Condition": { "StringEquals": { "batch:User": [ "nobody" ], "batch:Image": [ "<aws_account_id>.dkr.ecr.<aws_region>.amazonaws.com/myImage" ] }, "Bool": { "batch:Privileged": "false" } } }, { "Effect": "Allow", "Action": [ "batch:DeregisterJobDefinition" ], "Resource": [ "arn:aws:batch:<aws_region>:<aws_account_id>:job-definition/JobDefA_*"

90

Page 96: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioRestricción según la definición de trabajo

] }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::<aws_account_id>:role/MyBatchJobRole" ], "Condition": { "StringEquals": { "iam:PassedToService": [ "batch.amazonaws.com" ] } } } ]}

Ejemplo: restricción del envío de un trabajo según elprefijo de la definición de trabajoLa siguiente política permite a un usuario enviar trabajos a cualquier cola de trabajos con cualquier nombrede definición de trabajo que comience por JobDefA_.

Important

Al determinar el ámbito del acceso en el nivel de recursos para el envío de trabajos, debeproporcionar los tipos de recursos de cola de trabajos y de definición de trabajo.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "batch:SubmitJob" ], "Resource": [ "arn:aws:batch:<aws_region>:<aws_account_id>:job-definition/JobDefA_*", "arn:aws:batch:<aws_region>:<aws_account_id>:job-queue/*" ] } ]}

Ejemplo: restricción según la cola de trabajosLa siguiente política permite a un usuario enviar trabajos a una cola de trabajos denominada queue1 concualquier nombre de definición de trabajo.

Important

Al determinar el ámbito del acceso en el nivel de recursos para el envío de trabajos, debeproporcionar los tipos de recursos de cola de trabajos y de definición de trabajo.

{

91

Page 97: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioPolítica administrada de AWS Batch

"Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "batch:SubmitJob" ], "Resource": [ "arn:aws:batch:<aws_region>:<aws_account_id>:job-definition/*", "arn:aws:batch:<aws_region>:<aws_account_id>:job-queue/queue1" ] } ]}

Política administrada de AWS BatchAWS Batch ofrece una política administrada que se puede asociar a los usuarios IAM para concederlespermisos de utilización de recursos de AWS Batch y operaciones de la API. Puede aplicar esta políticadirectamente o utilizarla como punto de partida para crear sus propias políticas. Para obtener másinformación acerca de cada una de las operaciones de la API mencionadas en estas políticas, consulteAcciones en la Referencia de la API de AWS Batch.

AWSBatchFullAccessEsta política proporciona acceso pleno a AWS Batch como administrador.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "batch:*", "cloudwatch:GetMetricStatistics", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeKeyPairs", "ecs:DescribeClusters", "ecs:Describe*", "ecs:List*", "logs:Describe*", "logs:Get*", "logs:TestMetricFilter", "logs:FilterLogEvents", "iam:ListInstanceProfiles", "iam:ListRoles" ], "Resource": "*" }, { "Effect": "Allow", "Action": ["iam:PassRole"], "Resource": [ "arn:aws:iam::*:role/AWSBatchServiceRole", "arn:aws:iam::*:role/ecsInstanceRole", "arn:aws:iam::*:role/iaws-ec2-spot-fleet-role", "arn:aws:iam::*:role/aws-ec2-spot-fleet-role", "arn:aws:iam::*:role/AWSBatchJobRole*" ]

92

Page 98: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioCreación de políticas de IAM

} ]}

Creación de políticas de IAM en AWS BatchPuede crear políticas de IAM específicas para restringir las llamadas y los recursos a los que los usuariosde su cuenta tienen acceso y, a continuación, asociar esas políticas a usuarios de IAM.

Cuando asocia una política a un usuario o grupo de usuarios, les concede o deniega el permiso pararealizar las tareas especificadas en los recursos indicados. Para obtener más información, consultePermisos y políticas en la Guía del usuario de IAM. Para obtener más información sobre cómo crear yadministrar políticas personalizadas de IAM, consulte Administración de políticas de IAM.

Rol de servicio de IAM en AWS BatchAWS Batch hace llamadas a otros servicios de AWS por usted para administrar los recursos que ustedutiliza con el servicio. Para poder utilizar el servicio debe tener una política y un rol de IAM que leproporcionen los permisos necesarios sobre AWS Batch.

En la mayoría de los casos, el rol de servicio de AWS Batch se crea automáticamente en la experiencia deprimer uso de la consola. Puede utilizar el procedimiento siguiente para comprobar si la cuenta ya disponedel rol de servicio de AWS Batch.

La política AWSBatchServiceRole se muestra a continuación.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "ec2:DescribeAccountAttributes", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeKeyPairs", "ec2:DescribeImages", "ec2:DescribeImageAttribute", "ec2:DescribeSpotFleetInstances", "ec2:DescribeSpotFleetRequests", "ec2:DescribeSpotPriceHistory", "ec2:RequestSpotFleet", "ec2:CancelSpotFleetRequests", "ec2:ModifySpotFleetRequest", "ec2:TerminateInstances", "autoscaling:DescribeAccountLimits", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeLaunchConfigurations", "autoscaling:DescribeAutoScalingInstances", "autoscaling:CreateLaunchConfiguration", "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup", "autoscaling:SetDesiredCapacity", "autoscaling:DeleteLaunchConfiguration", "autoscaling:DeleteAutoScalingGroup", "autoscaling:CreateOrUpdateTags", "autoscaling:SuspendProcesses", "autoscaling:PutNotificationConfiguration",

93

Page 99: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioRol de servicio de IAM en AWS Batch

"autoscaling:TerminateInstanceInAutoScalingGroup", "ecs:DescribeClusters", "ecs:DescribeContainerInstances", "ecs:DescribeTaskDefinitions", "ecs:DescribeTasks", "ecs:ListClusters", "ecs:ListContainerInstances", "ecs:ListTaskDefinitionFamilies", "ecs:ListTaskDefinitions", "ecs:ListTasks", "ecs:CreateCluster", "ecs:DeleteCluster", "ecs:RegisterTaskDefinition", "ecs:DeregisterTaskDefinition", "ecs:RunTask", "ecs:StartTask", "ecs:StopTask", "ecs:UpdateContainerAgent", "ecs:DeregisterContainerInstance", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogGroups", "iam:GetInstanceProfile", "iam:PassRole" ], "Resource": "*" }]}

Puede utilizar el procedimiento siguiente para ver si la cuenta ya dispone del rol de servicio de AWS Batchy para asociar la política administrada de IAM en caso necesario.

Para comprobar si AWSBatchServiceRole está en la consola de IAM

1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.2. Seleccione Roles en el panel de navegación.3. En la lista de roles, busque AWSBatchServiceRole. Si el rol no existe, utilice el siguiente

procedimiento para crearlo. Si el rol existe, selecciónelo para ver sus políticas asociadas.4. Elija Permissions.5. Asegúrese de que la política administrada AWSBatchServiceRole se ha asociado al rol. Si la política

se ha asociado, entonces el rol de servicio de AWS Batch está configurado correctamente. En casocontrario, siga los pasos derivados a continuación para asociar la política.

a. Elija Attach Policy.b. Para reducir la lista de las políticas disponibles que desea asociar, en Filtro, escriba

AWSBatchServiceRole.c. Seleccione la política AWSBatchServiceRole y, a continuación, seleccione Asociar política.

6. Seleccione Trust Relationships, Edit Trust Relationship.7. Compruebe que la relación de confianza contiene la siguiente política. Si la relación de confianza

coincide con la política a continuación, seleccione Cancel. Si la relación de confianza no coincide,copie la política en la ventana Policy Document y seleccione Update Trust Policy.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": {"Service": "batch.amazonaws.com"}, "Action": "sts:AssumeRole"

94

Page 100: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioRol de instancia de Amazon ECS

}]}

Para crear el rol de IAM AWSBatchServiceRole.

1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.2. En el panel de navegación, seleccione Roles, Create New Role.3. Para Select type of trusted entity (Seleccionar tipo de entidad de confianza), elija AWS service

(Servicio de AWS). En Choose the service that will use this role (Elegir el servicio que utilizará esterol), elija Batch.

4. Seleccione Next: Permissions (Siguiente: permisos), Next: Tags (Siguiente: etiquetas) y Next: Review(Siguiente: revisar).

5. En Role Name (Nombre de rol), escriba AWSBatchServiceRole y elija Create role (Crear rol).

Rol de instancia de Amazon ECSLos entornos informáticos de AWS Batch incluyen instancias de contenedor de Amazon ECS y ejecutanel agente de contenedor de Amazon ECS localmente. El agente de contenedor de Amazon ECS realizallamadas a varias API de AWS en su nombre. Por lo tanto, las instancias de contenedor que ejecutan elagente requieren un rol y una política de IAM para que los servicios sepan que el agente le pertenece.Antes de crear un entorno informático y lanzar en él instancias de contenedor, es necesario crear un rol yun perfil de instancia de IAM para que esas instancias de contenedor puedan utilizarlo al lanzarlas. Esterequisito se aplica a instancias de contenedor lanzadas con o sin la AMI optimizada para Amazon ECSproporcionada por Amazon.

El perfil de instancia y el rol de instancia de Amazon ECS se crean automáticamente en la experienciade primer uso de la consola. Sin embargo, puede utilizar el procedimiento siguiente para comprobar si lacuenta ya dispone del perfil de instancia y el rol de instancia de Amazon ECS y para asociar la políticaadministrada de IAM en caso necesario.

Para comprobar si ecsInstanceRole está en la consola de IAM

1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.2. Seleccione Roles en el panel de navegación.3. En la lista de roles, busque ecsInstanceRole. Si el rol no existe, utilice los pasos que se indican a

continuación para crearlo.

a. Elija Create Role.b. En Select type of trusted entity (Seleccionar tipo de entidad de confianza), elija AWS service

(Servicio de AWS). En Choose the service that will use this role (Elegir el servicio que usará esterol), elija Elastic Container Service. En Select your use case (Seleccione un caso de uso), hagaclic en EC2 Role for Elastic Container Service (Rol de EC2 para Elastic Container Service).

c. Seleccione Next: Permissions (Siguiente: permisos), Next: Tags (Siguiente: etiquetas) y Next:Review (Siguiente: revisar).

d. En Role Name (Nombre de rol), escriba ecsInstanceRole y elija Create role (Crear rol).

Rol de flota de spot de Amazon EC2Si crea un entorno informático administrado que utiliza instancias de flota de spot de Amazon EC2, debecrear un rol que conceda a la flota de spot permiso para lanzar, etiquetar y terminar instancias en sunombre. Especifique el rol en la solicitud de flota de spot. También debe tener los roles vinculados a

95

Page 101: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioCómo crear roles de flota de spot de AmazonEC2 en la Consola de administración de AWS

servicios AWSServiceRoleForEC2Spot y AWSServiceRoleForEC2SpotFleet para spot y la flota de spotde Amazon EC2. Utilice los procedimientos siguientes para crear todos estos roles. Para obtener másinformación, consulte Usar roles vinculados a servicios y Creación de un rol para delegar permisos a unservicio de AWS en la Guía del usuario de IAM.

Temas• Cómo crear roles de flota de spot de Amazon EC2 en la Consola de administración de AWS (p. 96)• Cómo crear roles de flota de spot de Amazon EC2 con la AWS CLI (p. 97)

Cómo crear roles de flota de spot de Amazon EC2 enla Consola de administración de AWSPara crear el rol de IAM AmazonEC2SpotFleetRole para los entornos informáticos de la flota despot

1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.2. En el panel de navegación, elija Roles, Create role.3. Para Select type of trusted entity (Seleccionar tipo de entidad de confianza), elija AWS service

(Servicio de AWS). En Choose the service that will use this role (Elegir el servicio que utilizará esterol), elija EC2.

4. En la sección Select your use case (Seleccione un caso de uso), haga clic en EC2 Spot Fleet Role(Rol de flota de spot de EC2).

5. Seleccione Next: Permissions (Siguiente: permisos), Next: Tags (Siguiente: etiquetas) y Next: Review(Siguiente: revisar).

Note

Históricamente, había dos políticas administradas para el rol de flota de spot de AmazonEC2.

• AmazonEC2SpotFleetRole: esta era la política administrada original para el rol de flotade spot. Tiene permisos de IAM más estrictos, pero no es compatible con el etiquetadode instancias de spot en entornos informáticos. Si ya había creado un rol de flota despot con esta política, consulte Instancias de spot no etiquetadas en el momento de sucreación (p. 130) para aplicar la nueva política recomendada a ese rol.

• AmazonEC2SpotFleetTaggingRole: este rol proporciona todos los permisos necesariospara etiquetar instancias de spot de Amazon EC2. Utilice este rol para permitir eletiquetado de instancias de spot en sus entornos informáticos de AWS Batch.

6. En Role Name (Nombre del rol), escriba AmazonEC2SpotFleetRole. Elija Create Role.

Para crear el rol vinculado a servicio de IAM denominado AWSServiceRoleForEC2Spot paraspot de Amazon EC2

1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.2. En el panel de navegación, elija Roles, Create role.3. Para Select type of trusted entity (Seleccionar tipo de entidad de confianza), elija AWS service

(Servicio de AWS). En Choose the service that will use this role (Elegir el servicio que utilizará esterol), elija EC2.

4. En la sección Select your use case (Seleccione un caso de uso), haga clic en EC2 - Spot Instances(EC2: instancias de spot).

5. Seleccione Next: Permissions (Siguiente: permisos), Next: Tags (Siguiente: etiquetas) y Next: Review(Siguiente: revisar).

96

Page 102: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioCómo crear roles de flota de spotde Amazon EC2 con la AWS CLI

6. En Role Name (Nombre del rol), escriba AmazonEC2SpotFleetRole. Elija Create Role.

Para crear el rol vinculado a servicio de IAM denominado AWSServiceRoleForEC2SpotFleetpara la flota de spot de Amazon EC2

1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.2. En el panel de navegación, elija Roles, Create role.3. Para Select type of trusted entity (Seleccionar tipo de entidad de confianza), elija AWS service

(Servicio de AWS). En Choose the service that will use this role (Elegir el servicio que utilizará esterol), elija EC2.

4. En la sección Select your use case (Seleccione un caso de uso), haga clic en EC2 - Spot Fleet (EC2:flota de spot).

5. Seleccione Next: Permissions (Siguiente: permisos), Next: Tags (Siguiente: etiquetas) y Next: Review(Siguiente: revisar).

6. En Role Name (Nombre del rol), escriba AWSServiceRoleForEC2SpotFleet. Elija Create role.

Cómo crear roles de flota de spot de Amazon EC2 conla AWS CLIPara crear el rol de IAM AmazonEC2SpotFleetRole para los entornos informáticos de la flota despot

1. Ejecute el siguiente comando con la AWS CLI:

aws iam create-role --role-name AmazonEC2SpotFleetRole \ --assume-role-policy-document '{"Version":"2012-10-17","Statement":[{"Sid":"","Effect":"Allow","Principal":{"Service":"spotfleet.amazonaws.com"},"Action":"sts:AssumeRole"}]}'

2. Para asociar la política de IAM administrada AmazonEC2SpotFleetTaggingRole al rolAmazonEC2SpotFleetRole, ejecute el siguiente comando mediante la AWS CLI:

aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetTaggingRole \ --role-name AmazonEC2SpotFleetRole

Para crear el rol vinculado a servicio de IAM denominado AWSServiceRoleForEC2Spot paraspot de Amazon EC2

• Ejecute el siguiente comando con la AWS CLI:

aws iam create-service-linked-role --aws-service-name spot.amazonaws.com

Para crear el rol vinculado a servicio de IAM denominado AWSServiceRoleForEC2SpotFleetpara la flota de spot de Amazon EC2

• Ejecute el siguiente comando con la AWS CLI:

aws iam create-service-linked-role --aws-service-name spotfleet.amazonaws.com

97

Page 103: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioRol de IAM de Eventos de CloudWatch

Rol de IAM de Eventos de CloudWatchAmazon CloudWatch Events proporciona un flujo casi en tiempo real de eventos del sistema que describenlos cambios en los recursos de Amazon Web Services. Los trabajos de AWS Batch están disponiblescomo destinos de Eventos de CloudWatch. Mediante reglas sencillas que puede configurar rápidamente,puede asignar eventos y enviar trabajos de AWS Batch como respuesta a ellos. Para poder enviar trabajosde AWS Batch con reglas y destinos de Eventos de CloudWatch, Eventos de CloudWatch debe tenerpermisos para ejecutar trabajos de AWS Batch en su nombre.

Note

Cuando cree una regla en la consola de Eventos de CloudWatch que especifique una cola deAWS Batch como destino, se le ofrecerá la oportunidad de crear este rol. Para ver un tutorial deejemplo, consulte Trabajos de AWS Batch como destinos de Eventos de CloudWatch (p. 101).

La relación de confianza para el rol de IAM de Eventos de CloudWatch debe proporcionar al principaldel servicio events.amazonaws.com la posibilidad de asumir dicho rol, tal y como se muestra acontinuación.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ]}

La política asociada a su rol de IAM de Eventos de CloudWatch debe permitir los permisosbatch:SubmitJob en sus recursos. AWS Batch proporciona la política administradaAWSBatchServiceEventTargetRole para proporcionar estos permisos, que se muestran acontinuación.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "batch:SubmitJob" ], "Resource": "*" } ]}

98

Page 104: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioEventos de AWS Batch

Flujo de eventos de AWS Batch paraEventos de CloudWatch

Puede utilizar la secuencia de eventos de AWS Batch para Eventos de CloudWatch para recibirnotificaciones casi en tiempo real sobre el estado actual de los trabajos que se han enviado a las colas detrabajo.

Con Eventos de CloudWatch, puede monitorizar el progreso de los trabajos, crear flujos de trabajopersonalizados de AWS Batch con dependencias complejas, generar informes de uso o métricas de laejecución de los trabajos o bien crear sus propios paneles personalizados. Con AWS Batch y Eventos deCloudWatch, puede eliminar el código de programación y monitorización que sondea continuamente lostrabajos de AWS Batch para detectar cambios en su estado. En su lugar, puede controlar los cambios deestado de los trabajos de AWS Batch de forma asíncrona mediante un destino de Eventos de CloudWatch,como AWS Lambda, Amazon Simple Queue Service, Amazon Simple Notification Service o AmazonKinesis Data Streams.

Se garantiza que los eventos de la secuencia de eventos de AWS Batch se entregan al menos una vez. Encaso de que se envíen eventos duplicados, el evento proporciona información suficiente para identificar losduplicados (puede comparar la marca temporal del evento y el estado del trabajo).

Los trabajos de AWS Batch están disponibles como destinos de Eventos de CloudWatch. Mediante reglassencillas que puede configurar rápidamente, puede asignar eventos y enviar trabajos de AWS Batch comorespuesta a ellos. Para obtener más información, consulte ¿Qué es Amazon CloudWatch Events? en laGuía del usuario de Amazon CloudWatch Events. También puede utilizar Eventos de CloudWatch paraprogramar acciones automatizadas que se activen automáticamente en determinados momentos a travésde expresiones cron o rate. Para obtener más información, consulte Programar expresiones para reglas enla Guía del usuario de Amazon CloudWatch Events. Para ver un tutorial de ejemplo, consulte Trabajos deAWS Batch como destinos de Eventos de CloudWatch (p. 101).

Temas• Eventos de AWS Batch (p. 99)• Trabajos de AWS Batch como destinos de Eventos de CloudWatch (p. 101)• Tutorial: Escucha de Eventos de CloudWatch de AWS Batch (p. 103)• Tutorial: Envío de alertas de Amazon Simple Notification Service para eventos de trabajo con

error (p. 105)

Eventos de AWS BatchAWS Batch envía eventos de cambio en el estado de los trabajos a Eventos de CloudWatch. AWS Batchrealiza un seguimiento del estado de los trabajos. Si el estado de un trabajo enviado previamente cambia,se activa un evento; por ejemplo, si un trabajo que tiene el estado RUNNING pasa al estado FAILED. Estoseventos se clasifican como eventos de cambio en el estado de los trabajos.

Note

AWS Batch podría agregar otros tipos de eventos, orígenes y detalles en el futuro. Si estádeserializando mediante programación datos JSON de eventos, asegúrese de que la aplicación

99

Page 105: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioEventos de cambio de estado de los trabajos

esté preparada para tratar propiedades desconocidas para evitar problemas si se agregan estaspropiedades adicionales.

Eventos de cambio de estado de los trabajosCada vez que un trabajo existente (enviado previamente) cambia de estado, se crea un evento. Paraobtener más información acerca de los estados de los trabajos de AWS Batch, consulte Estados detrabajo (p. 17).

Note

No se crean eventos para el envío inicial de los trabajos.

Example Evento de cambio de estado de los trabajos

Los eventos de cambio de estado de los trabajos se entregan en el siguiente formato (la sección detailsiguiente tiene un aspecto similar al objeto Job que se devuelve desde una operación de API DescribeJobsen la Referencia de la API de AWS Batch). Para obtener más información sobre los parámetros de Eventosde CloudWatch, consulte Eventos y patrones de eventos en la Guía del usuario de Amazon CloudWatchEvents.

{ "version": "0", "id": "c8f9c4b5-76e5-d76a-f980-7011e206042b", "detail-type": "Batch Job State Change", "source": "aws.batch", "account": "aws_account_id", "time": "2017-10-23T17:56:03Z", "region": "us-east-1", "resources": [ "arn:aws:batch:us-east-1:aws_account_id:job/4c7599ae-0a82-49aa-ba5a-4727fcce14a8" ], "detail": { "jobName": "event-test", "jobId": "4c7599ae-0a82-49aa-ba5a-4727fcce14a8", "jobQueue": "arn:aws:batch:us-east-1:aws_account_id:job-queue/HighPriority", "status": "RUNNABLE", "attempts": [], "createdAt": 1508781340401, "retryStrategy": { "attempts": 1 }, "dependsOn": [], "jobDefinition": "arn:aws:batch:us-east-1:aws_account_id:job-definition/first-run-job-definition:1", "parameters": {}, "container": { "image": "busybox", "vcpus": 2, "memory": 2000, "command": [ "echo", "'hello world'" ], "volumes": [], "environment": [], "mountPoints": [], "ulimits": [] } }}

100

Page 106: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioTrabajos de AWS Batch como

destinos de Eventos de CloudWatch

Trabajos de AWS Batch como destinos de Eventosde CloudWatch

Amazon CloudWatch Events proporciona un flujo casi en tiempo real de eventos del sistema que describencambios en recursos de Amazon Web Services. Los trabajos de AWS Batch están disponibles comodestinos de Eventos de CloudWatch. Mediante reglas sencillas que puede configurar rápidamente, puedeasignar eventos y enviar trabajos de AWS Batch como respuesta a ellos. Para obtener más información,consulte ¿Qué es Amazon CloudWatch Events? en la Guía del usuario de Amazon CloudWatch Events.

También puede utilizar Eventos de CloudWatch para programar acciones automatizadas que se activenautomáticamente en determinados momentos a través de expresiones cron o rate. Para obtener másinformación, consulte Programar expresiones para reglas en la Guía del usuario de Amazon CloudWatchEvents.

A continuación se indican algunos casos de uso comunes para trabajos de AWS Batch como destinos deEventos de CloudWatch:

• Crear un trabajo programado que tiene lugar a intervalos regulares, como un trabajo cron que se realizaen las horas de baja actividad, cuando las instancias de spot de Amazon EC2 son más económicas.

• Ejecute un trabajo de AWS Batch en respuesta a una operación de API registrada en CloudTrail como,por ejemplo, enviar automáticamente un trabajo cuando se carga un objeto en un bucket de AmazonS3 especificado y pasar el nombre de bucket y de clave del objeto a los parámetros de AWS Batchmediante el transformador de entrada de Eventos de CloudWatch.

Note

En este caso, todos los recursos de AWS (bucket de Amazon S3, regla de Eventos deCloudWatch, registros de CloudTrail, etc.) deben estar en la misma región.

Para poder enviar trabajos de AWS Batch con reglas y destinos de Eventos de CloudWatch, el serviciode Eventos de CloudWatch necesita permisos para ejecutar trabajos de AWS Batch en su nombre.Cuando cree una regla en la consola de Eventos de CloudWatch que especifique un trabajo de AWSBatch como destino, se le ofrecerá la oportunidad de crear este rol. Para obtener más información sobreel principal de servicio y los permisos de IAM necesarios para este rol, consulte Rol de IAM de Eventos deCloudWatch (p. 98).

Creación de un trabajo de AWS Batch programadoEl siguiente procedimiento muestra cómo crear un trabajo de AWS Batch programado y el rol de IAM deEventos de CloudWatch necesario.

Para crear un trabajo de AWS Batch programado con Eventos de CloudWatch

1. Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.2. En el panel de navegación izquierdo, elija Eventos, Crear regla.3. En Event source (Origen del evento), elija Programación y si desea utilizar un programa de intervalo

fijo o una expresión cron para la regla de programación. Para obtener más información, consulteProgramar expresiones para reglas en la Guía del usuario de Amazon CloudWatch Events.

• En Fixed rate of (Intervalo fijo de), introduzca el intervalo y la unidad del programa.• En Cron expression, introduzca la expresión cron expresión para su programa de tareas. Estas

expresiones tienen seis campos obligatorios, y los campos van separados por espacios en blanco.Para obtener más información y ejemplos de expresiones cron, consulte Expresiones Cron en laGuía del usuario de Amazon CloudWatch Events.

101

Page 107: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioTransformador de entrada de eventos

4. En Targets, seleccione Add target.5. Elija Batch job queue (Cola de trabajos por lotes) y rellene los campos siguientes según corresponda:

• Cola de trabajo: introduzca el nombre de recurso de Amazon (ARN) de la cola de trabajos en la queva a programar el trabajo.

• Definición de trabajo: introduzca el nombre y la revisión o el ARN completo de la definición detrabajo que va a utilizar para el trabajo.

• Nombre de trabajo: introduzca un nombre para el trabajo.• Tamaño de la matriz: (opcional) introduzca un tamaño de matriz para que el trabajo ejecute más de

una copia. Para obtener más información, consulte Trabajos de matrices (p. 21).• Intentos de trabajo: (opcional) introduzca el número de veces que se debe reintentar el trabajo si se

produce un error. Para obtener más información, consulte Reintentos automáticos de trabajo (p. 20).6. Elija un rol de IAM de Eventos de CloudWatch existente para utilizarlo en el trabajo, o elija Create a

new role for this specific resource (Crear un nuevo rol para este recurso específico) para crear unonuevo. Para obtener más información, consulte Rol de IAM de Eventos de CloudWatch (p. 98).

7. En Rule definition (Definición de la regla), rellene los siguientes campos según corresponda y, acontinuación, elija Crear regla.

• Nombre: introduzca un nombre para la regla.• Descripción: (opcional) introduzca una descripción para la regla.• Estado: elija si desea habilitar la regla para que comience la programación en el siguiente intervalo,

o deshabilitarla para habilitarla más adelante.

Pasar información de eventos a un destino de AWSBatch mediante el transformador de entrada deEventos de CloudWatchPuede utilizar el transformador de entrada de Eventos de CloudWatch para pasar información del eventoa AWS Batch al enviar un trabajo. Esto puede ser especialmente útil si va a desencadenar trabajos comoresultado de la información de otro evento de AWS, como cargar un objeto en un bucket de AmazonS3. Puede utilizar una definición de trabajo con valores de sustitución de parámetros en el comando delcontenedor. El transformador de entrada de Eventos de CloudWatch puede proporcionar los valores de losparámetros en función de los datos del evento. Por ejemplo, la siguiente definición de trabajo espera losvalores de parámetros S3bucket y S3key.

{ "jobDefinitionName": "echo-parameters", "containerProperties": { "image": "busybox", "vcpus": 2, "memory": 2000, "command": [ "echo", "Ref::S3bucket", "Ref::S3key" ] }}

A continuación, solo tiene que crear un destino de eventos de AWS Batch que analice la información delevento que se desencadena y la convierta en un objeto parameters. Cuando se ejecuta el trabajo, losparámetros del evento que se desencadena se pasan al comando del contenedor del trabajo.

102

Page 108: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioTutorial: Escucha de Eventos de CloudWatch de AWS Batch

Note

En este caso, todos los recursos de AWS (bucket de Amazon S3, regla de Eventos deCloudWatch, registros de CloudTrail, etc.) deben estar en la misma región.

Para crear un destino de AWS Batch que utilice el transformador de entrada

1. Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.2. En el panel de navegación izquierdo, elija Eventos, Crear regla.3. En Event source (Origen del evento), elija Event Pattern (Patrón de eventos) y, a continuación, cree

una regla que se corresponda con las necesidades de la aplicación.4. En Targets (Destinos), seleccione Batch job queue (Cola de trabajos de Batch) y después especifique

la cola del trabajos, la definición de trabajo y el nombre del trabajo que se van a utilizar para lostrabajos que se desencadenan mediante esta regla.

5. Elija Configure input (Configurar entrada) y, a continuación, elija Input Transformer (Transformador deentrada).

6. En el cuadro de texto del transformador de entrada superior, especifique los valores que se van aanalizar del evento que se desencadena. Por ejemplo, para analizar el nombre de bucket y de clavede un evento de Amazon S3, utilice el siguiente JSON.

{"S3BucketValue":"$.detail.requestParameters.bucketName","S3KeyValue":"$.detail.requestParameters.key"}

7. Para el cuadro de texto del transformador de entrada inferior, cree la estructura Parameters que seva a pasar al trabajo de AWS Batch. Estos parámetros se sustituyen por los marcadores de posiciónRef:S3bucket y Ref:S3key en el comando del contenedor del trabajo cuando se ejecuta el trabajo.

{"Parameters" : {"S3bucket": <S3BucketValue>, "S3key": <S3KeyValue>}}

8. Elija un rol de IAM de Eventos de CloudWatch existente para utilizarlo en el trabajo, o elija Create anew role for this specific resource (Crear un nuevo rol para este recurso específico) para crear unonuevo. Para obtener más información, consulte Rol de IAM de Eventos de CloudWatch (p. 98).

9. Elija Configure details (Configurar detalles) y, en Rule definition (Definición de regla), rellene lossiguientes campos según corresponda y, a continuación, elija Crear regla.

• Nombre: introduzca un nombre para la regla.• Descripción: (opcional) introduzca una descripción para la regla.• Estado: elija si desea habilitar la regla o deshabilitarla para habilitarla más adelante.

Tutorial: Escucha de Eventos de CloudWatch deAWS Batch

En este tutorial, configurará una función de AWS Lambda sencilla que escucha eventos de trabajos deAWS Batch y los escribe en un flujo de registros de CloudWatch Logs.

Requisitos previosEn este tutorial se supone que tiene un entorno informático y una cola de trabajos que están listos paraaceptar trabajos. Si no dispone de un entorno informático y una cola de trabajos para capturar eventos,siga los pasos de Introducción a AWS Batch (p. 10) para crearlos. Al final de este tutorial, puede enviar untrabajo a esta cola de trabajos para probar que ha configurado la función Lambda correctamente.

103

Page 109: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioPaso 1: Crear la función de Lambda

Paso 1: Crear la función de LambdaEn este procedimiento, creará una función de Lambda sencilla que servirá como destino para los mensajesdel flujo de eventos de AWS Batch.

Para crear una función Lambda de destino

1. Abra la consola de AWS Lambda en https://console.aws.amazon.com/lambda/.2. Elija Create a Lambda function (Crear una función de Lambda), Author from scratch (Crear desde

cero).3. En Nombre, introduzca batch-event-stream-handler.4. En Rol, elija Create a custom role (Crear un rol personalizado), Permitir.5. Elija Create function.6. En la sección Function code (Código de función), elija Python 2.7 para el tiempo de ejecución y edite

el código de muestra para que coincida con el siguiente ejemplo:

import json

def lambda_handler(event, context): if event["source"] != "aws.batch": raise ValueError("Function only supports input from events with a source type of: aws.batch") print(json.dumps(event))

Se trata de una función simple de Python 2.7 que imprime los eventos enviados por AWS Batch. Sitodo está configurado correctamente, al final de este tutorial verá los detalles de los eventos queaparecerán en el flujo de registros de CloudWatch Logs asociado a esta función de Lambda.

7. Seleccione Save.

Paso 2: Registrar una regla de eventosA continuación, se crea una regla de evento de Eventos de CloudWatch que captura eventos de trabajosprocedentes de sus recursos de AWS Batch. Esta regla captura todos los eventos procedentes de AWSBatch dentro de la cuenta donde se define. Los propios mensajes de trabajos contienen informaciónacerca del origen del evento, incluida la cola de trabajos a la que se envió, que puede usar para filtrar yordenar los eventos mediante programación.

Note

Cuando se utiliza la Consola de administración de AWS para crear una regla de eventos, laconsola añade automáticamente los permisos de IAM necesarios para otorgar permisos a Eventosde CloudWatch para llamar a la función de Lambda. Si crea una regla de evento utilizando la AWSCLI, tiene que otorgar permisos explícitamente. Para obtener más información, consulte Eventos ypatrones de eventos en la Guía del usuario de Amazon CloudWatch.

Para crear su regla de Eventos de CloudWatch

1. Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.2. En el panel de navegación, seleccione Events, Create rule.3. En Event source (Origen de evento), seleccione Event Pattern (Patrón de evento) como origen

del evento y, a continuación, seleccione Build custom event pattern (Crear patrón de eventopersonalizado).

4. Pegue el siguiente patrón de eventos en el área de texto.

104

Page 110: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioPaso 3: Probar la configuración

{ "source": [ "aws.batch" ]}

Esta regla se aplica a todos los eventos de AWS Batch para todos los grupos de AWS Batch. Tambiénpuede crear una regla más específica para filtrar algunos resultados.

5. En Targets, seleccione Add target. En Target type (Tipo de destino), elija Función Lambda yseleccione su la función de Lambda.

6. Seleccione Configure details.7. Para Rule definition, escriba un nombre y la descripción para su regla y seleccione Create rule.

Paso 3: Probar la configuraciónPor último, puede probar su configuración de Eventos de CloudWatch enviando un trabajo a la cola detrabajos. Si todo está configurado correctamente, su función de Lambda se activa y escribe los datos delevento en una secuencia de registros de CloudWatch Logs para la función.

Para probar la configuración

1. Abra la consola de AWS Batch en https://console.aws.amazon.com/batch/.2. Envíe un nuevo trabajo de AWS Batch. Para obtener más información, consulte Enviar un

trabajo (p. 15).3. Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.4. En el panel de navegación, elija Logs (Registros) y seleccione el grupo de registros para la función de

Lambda (por ejemplo, /aws/lambda/my-function).5. Seleccione una secuencia de registro para ver los datos de los eventos.

Tutorial: Envío de alertas de Amazon SimpleNotification Service para eventos de trabajo conerror

En este tutorial, se configura una regla de eventos de Eventos de CloudWatch que solo captura eventosde trabajo en los que el trabajo ha pasado a un estado FAILED. Al final de este tutorial, puede enviar untrabajo a esta cola de trabajos para probar que ha configurado las alertas de Amazon SNS correctamente.

Requisitos previosEn este tutorial se supone que tiene un entorno informático y una cola de trabajos que están listos paraaceptar trabajos. Si no dispone de un entorno informático y una cola de trabajos para capturar eventos,siga los pasos de Introducción a AWS Batch (p. 10) para crearlos.

Paso 1: Crear y suscribirse a un tema de AmazonSNSPara este tutorial, configure un tema de Amazon SNS para servir como destino de eventos para la nuevaregla de eventos.

105

Page 111: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioPaso 2: Registrar una regla de eventos

Para crear un tema de Amazon SNS

1. Abra la consola de Amazon SNS en https://console.aws.amazon.com/sns/v3/home/.2. Elija Topics, Create new topic.3. Para Topic name (Nombre del tema), escriba JobFailedAlert y, a continuación, elija Create topic

(Crear tema).4. Seleccione el tema que acaba de crear. En la pantalla Topic details: JobFailedAlert (Detalles del tema:

JobFailedAlert), elija Create subscription (Crear suscripción).5. Para Protocol, elija Email. Para Endpoint, introduzca una dirección de correo electrónico a la que

actualmente tiene acceso y elija Create subscription.6. Consulte su cuenta de correo electrónico y espere para recibir un mensaje de correo electrónico de

confirmación de la suscripción. Cuando lo reciba, elija Confirm subscription.

Paso 2: Registrar una regla de eventosA continuación, registre una regla de eventos que solo capture los eventos de trabajos con error.

Para crear una regla de eventos

1. Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.2. En el panel de navegación, elija Events, Create rule.3. Seleccione Show advanced options, edit.4. Para Build a pattern that selects events for processing by your targets, reemplace el texto existente

con el siguiente texto:

{ "detail-type": [ "Batch Job State Change" ], "source": [ "aws.batch" ], "detail": { "status": [ "FAILED" ] }}

Este código define una regla de Eventos de CloudWatch que coincide con cualquier evento en el queel estado del trabajo sea FAILED. Para obtener más información acerca de los patrones de eventos,consulte Eventos y patrones de eventos en la Guía del usuario de Amazon CloudWatch.

5. En Targets, seleccione Add target. En Target type (Tipo de destino), elija SNS topic (Tema de SNS),JobFailedAlert.

6. Seleccione Configure details.7. Para Rule definition, escriba un nombre y la descripción para su regla y, a continuación, seleccione

Create rule.

Paso 3: Comprobación de la reglaPara probar la regla, envíe un trabajo que se cierre poco después de que comience y tenga un códigode salida distinto de cero. Si la regla de eventos está configurada correctamente, recibirá un mensaje decorreo electrónico en unos minutos con el texto del evento.

106

Page 112: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioPaso 3: Comprobación de la regla

Para probar una regla

1. Abra la consola de AWS Batch en https://console.aws.amazon.com/batch/.2. Envíe un nuevo trabajo de AWS Batch. Para obtener más información, consulte Enviar un

trabajo (p. 15). Para el comando del trabajo, sustituya este comando para salir del contenedor con uncódigo de salida de 1.

/bin/sh, -c, 'exit 1'

3. Consulte su correo electrónico para confirmar que ha recibido un correo electrónico de alerta paranotificarle que el trabajo ha dado error.

107

Page 113: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioInformación de AWS Batch en CloudTrail

Registro de llamadas a la API deAWS Batch con AWS CloudTrail

AWS Batch está integrado con AWS CloudTrail, un servicio que proporciona un registro de las accionesrealizadas por un usuario, una función o un servicio de AWS en AWS Batch. CloudTrail captura todas lasllamadas a la API de AWS Batch como eventos. Las llamadas capturadas incluyen las llamadas realizadasdesde la consola de AWS Batch y las llamadas de código a las operaciones de la API de AWS Batch.Si crea un registro de seguimiento, puede habilitar la entrega continua de eventos de CloudTrail a unbucket de Amazon S3, incluidos los eventos de AWS Batch. Si no configura un registro de seguimiento,puede ver los eventos más recientes en la consola de CloudTrail en el Event history (Historial de eventos).Mediante la información que recopila CloudTrail, se puede determinar la solicitud que se envió a AWSBatch, la dirección IP desde la que se realizó la solicitud, quién la realizó, cuándo la realizó y los detallesadicionales.

Para obtener más información sobre CloudTrail, consulte la AWS CloudTrail User Guide.

Información de AWS Batch en CloudTrailCloudTrail se habilita en una cuenta de AWS al crearla. Cuando se produce una actividad en AWS Batch,dicha actividad se registra en un evento de CloudTrail junto con los eventos de los demás servicios deAWS en el Event history (Historial de eventos). Puede ver, buscar y descargar los últimos eventos dela cuenta de AWS. Para obtener más información, consulte Visualización de eventos con el historial deeventos de CloudTrail.

Para mantener un registro continuo de los eventos de la cuenta de AWS, incluidos los eventos de AWSBatch, cree un registro de seguimiento. Un registro de seguimiento permite a CloudTrail enviar archivos deregistro a un bucket de Amazon S3. De forma predeterminada, cuando se crea un registro de seguimientoen la consola, este se aplica a todas las regiones de AWS. El registro de seguimiento registra los eventosde todas las regiones de la partición de AWS y envía los archivos de registro al bucket de Amazon S3especificado. También puede configurar otros servicios de AWS para analizar y actuar en función de losdatos de eventos recopilados en los registros de CloudTrail. Para obtener más información, consulte lossiguientes temas:

• Introducción a la creación de registros de seguimiento• Servicios e integraciones compatibles con CloudTrail• Configuración de notificaciones de Amazon SNS para CloudTrail• Recibir archivos de registro de CloudTrail de varias regiones y Recepción de archivos de registro de

CloudTrail de varias cuentas

Todas las acciones de AWS Batch las registra CloudTrail y están documentadas en la https://docs.aws.amazon.com/batch/latest/APIReference/. Por ejemplo, las llamadas a las secciones SubmitJob,ListJobs y DescribeJobs generan entradas en los archivos de registro de CloudTrail.

Cada entrada de registro o evento contiene información acerca de quién generó la solicitud. La informaciónde identidad del usuario le ayuda a determinar lo siguiente:

• Si la solicitud se realizó con credenciales de usuario raíz o de AWS Identity and Access Management(IAM).

108

Page 114: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioDescripción de las entradas de

archivos de registro de AWS Batch

• Si la solicitud se realizó con credenciales de seguridad temporales de un rol o fue un usuario federado.• Si la solicitud la realizó otro servicio de AWS.

Para obtener más información, consulte el elemento userIdentity de CloudTrail.

Descripción de las entradas de archivos de registrode AWS Batch

Un registro de seguimiento es una configuración que permite la entrega de eventos como archivos deregistro al bucket de Amazon S3 que se especifique. Los archivos de registro de CloudTrail contienenuna o varias entradas de registro. Un evento representa una única solicitud de cualquier origen e incluyeinformación sobre la acción solicitada, la fecha y la hora de la acción, los parámetros de la solicitud,etcétera. Los archivos de registro de CloudTrail no están un rastro de la pila ordenada de las llamadas a laAPI públicas, por lo que no aparecen en ningún orden específico.

En el ejemplo siguiente, se muestra una entrada de registro de CloudTrail que ilustra la acciónCreateComputeEnvironment.

{ "eventVersion": "1.05", "userIdentity": { "type": "AssumedRole", "principalId": "AIDACKCEVSQ6C2EXAMPLE:admin", "arn": "arn:aws:sts::012345678910:assumed-role/Admin/admin", "accountId": "012345678910", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2017-12-20T00:48:46Z" }, "sessionIssuer": { "type": "Role", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::012345678910:role/Admin", "accountId": "012345678910", "userName": "Admin" } } }, "eventTime": "2017-12-20T00:48:46Z", "eventSource": "batch.amazonaws.com", "eventName": "CreateComputeEnvironment", "awsRegion": "us-east-1", "sourceIPAddress": "203.0.113.1", "userAgent": "aws-cli/1.11.167 Python/2.7.10 Darwin/16.7.0 botocore/1.7.25", "requestParameters": { "computeResources": { "subnets": [ "subnet-5eda8e04" ], "tags": { "testBatchTags": "CLI testing CE" }, "desiredvCpus": 0, "minvCpus": 0, "instanceTypes": [ "optimal"

109

Page 115: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioDescripción de las entradas de

archivos de registro de AWS Batch

], "securityGroupIds": [ "sg-aba9e8db" ], "instanceRole": "ecsInstanceRole", "maxvCpus": 128, "type": "EC2" }, "state": "ENABLED", "type": "MANAGED", "serviceRole": "service-role/AWSBatchServiceRole", "computeEnvironmentName": "Test" }, "responseElements": { "computeEnvironmentName": "Test", "computeEnvironmentArn": "arn:aws:batch:us-east-1:012345678910:compute-environment/Test" }, "requestID": "890b8639-e51f-11e7-b038-EXAMPLE", "eventID": "874f89fa-70fc-4798-bc00-EXAMPLE", "readOnly": false, "eventType": "AwsApiCall", "recipientAccountId": "012345678910"}

110

Page 116: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioPaso 1: Crear una dirección IPelástica para su gateway NAT

Tutorial: Creación de una VPC consubredes públicas y privadas parasus

Este tutorial le guiará durante la creación de una VPC con dos subredes públicas y dos subredes privadas,que disponen de acceso a Internet a través de una gateway NAT.

Paso 1: Crear una dirección IP elástica para sugateway NAT

Una gateway NAT requiere una dirección IP elástica de la subred pública, pero el asistente para VPC no lacrea. Cree la dirección IP elástica antes de ejecutar el asistente para VPC.

Para crear una dirección IP elástica

1. Abra la consola de Amazon VPC en https://console.aws.amazon.com/vpc/.2. En el panel de navegación izquierdo, elija Elastic IPs.3. Elija Allocate new address, Allocate, Close.4. Anote el Allocation ID de la dirección IP elástica recién creada; tendrá que introducirlo más adelante

en el asistente para VPC.

Paso 2: Ejecutar el asistente para VPCEl asistente para VPC crea y configura automáticamente la mayoría de los recursos de la VPC.

Para ejecutar el asistente para VPC

1. En el panel de navegación izquierdo, elija VPC Dashboard.2. Elija Launch VPC Wizard (Lanzar asistente de VPC), VPC with Public and Private Subnets (VPC con

subredes públicas y privadas), Select (Seleccionar).3. En VPC nombre, asigne a la VPC un nombre único.4. En Elastic IP Allocation ID, elija el ID de la dirección IP elástica que creó anteriormente.5. Seleccione Create VPC.6. Una vez finalizado el asistente, elija OK. Anote la zona de disponibilidad en la que se crearon las

subredes de la VPC. Las subredes adicionales deben crearse en otra zona de disponibilidad.

Las subredes no predeterminadas, como las creadas por el asistente de VPC, no son direccionesIPv4 públicas asignadas automáticamente. Las instancias iniciadas en la subred pública deben tenerasignada una dirección IPv4 pública para poder comunicarse con el punto de enlace del servicio deAmazon ECS.

Para modificar el comportamiento de las direcciones IPv4 públicas de su subred

1. En el panel de navegación izquierdo, elija Subnets.

111

Page 117: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioPaso 3: Crear subredes adicionales

2. Seleccione la subred pública para su VPC. De manera predeterminada, el nombre que crea elasistente de VPC es Public subnet (Subred pública).

3. Elija Actions (Acciones), Modify auto-assign IP settings (Modificar configuración de asignaciónautomática de IP).

4. Marque la casilla Enable auto-assign public IPv4 address (Habilitar asignación automática dedirecciones IPv4 públicas) y elija Save (Guardar).

Paso 3: Crear subredes adicionalesEl asistente crea una VPC con una sola subred pública y una sola subred privada en una única zona dedisponibilidad. Para una mayor disponibilidad, debe crear al menos uno más de cada tipo de subred enuna zona de disponibilidad diferente para que su VPC tenga subredes públicas y privadas en dos zonas dedisponibilidad.

Para crear una subred privada adicional

1. En el panel de navegación izquierdo, elija Subnets.2. Elija Create Subnet.3. En Name tag, introduzca un nombre para la subred, como Subred privada.4. En VPC, elija la VPC que creó anteriormente.5. En Availability Zone, elija una zona de disponibilidad diferente de la zona en la que se encuentran las

subredes originales en la VPC.6. En IPv4 CIDR block, introduzca un bloque de CIDR válido. Por ejemplo, el asistente crea bloques

de CIDR en 10.0.0.0/24 y 10.0.1.0/24 de forma predeterminada. Puede utilizar 10.0.3.0/24 para lasegunda subred privada.

7. Elija Yes, Create.

Para crear una subred pública adicional

1. En el panel de navegación izquierdo, elija Subnets y, a continuación, Create Subnet.2. En Name tag, introduzca un nombre para la subred, como Subred pública.3. En VPC, elija la VPC que creó anteriormente.4. En Availability Zone, elija la misma zona de disponibilidad en la que se encuentra la subred privada

adicional que creó en el procedimiento anterior.5. En IPv4 CIDR block, introduzca un bloque de CIDR válido. Por ejemplo, el asistente crea bloques

de CIDR en 10.0.0.0/24 y 10.0.1.0/24 de forma predeterminada. Puede utilizar 10.0.2.0/24 para lasegunda subred pública.

6. Elija Yes, Create.7. Seleccione la subred pública recién creada y elija Route Table, Edit.8. De forma predeterminada, se selecciona la tabla de ruteo privada. Elija la otra tabla de ruteo

disponible para que el destino 0.0.0.0/0 se dirija a la gateway de Internet (igw-xxxxxxxx) y elija Save.9. Con la segunda subred pública todavía seleccionada, elija Subnet Actions, Modify auto-assign IP

settings.10. Seleccione Enable auto-assign public IPv4 address y elija Save, Close.

Pasos siguientesDespués de crear la VPC, se recomiendan los siguientes pasos:

112

Page 118: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioPasos siguientes

• Cree grupos de seguridad para los recursos públicos y privados si necesitan acceso de red de entrada.Para obtener más información, consulte Uso de grupos de seguridad en la Guía del usuario de AmazonVPC.

113

Page 119: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioIdentity and Access Management

Seguridad en AWS BatchLa seguridad es una responsabilidad compartida entre AWS y usted. El modelo de responsabilidadcompartida la describe como seguridad de la nube y seguridad en la nube.

• Seguridad de la nube – AWS es responsable de proteger la infraestructura que ejecuta servicios deAWS en la nube de AWS. AWS también proporciona servicios que puede utilizar de forma segura. Losauditores externos prueban y verifican periódicamente la eficacia de nuestra seguridad como parte delos Programas de conformidad de AWS . Para obtener información sobre los programas de cumplimientoque se aplican a AWS Batch, consulte Servicios de AWS en el ámbito del programa de conformidad.

• Seguridad en la nube – su responsabilidad viene determinada por el servicio de AWS que utilice.También es responsable de otros factores, incluida la confidencialidad de los datos, los requisitos de laempresa y la legislación y los reglamentos aplicables.

Esta documentación le ayuda a comprender cómo aplicar el modelo de responsabilidad compartida cuandose utiliza AWS Batch. En los siguientes temas, se le mostrará cómo configurar AWS Batch para satisfacersus objetivos de seguridad y conformidad. También puede aprender a utilizar otros servicios de AWS quele ayudan a supervisar y proteger sus recursos de AWS Batch.

Temas• Identity and Access Management para AWS Batch (p. 114)• Validación de la conformidad para AWS Batch (p. 125)• Seguridad de la infraestructura en AWS Batch (p. 125)

Identity and Access Management para AWS BatchAWS Identity and Access Management (IAM) es un servicio de AWS que ayuda a un administrador acontrolar de forma segura el acceso a los recursos de AWS. Los administradores de IAM controlan quiénpuede ser autenticado (iniciar sesión) y estar autorizado (tener permisos) para utilizar los recursos de AWSBatch. IAM es un servicio de AWS que se puede utilizar sin costo adicional.

Temas• Público (p. 114)• Autenticación con identidades (p. 115)• Administración de acceso mediante políticas (p. 117)• Funcionamiento de AWS Batch con IAM (p. 118)• Ejemplos de políticas basadas en identidad de AWS Batch (p. 121)• Solución de problemas de identidad y acceso en AWS Batch (p. 123)

PúblicoLa forma en que utilice AWS Identity and Access Management (IAM) difiere, en función del trabajo querealice en AWS Batch.

Usuario de servicio: si utiliza el servicio AWS Batch para realizar su trabajo, su administrador leproporciona las credenciales y los permisos que necesita. A medida que utilice más características de

114

Page 120: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioAutenticación con identidades

AWS Batch para realizar su trabajo, es posible que necesite permisos adicionales. Entender cómo seadministra el acceso puede ayudarle a solicitar los permisos correctos a su administrador. Si no puedeacceder a una característica en AWS Batch, consulte Solución de problemas de identidad y acceso enAWS Batch (p. 123).

Administrador de servicio: si está a cargo de los recursos de AWS Batch en su empresa, probablementetenga acceso completo a AWS Batch. Su trabajo consiste en determinar qué a características y recursosde AWS Batch deben acceder sus empleados. A continuación, debe enviar solicitudes a su administradorde IAM para cambiar los permisos de los usuarios de su servicio. Revise la información de esta páginapara conocer los conceptos básicos de IAM. Para obtener más información sobre cómo su empresa puedeutilizar IAM con AWS Batch, consulte Funcionamiento de AWS Batch con IAM (p. 118).

Administrator de IAM: si es un administrador de IAM, es posible que quiera conocer información sobrecómo escribir políticas para administrar el acceso a AWS Batch. Para ver ejemplos de políticas basadasen la identidad de AWS Batch que puede utilizar en IAM, consulte Ejemplos de políticas basadas enidentidad (p. 121).

Autenticación con identidadesLa autenticación es la manera de iniciar sesión en AWS mediante credenciales de identidad. Para obtenermás información acerca del inicio de sesión con la Consola de administración de AWS, consulte Laconsola de IAM y la página de inicio de sesión en la Guía del usuario de IAM.

Debe estar autenticado (haber iniciado sesión en AWS) como Usuario raíz de la cuenta de AWS, usuariode IAM o asumiendo un rol de IAM. También puede utilizar la autenticación de inicio de sesión único desu empresa o incluso iniciar sesión con Google o Facebook. En estos casos, su administrador habráconfigurado previamente la federación de identidad mediante roles de IAM. Cuando obtiene acceso a AWSmediante credenciales de otra empresa, asume un rol indirectamente.

Para iniciar sesión directamente en la Consola de administración de AWS, use su contraseña con sucorreo electrónico usuario raíz o su nombre de usuario de IAM. Puede obtener acceso a AWS medianteprogramación utilizando sus claves de acceso usuario raíz o de usuario de IAM. AWS proporciona SDK yherramientas de línea de comandos para firmar criptográficamente su solicitud con sus credenciales. Si noutiliza las herramientas de AWS, debe firmar usted mismo la solicitud. Para ello, utilice Signature Version4, un protocolo para autenticar solicitudes de API de entrada. Para obtener más información acerca de laautenticación de solicitudes, consulte Proceso de firma Signature Version 4 en la AWS General Reference.

Independientemente del método de autenticación que utilice, es posible que también deba proporcionarinformación de seguridad adicional. Por ejemplo, AWS le recomienda el uso de la autenticación multifactor(MFA) para aumentar la seguridad de su cuenta. Para obtener más información, consulte Uso de Multi-Factor Authentication (MFA) en AWS en la Guía del usuario de IAM.

Usuario raíz de la cuenta de AWSCuando se crea por primera vez una cuenta de AWS, se comienza con una única identidad de inicio desesión que tiene acceso completo a todos los servicios y recursos de AWS de la cuenta. Esta identidadrecibe el nombre de AWS de la cuenta de usuario raíz y se obtiene acceso a ella iniciando sesión con ladirección de correo electrónico y la contraseña que utilizó para crear la cuenta. Le recomendamos queno utilice usuario raíz en sus tareas cotidianas, ni siquiera en las tareas administrativas. En lugar de ello,es mejor ceñirse a la práctica recomendada de utilizar exclusivamente usuario raíz para crear el primerusuario de IAM. A continuación, guarde las credenciales de usuario raíz en un lugar seguro y utilícelasúnicamente para algunas tareas de administración de cuentas y servicios.

Usuarios y grupos de IAMUn usuario de IAM es una entidad de la cuenta de AWS que dispone de permisos específicos para unasola persona o aplicación. Un usuario de IAM puede tener credenciales a largo plazo, como un nombre

115

Page 121: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioAutenticación con identidades

de usuario y una contraseña o un conjunto de claves de acceso. Para obtener más información acerca decómo generar claves de acceso, consulte Administración de las claves de acceso de los usuarios de IAMen la Guía del usuario de IAM. Al generar claves de acceso para un usuario de IAM, asegúrese de ver yguardar de forma segura el par de claves. No puede recuperar la clave de acceso secreta en el futuro. Ensu lugar, debe generar un nuevo par de claves de acceso.

Un grupo de IAM es una identidad que especifica un conjunto de usuarios de IAM. No puede iniciar sesióncomo grupo. Puede usar los grupos para especificar permisos para varios usuarios a la vez. Los gruposfacilitan la administración de los permisos de grandes conjuntos de usuarios. Por ejemplo, podría tener ungrupo cuyo nombre fuese Administradores de IAM y conceder permisos a dicho grupo para administrar losrecursos de IAM.

Los usuarios son diferentes de los roles. Un usuario se asocia exclusivamente a una persona o aplicación,pero la intención es que cualquier usuario pueda asumir un rol que necesite. Los usuarios tienencredenciales permanentes a largo plazo y los roles proporcionan credenciales temporales. Para obtenermás información, consulte Cuándo crear un usuario de IAM (en lugar de un rol) en la Guía del usuario deIAM.

Roles de IAMUn rol de IAM es una entidad de la cuenta de AWS que dispone de permisos específicos. Es similar aun usuario de IAM, pero no está asociado a una determinada persona. Puede asumir temporalmente unrol de IAM en la Consola de administración de AWS cambiando de roles. Puede asumir un rol llamandoa una operación de la AWS CLI o de la API de AWS, o utilizando una URL personalizada. Para obtenermás información acerca de los métodos para el uso de roles, consulte Uso de roles de IAM en la Guía delusuario de IAM.

Los roles de IAM con credenciales temporales son útiles en las siguientes situaciones.

• Permisos de usuario temporales de IAM: un usuario de IAM puede asumir un rol de IAM para recibirtemporalmente permisos distintos que le permitan realizar una tarea concreta.

• Acceso de usuario federado: En lugar de crear un usuario de IAM, puede utilizar identidades existentesde AWS Directory Service, del directorio de usuarios de la empresa o de un proveedor de identidadesweb. A estas identidades se les llama usuarios federados. AWS asigna una función a un usuariofederado cuando se solicita acceso a través de un proveedor de identidad. Para obtener másinformación acerca de los usuarios federados, consulte Usuarios federados y roles en la Guía delusuario de IAM.

• Acceso entre cuentas: puede utilizar un rol de IAM para permitir que alguien (una entidad principal deconfianza) de otra cuenta obtenga acceso a los recursos de su cuenta. Los roles son la forma principalde conceder acceso entre cuentas. Sin embargo, con algunos servicios de AWS, puede asociar unapolítica directamente a un recurso (en lugar de utilizar un rol como proxy). Para obtener informaciónacerca de la diferencia entre los roles y las políticas basadas en recursos para el acceso entre cuentas,consulte Cómo los roles de IAM difieren de las políticas basadas en recursos en la Guía del usuario deIAM.

• Acceso a servicios de AWS: Un rol de servicio es un rol de IAM que un servicio asume para realizaracciones en su cuenta en su nombre. Al configurar algunos de los entornos de los servicios de AWS,debe definir un rol que el servicio asumirá. Este rol de servicio debe incluir todos los permisos queson necesarios para que el servicio pueda acceder a los recursos de AWS que necesita. Los roles deservicio varían de servicio a servicio, pero muchos le permiten elegir sus permisos, siempre y cuandose cumplan los requisitos documentados para dicho servicio. Los roles de servicio ofrecen acceso solodentro de su cuenta y no se pueden utilizar para otorgar acceso a servicios en otras cuentas. Puedecrear, modificar y eliminar un rol de servicio desde IAM. Por ejemplo, puede crear un rol que permitaa Amazon Redshift tener acceso a un bucket de Amazon S3 en su nombre y, a continuación, cargarlos datos de ese bucket en un clúster de Amazon Redshift. Para obtener más información, consulteCreación de un rol para delegar permisos a un servicio de AWS en la Guía del usuario de IAM.

• Aplicaciones que se ejecutan en Amazon EC2: Puede utilizar un rol de IAM para administrarcredenciales temporales para las aplicaciones que se ejecutan en una instancia EC2 y realizan

116

Page 122: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioAdministración de acceso mediante políticas

solicitudes de la AWS CLI o la API de AWS. Es preferible hacerlo de este modo a almacenar claves deacceso en la instancia EC2. Para asignar un rol de AWS a una instancia EC2 y ponerla a disposición detodas las aplicaciones, cree un perfil de instancia asociado a la misma. Un perfil de instancia contiene elrol y permite a los programas que se ejecutan en la instancia EC2 obtener credenciales temporales. Paraobtener más información, consulte Uso de un rol de IAM para conceder permisos a aplicaciones que seejecutan en instancias Amazon EC2 en la Guía del usuario de IAM.

Para obtener información acerca del uso de los roles de IAM, consulte Cuándo crear un rol de IAM (en vezde un usuario) en la Guía del usuario de IAM.

Administración de acceso mediante políticasPara controlar el acceso en AWS, se crean políticas y se asocian a identidades de IAM o recursos deAWS. Una política es un objeto de AWS que, cuando se asocia a una identidad o un recurso, definesus permisos. AWS evalúa estas políticas cuando una entidad principal (usuario raíz, usuario de IAM orol de IAM) realiza una solicitud. Los permisos en las políticas determinan si la solicitud se permite o sedeniega. Las mayoría de las políticas se almacenan en AWS como documentos JSON. Para obtenermás información acerca de la estructura y el contenido de los documentos de política JSON, consulteInformación general de las políticas de JSON en la Guía del usuario de IAM.

Un administrador de IAM puede utilizar las políticas para especificar quién tiene acceso a los recursos deAWS y qué acciones se pueden realizar en dichos recursos. Cada entidad de IAM (usuario o rol) comienzasin permisos. En otras palabras, de forma predeterminada, los usuarios no pueden hacer nada, ni siquieracambiar sus propias contraseñas. Para conceder permiso a un usuario para hacer algo, el administradordebe asociarle una política de permisos. O bien el administrador puede añadir al usuario a un grupo quetenga los permisos necesarios. Cuando el administrador concede permisos a un grupo, todos los usuariosde ese grupo obtienen los permisos.

Las políticas de IAM definen permisos para una acción independientemente del método que se utilicepara realizar la operación. Por ejemplo, suponga que dispone de una política que permite la accióniam:GetRole. Un usuario con dicha política puede obtener información del usuario de la Consola deadministración de AWS, la AWS CLI o la API de AWS.

Políticas basadas en la identidadLas políticas basadas en identidad son documentos de políticas de permisos JSON que puede asociara una identidad, como por ejemplo un usuario, un rol o un grupo de IAM. Estas políticas controlan quéacciones puede realizar dicha identidad, en qué recursos y en qué condiciones. Para obtener másinformación acerca de cómo crear una política basada en identidad, consulte Creación de políticas de IAMen la Guía del usuario de IAM.

Las políticas basadas en identidad pueden clasificarse además como políticas insertadas o políticasadministradas. Las políticas insertadas se integran directamente en un único usuario, grupo o rol. Laspolíticas administradas son políticas independientes que puede asociar a varios usuarios, grupos y rolesde su cuenta de AWS. Las políticas administradas incluyen las políticas administradas por AWS y laspolíticas administradas por el cliente. Para obtener más información acerca de cómo elegir una políticaadministrada o una política insertada, consulte Elegir entre políticas administradas y políticas insertadas enla Guía del usuario de IAM.

Políticas basadas en recursosLas políticas basadas en recursos son documentos de política JSON que puede asociar a un recursocomo, por ejemplo, un bucket de Amazon S3. Los administradores de servicios pueden utilizar estaspolíticas para definir qué acciones puede realizar un principal especificado (miembro de cuenta, usuario orol) en dicho recurso y bajo qué condiciones. Las políticas basadas en recursos son políticas insertadas.No existen políticas basadas en recursos que sean administradas.

117

Page 123: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioFuncionamiento de AWS Batch con IAM

Listas de control de acceso (ACL)Las políticas de control de acceso (ACL) controlan qué entidades principales (cuentas, miembros, usuarioso roles) tienen permisos para obtener acceso a un recurso. Las ACL son similares a las políticas basadasen recursos, aunque son el único tipo de política que no utiliza el formato de documento de política JSON.Amazon S3, AWS WAF y Amazon VPC son ejemplos de servicios que admiten ACL. Para obtener másinformación sobre las ACL, consulte Información general de las Access Control Lists (ACL, Listas decontrol de acceso) en la Guía para desarrolladores de Amazon Simple Storage Service.

Otros tipos de políticasAWS admite otros tipos de políticas menos frecuentes. Estos tipos de políticas pueden establecer elmáximo de permisos que los tipos de políticas más frecuentes le otorgan.

• Límites de permisos: un límite de permisos es una característica avanzada que le permite definir lospermisos máximos que una política basada en identidad puede conceder a una entidad de IAM (usuarioo rol de IAM). Puede establecer un límite de permisos para una identidad. Los permisos resultantes sonla intersección de las políticas basadas en identidades de la entidad y los límites de sus permisos. Laspolíticas basadas en recursos que especifiquen el usuario o rol en el campo Principal no estaránrestringidas por el límite de permisos. Una denegación explícita en cualquiera de estas políticas anularáel permiso. Para obtener más información acerca de los límites de permisos, consulte see Límites depermisos para las entidades de IAM en la Guía del usuario de IAM.

• Políticas de control de servicios (SCP): las SCP son políticas de JSON que especifican los permisosmáximos para una organización o unidad organizativa (OU) en AWS Organizations. AWS Organizationses un servicio que le permite agrupar y administrar de forma centralizada varias cuentas de AWSque posee su negocio. Si habilita todas las funciones en una organización, entonces podrá aplicarpolíticas de control de servicio (SCP) a una o todas sus cuentas. Una SCP limita los permisos para lasentidades de las cuentas de miembros, incluido cada Usuario raíz de la cuenta de AWS. Para obtenermás información acerca de Organizaciones y las SCP, consulte Funcionamiento de las SCP en la Guíadel usuario de AWS Organizations.

• Políticas de sesión: las políticas de sesión son políticas avanzadas que se pasan como parámetrocuando se crea una sesión temporal mediante programación para un rol o un usuario federado. Lospermisos de la sesión resultantes son la intersección de las políticas basadas en identidades del rol y laspolíticas de la sesión. Los permisos también pueden proceder de una política basada en recursos. Unadenegación explícita en cualquiera de estas políticas anulará el permiso. Para obtener más información,consulte Políticas de sesión en la Guía del usuario de IAM.

Varios tipos de políticasCuando se aplican varios tipos de políticas a una solicitud, los permisos resultantes son más complicadosde entender. Para obtener información acerca de cómo AWS determina si permitir una solicitud cuandohay varios tipos de políticas implicados, consulte Lógica de evaluación de políticas en la Guía del usuariode IAM.

Para obtener más información acerca de la administración de identidades y acceso para AWS Batch,continúe con las páginas siguientes.

• Funcionamiento de AWS Batch con IAM (p. 118)• Solución de problemas de identidad y acceso en AWS Batch (p. 123)

Funcionamiento de AWS Batch con IAMAntes de utilizar IAM para administrar el acceso a AWS Batch, debe saber qué características de IAMestán disponibles para su uso con AWS Batch. Para obtener una perspectiva general de cómo AWS Batch

118

Page 124: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioFuncionamiento de AWS Batch con IAM

y otros servicios de AWS funcionan con IAM, consulte Servicios de AWS que funcionan con IAM en la Guíadel usuario de IAM.

Temas• Políticas basadas en identidad de AWS Batch (p. 119)• Roles de IAM de AWS Batch (p. 121)

Políticas basadas en identidad de AWS BatchCon las políticas basadas en identidad de IAM, puede especificar las acciones permitidas o denegadasy los recursos además de las condiciones en las que se permiten o deniegan las acciones. AWS Batchadmite acciones, recursos y claves de condiciones específicos. Para obtener más información acerca delos elementos que utiliza en una política de JSON, consulte Referencia de los elementos de las políticas deJSON de IAM en la Guía del usuario de IAM.

Actions

El elemento Action de una política basada en la identidad de IAM describe la acción o las accionesespecíficas que la política permitirá o denegará. Las acciones de la política generalmente tienen el mismonombre que la operación de API de AWS asociada. La acción se utiliza en una política para otorgarpermisos para realizar la operación asociada.

Las acciones de políticas de AWS Batch utilizan el siguiente prefijo antes de la acción: batch:. Porejemplo, para conceder a alguien permiso para enviar un trabajo de AWS Batch con la operación de laAPI SubmitJob de AWS Batch, incluya la acción batch:SubmitJob en su política. Las instruccionesde política deben incluir un elemento NotAction o Action. AWS Batch define su propio conjunto deacciones que describen las tareas que se pueden realizar con este servicio.

Para especificar varias acciones en una única instrucción, sepárelas con comas del siguiente modo.

"Action": [ "batch:action1", "batchaction2"

Puede utilizar caracteres comodín para especificar varias acciones (*). Por ejemplo, para especificar todaslas acciones que comiencen con la palabra Describe, incluya la siguiente acción.

"Action": "batch:Describe*"

Para ver una lista de acciones de AWS Batch, consulte Actions Defined by AWS Batch en la Guía delusuario de IAM.

Recursos.

El elemento Resource especifica el objeto u objetos a los que se aplica la acción. Las instrucciones debencontener un elemento Resource o NotResource. Especifique un recurso con un ARN o el caráctercomodín (*) para indicar que la instrucción se aplica a todos los recursos.

.

El recurso de definición de trabajo de AWS Batch tiene el siguiente ARN.

arn:${Partition}:batch:${Region}:${Account}:job-definition/${JobDefinition}

119

Page 125: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioFuncionamiento de AWS Batch con IAM

Para obtener más información acerca del formato de los ARN, consulte Nombres de recursos de Amazon(ARN) y espacios de nombres de servicios de AWS.

Por ejemplo, para especificar la definición de trabajo JobDefinitionAlpha en su instrucción, utilice elsiguiente ARN.

"Resource": "arn:aws:batch:us-east-1:123456789012:job-definition/JobDefinitionAlpha"

Para especificar todas las instancias que pertenecen a una cuenta específica, utilice el carácter comodín(*):

"Resource": "arn:aws:batch:us-east-1:123456789012:job-definition/*"

Algunas acciones de AWS Batch, como las empleadas para la creación de recursos, no se pueden llevar acabo en un recurso específico. En dichos casos, debe utilizar el carácter comodín (*).

"Resource": "*"

En las acciones de la API de AWS Batch se utilizan varios recursos. SubmitJob envía un trabajo a unacola de trabajos, por lo que el usuario de IAM debe tener permisos para utilizar la definición de trabajo y lacola de trabajos. Para especificar varios recursos en una única instrucción, separe los ARN con comas.

"Resource": [ "resource1", "resource2"

Para ver una lista de los tipos de recursos de AWS Batch y sus ARN, consulte Resources Defined byAWS Batch en la Guía del usuario de IAM. Para obtener información acerca de con qué acciones puedeespecificar los ARN de cada recurso, consulte Actions Defined by AWS Batch.

Claves de condiciónEl elemento Condition (o bloque de Condition) permite especificar condiciones en las que entra envigor una instrucción. El elemento Condition es opcional. Puede crear expresiones condicionales queutilizan operadores de condición, tales como igual o menor que, para que coincida la condición de lapolítica con valores de la solicitud.

Si especifica varios elementos de Condition en una instrucción o varias claves en un único elemento deCondition, AWS las evalúa mediante una operación AND lógica. Si especifica varios valores para unaúnica clave de condición, AWS evalúa la condición con una operación lógica OR. Se deben cumplir todaslas condiciones antes de que se concedan los permisos de la instrucción.

También puede utilizar variables de marcador de posición al especificar condiciones. Por ejemplo, puedeconceder un permiso de usuario de IAM para acceder a un recurso solo si está etiquetado con su nombrede usuario de IAM. Para obtener más información, consulte Elementos de la política de IAM: Variables yetiquetas en la Guía del usuario de IAM.

AWS Batch define su propio conjunto de claves de condición y también admite el uso de algunas claves decondición globales. Para ver todas las claves de condición globales de AWS, consulte Claves de contextode condición globales de AWS en la Guía del usuario de IAM.

La acción RegisterJobDefinition de AWS Batch admite las claves de condición batch:User,batch:Privileged y batch:Image. Para obtener más información, consulte the section called“Permisos de nivel de recurso admitidos” (p. 88).

Para ver una lista de claves de condición de AWS Batch, consulte Condition Keys for AWS Batch en laGuía del usuario de IAM. Para obtener más información acerca de las acciones y los recursos con los quepuede utilizar una clave de condición, consulte Actions Defined by AWS Batch.

120

Page 126: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioEjemplos de políticas basadas en identidad

Ejemplos

Para ver ejemplos de políticas basadas en identidad de AWS Batch, consulte Ejemplos de políticasbasadas en identidad (p. 121).

AWS Batch no admite las políticas basadas en recursos.

AWS Batch no admite el etiquetado de recursos o el control de acceso basado en etiquetas.

Roles de IAM de AWS BatchUn rol de IAM es una entidad de la cuenta de AWS que dispone de permisos específicos.

Uso de credenciales temporales con AWS Batch

Puede utilizar credenciales temporales para iniciar sesión con federación, asumir un rol de IAM o asumir unrol de acceso entre cuentas. Las credenciales de seguridad temporales se obtienen mediante una llamadaa operaciones de la API de AWS STS, como AssumeRole o GetFederationToken.

AWS Batch admite el uso de credenciales temporales.

Roles vinculados a servicios

Los roles vinculados a servicios permiten a los servicios de AWS obtener acceso a los recursos de otrosservicios para completar una acción en su nombre. Los roles vinculados a servicios aparecen en la cuentade IAM y son propiedad del servicio. Un administrador de IAM puede ver, pero no editar, los permisos delos roles vinculados a servicios.

AWS Batch no admite roles vinculados a servicios.

Roles de servicio

Esta característica permite que un servicio asuma un rol de servicio en nombre de usted. Este rol permiteque el servicio obtenga acceso a los recursos de otros servicios para completar una acción en su nombre.Los roles de servicio aparecen en su cuenta de IAM y son propiedad de la cuenta. Esto significa que unadministrador de IAM puede cambiar los permisos de este rol. Sin embargo, hacerlo podría deteriorar lafuncionalidad del servicio.

AWS Batch admite roles de servicio.

Ejemplos de políticas basadas en identidad de AWSBatchDe forma predeterminada, los usuarios y roles de IAM no tienen permiso para crear, ver ni modificarrecursos de AWS Batch. Tampoco pueden realizar tareas mediante la Consola de administración deAWS, la AWS CLI, o la API de AWS. Un administrador de IAM debe crear políticas de IAM que concedanpermisos a los usuarios y a los roles para realizar operaciones de la API concretas en los recursosespecificados que necesiten. El administrador debe adjuntar esas políticas a los usuarios o grupos de IAMque necesiten esos permisos.

Para obtener más información acerca de cómo crear una política basada en identidad de IAM con estosdocumentos de políticas de JSON de ejemplo, consulte Creación de políticas en la pestaña JSON en laGuía del usuario de IAM.

Temas

121

Page 127: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioEjemplos de políticas basadas en identidad

• Prácticas recomendadas relativas a políticas (p. 122)• Permitir a los usuarios ver sus propios permisos (p. 122)

Prácticas recomendadas relativas a políticasLas políticas basadas en identidad son muy eficaces. Determinan si alguien puede crear, acceder oeliminar los recursos de AWS Batch de su cuenta. Estas acciones pueden generar costes adicionalespara su cuenta de AWS. Siga estas directrices y recomendaciones al crear o editar políticas basadas enidentidad.

• Introducción sobre el uso de políticas administradas de AWS: para comenzar a utilizar AWS Batchrápidamente, utilice las políticas administradas de AWS para proporcionar a los empleados los permisosnecesarios. Estas políticas ya están disponibles en su cuenta y las mantiene y actualiza AWS. Paraobtener más información, consulte Introducción sobre el uso de permisos con políticas administradas deAWS en la Guía del usuario de IAM.

• Conceder privilegios mínimos: al crear políticas personalizadas, conceda solo los permisos necesariospara llevar a cabo una tarea. Comience con un conjunto mínimo de permisos y conceda permisosadicionales según sea necesario. Por lo general, es más seguro que comenzar con permisos que sondemasiado tolerantes e intentar hacerlos más severos más adelante. Para obtener más información,consulte Conceder privilegios mínimos en la Guía del usuario de IAM.

• Habilitar MFA para operaciones confidenciales: para mayor seguridad, obligue a los usuarios deIAM a que utilicen la autenticación multifactor (MFA) para acceder a recursos u operaciones de APIconfidenciales. Para obtener más información, consulte Uso de Multi-Factor Authentication (MFA) enAWS en la Guía del usuario de IAM.

• Utilizar condiciones de política para mayor seguridad: en la medida en que sea práctico, defina lascondiciones en las que sus políticas basadas en identidad permitan el acceso a un recurso. Por ejemplo,puede escribir condiciones para especificar un rango de direcciones IP permitidas desde el que debeproceder una solicitud. También puede escribir condiciones para permitir solicitudes solo en un intervalode hora o fecha especificado o para solicitar el uso de SSL o MFA. Para obtener más información,consulte Elementos de la política de JSON de IAM: condición en la Guía del usuario de IAM.

Permitir a los usuarios ver sus propios permisosEn este ejemplo, se muestra cómo podría crear una política que permita a los usuarios de IAM ver laspolíticas administradas e insertadas que se asocian a la identidad de sus usuarios. Esta política incluyepermisos para llevar a cabo esta acción en la consola o mediante programación con la AWS CLI o la APIde AWS.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": [ "arn:aws:iam::*:user/${aws:username}" ] }, {

122

Page 128: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioSolución de problemas

"Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

Solución de problemas de identidad y acceso en AWSBatchUtilice la información siguiente para diagnosticar y solucionar los problemas comunes que puedan surgircuando trabaje con AWS Batch e IAM.

Temas• No tengo autorización para realizar una acción en AWS Batch (p. 123)• No tengo autorización para realizar la operación iam:PassRole (p. 123)• Quiero ver mis claves de acceso (p. 124)• Soy administrador y deseo permitir que otros obtengan acceso a AWS Batch (p. 124)• Quiero permitir a personas externas a mi cuenta de AWS el acceso a mis recursos de AWS

Batch (p. 124)

No tengo autorización para realizar una acción en AWS BatchSi la Consola de administración de AWS le indica que no está autorizado para llevar a cabo una acción,debe ponerse en contacto con su administrador para recibir ayuda. Su administrador es la persona que lefacilitó su nombre de usuario y contraseña.

En el siguiente ejemplo, el error se produce cuando el usuario mateojackson de IAM intentautilizar la consola para ver detalles sobre un entorno informático, pero no tiene permisosbatch:DescribeComputeEnvironments.

User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: batch:DescribeComputeEnvironments on resource: my-example-compute-environment

En este caso, Mateo pide a su administrador que actualice sus políticas de forma que puedaobtener acceso al recurso my-example-compute-environment mediante la acciónbatch:DescribeComputeEnvironments.

No tengo autorización para realizar la operación iam:PassRoleSi recibe un error que indica que no está autorizado para llevar a cabo la acción iam:PassRole, debeponerse en contacto con su administrador para recibir ayuda. Su administrador es la persona que le facilitósu nombre de usuario y contraseña. Pida a la persona que actualice sus políticas de forma que puedatransferir un rol a AWS Batch.

123

Page 129: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioSolución de problemas

Algunos servicios de AWS le permiten transferir un rol existente a dicho servicio en lugar de crear un nuevorol de servicio o uno vinculado al servicio. Para ello, debe tener permisos para transferir el rol al servicio.

En el siguiente ejemplo, el error se produce cuando un usuario de IAM denominado marymajor intentautilizar la consola para realizar una acción en AWS Batch. Sin embargo, la acción requiere que el serviciocuente con permisos otorgados por un rol de servicio. Mary no tiene permisos para transferir el rol alservicio.

User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole

En este caso, Mary pide a su administrador que actualice sus políticas para que pueda realizar la accióniam:PassRole.

Quiero ver mis claves de accesoDespués de crear sus claves de acceso de usuario de IAM, puede ver su ID de clave de acceso encualquier momento. Sin embargo, no puede volver a ver su clave de acceso secreta. Si pierde la clave deacceso secreta, debe crear un nuevo par de claves de acceso.

Las claves de acceso se componen de dos partes: un ID de clave de acceso (por ejemplo,AKIAIOSFODNN7EXAMPLE) y una clave de acceso secreta (por ejemplo, wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY). El ID de clave de acceso y la clave de acceso secreta se utilizan juntos, como unnombre de usuario y contraseña, para autenticar sus solicitudes. Administre sus claves de acceso con elmismo nivel de seguridad que para el nombre de usuario y la contraseña.

Important

No proporcione las claves de acceso a terceras personas, ni siquiera para que le ayuden a buscarel ID de usuario canónico. Si lo hace, podría conceder a otra persona acceso permanente a sucuenta.

Cuando cree un par de claves de acceso, se le pide que guarde el ID de clave de acceso y la clave deacceso secreta en un lugar seguro. La clave de acceso secreta solo está disponible en el momento de sucreación. Si pierde la clave de acceso secreta, debe añadir nuevas claves de acceso a su usuario de IAM.Puede tener un máximo de dos claves de acceso. Si ya cuenta con dos, debe eliminar un par de clavesantes de crear uno nuevo. Para ver las instrucciones, consulte Administración de las claves de acceso enla Guía del usuario de IAM.

Soy administrador y deseo permitir que otros obtengan acceso aAWS BatchPara permitir que otros obtengan acceso a AWS Batch, debe crear una entidad de IAM (usuario o rol) parala persona o aplicación que necesita acceso. Esta persona utilizará las credenciales de la entidad paraobtener acceso a AWS. A continuación, debe asociar una política a la entidad que le conceda los permisoscorrectos en AWS Batch.

Para comenzar de inmediato, consulte Creación del primer grupo y usuario delegado de IAM en la Guía delusuario de IAM.

Quiero permitir a personas externas a mi cuenta de AWS elacceso a mis recursos de AWS BatchPuede crear un rol que los usuarios de otras cuentas o las personas externas a la organización puedanutilizar para acceder a sus recursos. Puede especificar una persona de confianza para que asuma el rol.En el caso de los servicios que admitan las políticas basadas en recursos o las listas de control de acceso(ACL), puede utilizar dichas políticas para conceder a las personas acceso a sus recursos.

124

Page 130: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioValidación de la conformidad

Para obtener más información, consulte lo siguiente.

• Para obtener información acerca de si AWS Batch admite estas características, consulte Funcionamientode AWS Batch con IAM (p. 118).

• Para aprender cómo proporcionar acceso a sus recursos en cuentas de AWS de su propiedad, consulteProporcionar acceso a un usuario de IAM a otra cuenta de AWS de la que es propietario en la Guía delusuario de IAM.

• Para obtener información acerca de cómo ofrecer acceso a sus recursos a cuentas de AWS de terceros,consulte Proporcionar acceso a las cuentas de AWS propiedad de terceros en la Guía del usuario deIAM.

• Para obtener información acerca de cómo ofrecer acceso a la identidad federada, consulte Proporcionaracceso a usuarios autenticados externamente (identidad federada) en la Guía del usuario de IAM.

• Para obtener información acerca de la diferencia entre utilizar los roles y las políticas basadas enrecursos para el acceso entre cuentas, consulte Cómo los roles de IAM difieren de las políticas basadasen recursos en la Guía del usuario de IAM.

Validación de la conformidad para AWS BatchAuditores externos evalúan la seguridad y la conformidad de AWS Batch en distintos programas deconformidad de AWS. Esto incluye SOC, PCI, ISO, HIPAA BAA, MTCS y otros.

Para obtener una lista de servicios de AWS en el ámbito de programas de conformidad específicos,consulte Servicios de AWS en el ámbito del programa de conformidad. Para obtener información general,consulte Programas de conformidad de AWS.

Puede descargar los informes de auditoría de terceros utilizando AWS Artifact. Para obtener másinformación, consulte Descarga de informes en AWS Artifact.

Su responsabilidad de conformidad al utilizar AWS Batch se determina en función de la confidencialidadde los datos, los objetivos de conformidad de su empresa y la legislación, así como los reglamentoscorrespondientes. AWS proporciona los siguientes recursos para ayudarle a cumplir las normativas.

• Guías de inicio rápido de seguridad y conformidad– estas guías de implementación tratanconsideraciones sobre arquitectura y ofrecen pasos para implementar los entornos de referenciacentrados en la seguridad y la conformidad en AWS.

• Documento técnico sobre arquitectura para seguridad y conformidad de HIPAA– este documento técnicodescribe cómo las empresas pueden utilizar AWS para crear aplicaciones conformes con HIPAA.

• Recursos de conformidad de AWS: este conjunto de manuales y guías podría aplicarse a su sector yubicación.

• AWS Config: este servicio de AWS evalúa en qué medida las configuraciones de los recursos cumplenlas prácticas internas, las directrices del sector y las normativas.

• AWS Security Hub: este servicio de AWS ofrece una vista integral de su estado de seguridad en AWSque le ayuda a comprobar la conformidad con las normas del sector de seguridad y las prácticasrecomendadas.

Seguridad de la infraestructura en AWS BatchAl tratarse de un servicio administrado, AWS Batch está protegido por los procedimientos de seguridadde red globales de AWS que se describen en el documento técnico Amazon Web Services: informacióngeneral sobre procesos de seguridad.

Puede utilizar llamadas a la API publicadas en AWS para obtener acceso a AWS Batch a través de lared. Los clientes deben ser compatibles con Transport Layer Security (TLS) 1.0 o una versión posterior.

125

Page 131: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioSeguridad de la infraestructura

Le recomendamos TLS 1.2 o una versión posterior. Los clientes también deben ser compatibles conconjuntos de cifrado con confidencialidad directa total (PFS) tales como Ephemeral Diffie-Hellman (DHE)o Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). La mayoría de los sistemas modernos como Java 7 yposteriores son compatibles con estos modos.

Además, las solicitudes deben estar firmadas mediante un ID de clave de acceso y una clave de accesosecreta que esté asociada a una entidad principal de IAM. También puede utilizar AWS Security TokenService (AWS STS) para generar credenciales de seguridad temporales para firmar solicitudes.

126

Page 132: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuario

Límites de los servicios de AWSBatch

La siguiente tabla muestra los límites de servicio de AWS Batch, que no pueden modificarse. Cada límitees específico de la región.

Recurso Límite

Número máximo de colas de trabajo. Para obtener más información, consulte Colas detrabajo (p. 55).

20

Número máximo de entornos informáticos. Para obtener más información, consulteEntornos informáticos (p. 59).

50

Número máximo de entornos informáticos por cola de trabajos 3

Cantidad máxima de dependencias de un trabajo 20

Tamaño máximo de la definición del trabajo (para operaciones de APIRegisterJobDefinition)

24 KiB

El tamaño máximo de la carga del trabajo (para operaciones de API SubmitJob) 30 KiB

Tamaño máximo de matriz para los trabajos de matrices 10000

Cantidad máxima de trabajos en estado SUBMITTED 1000000

127

Page 133: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioEntorno informático INVALID

Solución de problemas de AWSBatch

En algún momento es posible que necesite resolver problemas con sus entornos informáticos, colasde trabajo, definiciones de trabajo o trabajos. En este capítulo se proporciona ayuda para solucionarproblemas en su entorno de AWS Batch y repararlo.

Entorno informático INVALIDEs posible que un entorno informático administrado no se haya configurado correctamente y que, portal motivo, pase a estado INVALID y no pueda aceptar trabajos para colocación. En estas secciones sedescriben las posibles causas y cómo corregirlas.

Nombre de rol o ARN incorrectosLa causa más frecuente de entornos informáticos no válidos es un nombre o ARN de rol de servicio deAWS Batch o un rol de flota de spot de Amazon EC2 incorrecto. Se trata de un problema más propio deentornos informáticos que se crean con la AWS CLI o con los SDK de AWS; al crear un entorno informáticoen la Consola de administración de AWS, AWS Batch puede ayudarle a elegir el servicio o roles de flota despot correctos para que no pueda escribir el nombre de ARN incorrectamente ni modificarlo.

No obstante, si escribe manualmente el nombre o ARN de IAM en un comando de la AWS CLI del códigode SDK, AWS Batch no podrá validar la cadena, aceptará el valor e intentará crear el entorno. Después deintentar crear el entorno sin éxito, este pasará al estado INVALID y se mostrarán los siguientes errores.

Si se trata de un rol de servicio inválido:

CLIENT_ERROR - Not authorized to perform sts:AssumeRole (Service: AWSSecurityTokenService; Status Code: 403; Error Code: AccessDenied; Request ID: dc0e2d28-2e99-11e7-b372-7fcc6fb65fe7)

Si se trata de un rol de flota de spot no válido:

CLIENT_ERROR - Parameter: SpotFleetRequestConfig.IamFleetRole is invalid. (Service: AmazonEC2; Status Code: 400; Error Code: InvalidSpotFleetRequestConfig; Request ID: 331205f0-5ae3-4cea-bac4-897769639f8d) Parameter: SpotFleetRequestConfig.IamFleetRole is invalid

Una causa común de este problema es haber especificado solo el nombre de un rol de IAM al utilizarla AWS CLI o los SDK de AWS en lugar del ARN completo. Esto se debe a que, en función de cómose haya creado el rol, el ARN puede contener un prefijo de ruta service-role. Por ejemplo, si creamanualmente el rol de servicio de AWS Batch utilizando los procedimientos de Rol de servicio de IAM enAWS Batch (p. 93), el ARN del rol de servicio debería ser similar al siguiente:

arn:aws:iam::123456789012:role/AWSBatchServiceRole

Sin embargo, si ha creado el rol de servicio como parte del asistente de primera ejecución de la consolahoy mismo, el ARN del rol de servicio debería ser:

128

Page 134: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioCómo reparar un entorno informático INVALID

arn:aws:iam::123456789012:role/service-role/AWSBatchServiceRole

Al especificar solo el nombre de un rol de IAM al usar la AWS CLI o los SDK, de AWS, AWS Batchasume que el ARN no utiliza el prefijo de ruta service-role. Por eso se recomienda especificar el ARNcompleto para los roles de IAM al crear entornos informáticos.

Para reparar un entorno informático configurado de forma incorrecta, consulte Cómo reparar un entornoinformático INVALID (p. 129).

Cómo reparar un entorno informático INVALIDSi el entorno informático se encuentra en estado INVALID, deberá actualizarse para reparar el parámetrono válido. En el caso de un Nombre de rol o ARN incorrectos (p. 128), puede actualizar el entornoinformático con el rol de servicio correcto.

Para reparar un entorno informático mal configurado

1. Abra la consola de AWS Batch en https://console.aws.amazon.com/batch/.2. En la barra de navegación, seleccione la región a utilizar.3. En el panel de navegación, elija Entornos informáticos.4. En la página Entornos informáticos, marque el botón de opción que se encuentre junto al entorno

informático a editar y, a continuación, seleccione Editar.5. En la página Actualizar el entorno informático, en Rol de servicio, seleccione el rol de IAM que utilizar

con su entorno informático. La consola AWS Batch solo muestra roles con la relación de confianzaadecuada para entornos informáticos.

6. Seleccione Guardar para actualizar el entorno informático.

Trabajos bloqueados en estado RUNNABLESi el entorno informático contiene recursos informáticos, pero los trabajos no superan el estado RUNNABLE,hay algo evitando que los trabajos se coloquen en recursos informáticos. Estas son algunas de las causasmás frecuentes:

El controlador de registros awslogs no está configurado en los recursos informáticos

Los trabajos de AWS Batch envían la información de sus registros a CloudWatch Logs. Para activarlo,debe configurar sus recursos informáticos para utilizar el controlador de registro awslogs. Si basala AMI de su recursos informáticos fuera de la AMI optimizada para Amazon ECS (o Amazon Linux),el controlador se registra con el paquete ecs-init de forma predeterminada. Si utiliza una AMI debase diferente, debe asegurarse de que el controlador de registro awslogs se especifique comocontrolador de registro disponible con la variable de entorno ECS_AVAILABLE_LOGGING_DRIVERScuando el agente de contenedor de Amazon ECS se inicie. Para obtener más información, consulteEspecificaciones de AMI de recursos informáticos (p. 61) y Cómo crear una AMI de recursosinformáticos (p. 62).

Recursos insuficientes

Si sus definiciones de trabajo especifican más recursos de memoria o CPU de lo que pueden asignarlos recursos informáticos, los trabajos no se asignarán. Por ejemplo, si el trabajo especifica 4 GiB dememoria y la de los recursos informáticos es menor de la disponible, dicho trabajo no se podrá colocaren esos recursos. En ese caso, debe reducir la memoria especificada en la definición del trabajo oañadir más recursos informáticos en su entorno. Una parte de la memoria se reserva para el agentede contenedor de Amazon ECS y otros procesos críticos del sistema. Para obtener más información,consulte Administración de la memoria en (p. 81).

129

Page 135: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuarioInstancias de spot no etiquetadas

en el momento de su creación

No hay acceso a Internet para los recursos informáticos

necesitan acceso para comunicarse con el punto de enlace de servicio de Amazon ECS. Esto puedehacerse mediante un punto de enlace de la VPC de tipo interfaz o mediante que tienen direcciones IPpúblicas.

Para obtener más información sobre los puntos de enlace de la VPC de tipo interfaz, consulte .

Si no ha configurado un punto de enlace de la VPC de tipo interfaz y sus no tienen direcciones IPpúblicas, deberán utilizar la conversión de direcciones de red (NAT) para proporcionar este acceso.Para obtener más información, consulte Gateways de NAT en la Guía del usuario de Amazon VPC.Para obtener más información, consulte Tutorial: Creación de una VPC con subredes públicas yprivadas para sus (p. 111).

Se ha alcanzado el límite de instancias Amazon EC2

El número de instancias Amazon EC2 que puede lanzar una cuenta en una región de AWS lodetermina el límite de instancias EC2 que tenga asignado. Algunos tipos de instancias tienen tambiénun límite por tipo por instancia. Para obtener más información sobre los límites de las instanciasAmazon EC2 de su cuenta (incluido cómo solicitar un aumento del límite), consulte Límites de losservicios de Amazon EC2 en la Guía del usuario de Amazon EC2 para instancias de Linux

Para obtener más información sobre el diagnóstico de trabajos bloqueados en el estado RUNNABLE,consulte Why is my AWS Batch job stuck in RUNNABLE status? (Por qué mi trabajo de AWS Batch estábloqueado en el estado RUNNABLE) en el centro de conocimiento de AWS.

Instancias de spot no etiquetadas en el momentode su creación

El etiquetado de instancias de spot para los recursos informáticos de AWS Batch se admite desdeel 25 de octubre de 2017. Antes de esa fecha, la política administrada de IAM recomendada(AmazonEC2SpotFleetRole) para el rol de flota de spot de Amazon EC2 no contenía permisos paraetiquetar las instancias de spot en el momento del lanzamiento. La nueva política administrada de IAMrecomendada se denomina AmazonEC2SpotFleetTaggingRole.

Para corregir el etiquetado de instancias de spot en el momento de su creación, siga el procedimientodescrito a continuación para aplicar la política administrada de IAM recomendada actual al rol de flota despot de Amazon EC2; entonces, las futuras instancias de spot que se creen con ese rol tendrán permisospara aplicar etiquetas de instancia en el momento de su creación.

Para aplicar la política administrada de IAM actual al rol de flota de spot de Amazon EC2

1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.2. Elija Roles y elija el rol de flota de spot de Amazon EC23. Elija Attach policy.4. Seleccione AmazonEC2SpotFleetTaggingRole y elija Asociar política.5. Elija de nuevo el rol de flota de spot de Amazon EC2 para quitar la política anterior.6. Seleccione la x que hay a la derecha de la política AmazonEC2SpotFleetRole y elija Separar.

130

Page 136: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuario

Historial de revisiónLa tabla siguiente describe los cambios más importantes en la documentación desde la versión inicial deAWS Batch. Actualizamos la documentación con frecuencia para dar cuenta de los comentarios que nosenvía.

update-history-change update-history-description update-history-date

Estrategias de asignación AWS Batch añade compatibilidadcon múltiples estrategias paraelegir los tipos de instancia.

October 16, 2019

Compatibilidad con EFA AWS Batch ahora es compatiblecon los dispositivos Elastic FabricAdapter (EFA)

August 2, 2019

Programación de GPU Los trabajos de GPU le permitenespecificar el número de GPUque requiere cada trabajo. AWSBatch escalará las instanciasadecuadas para sus trabajos.

April 4, 2019

Trabajos paralelos de variosnodos

Los trabajos paralelos de variosnodos le permiten ejecutartrabajos individuales que abarcanvarias instancias Amazon EC2.

November 19, 2018

Permisos de nivel de recursos AWS Batch ahora admitepermisos de nivel de recursos envarias operaciones de la API.

November 12, 2018

Compatibilidad con las plantillasde lanzamiento de Amazon EC2

AWS Batch añade compatibilidadcon el uso de plantillas delanzamiento en entornosinformáticos.

November 12, 2018

Tiempos de espera de trabajo deAWS Batch

Puede configurar una duraciónde tiempo de espera para sustrabajos de modo que si untrabajo se ejecuta durante mástiempo, AWS Batch lo finaliza.

April 5, 2018

Trabajos de AWS Batchcomo destinos de Eventos deCloudWatch

Los trabajos de AWS Batchestán disponibles como destinosde Eventos de CloudWatch.Mediante reglas sencillas quepuede configurar rápidamente,puede asignar eventos y enviartrabajos de AWS Batch comorespuesta a ellos.

March 1, 2018

Auditoría de CloudTrail paraAWS Batch

CloudTrail puede auditar lasllamadas realizadas a accionesde la API de AWS Batch.

January 10, 2018

131

Page 137: AWS Batch - Guía del usuario · Para comenzar a usar AWS Batch, cree una definición de trabajo, un entorno informático y una cola de trabajo en la consola de AWS Batch. El asistente

AWS Batch Guía del usuario

Trabajos de matrices AWS Batch admite trabajos dematrices, que son útiles para elbarrido de parámetros y paralas cargas de trabajo de MonteCarlo.

November 28, 2017

Etiquetado de AWS Batchampliado

AWS Batch le permite especificaretiquetas para las instancias despot de Amazon EC2 lanzadasen entornos informáticosadministrados.

October 26, 2017

Flujo de eventos de AWS Batchpara Eventos de CloudWatch

Puede utilizar la secuencia deeventos de AWS Batch paraEventos de CloudWatch pararecibir notificaciones casi entiempo real sobre el estadoactual de los trabajos que se hanenviado a las colas de trabajos.

October 24, 2017

Reintentos automáticos detrabajo

Puede aplicar una estrategiade reintento a sus trabajos ydefiniciones de trabajo, que lespermita reintentar ejecutarseautomáticamente si fallan.

March 28, 2017

Disponibilidad general de AWSBatch (p. 131)

AWS Batch permite ejecutarcargas de trabajo informático porlotes en la nube de AWS.

January 5, 2017

132