Tutorial: introducción a la orquestación de Amazon EC2 - AWS Batch

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Tutorial: introducción a la orquestación de Amazon EC2

Amazon Elastic Compute Cloud (Amazon EC2) proporciona capacidad de computación escalable y segura en Nube de AWS. El uso de Amazon EC2 elimina la necesidad de invertir inicialmente en hardware, de manera que puede desarrollar e implementar aplicaciones en menos tiempo.

Puede usar Amazon EC2 para lanzar tantos servidores virtuales como necesite, configurar la seguridad y las redes, y administrar el almacenamiento. Amazon EC2 le permite escalar hacia arriba o hacia abajo para controlar los cambios en los requisitos o los picos de popularidad, con lo que se reduce la necesidad de prever el tráfico.

Crear un entorno de computación

Para crear un entorno de computación para una orquestación de Amazon EC2, haga lo siguiente:

  1. Abra el Asistente de primer uso de la consola AWS Batch.

  2. Para el Selección del tipo de orquestación, seleccione Amazon Elastic Compute Cloud (Amazon EC2).

  3. Seleccione Siguiente.

  4. En la sección de Configuración de entorno de computación de Nombre, especifique un nombre único para su entorno de computación. El nombre puede tener una longitud máxima de 128 caracteres. Puede contener letras mayúsculas y minúsculas, números, guiones (-) y guiones bajos (_).

  5. En Rol de instancia, elija un perfil de instancia existente que tenga asociados los permisos de IAM necesarios. Este perfil de instancia permite a las instancias de contenedor de Amazon ECS realizar llamadas a las API de AWS necesarias. Para obtener más información, consulte Función de ECS instancia de Amazon.

  6. (Opcional) Una etiqueta es una marca que se asigna a un recurso. Para añadir una etiqueta o una etiqueta Amazon EC2, expanda Etiquetas y, a continuación, seleccione Agregar etiqueta. Introduzca un par clave-valor y, a continuación, vuelva a seleccionar Agregar etiqueta.

    importante

    Si elige Agregar etiqueta, debe introducir un par clave-valor y volver a elegir Agregar etiqueta o bien elegir Eliminar etiqueta.

  7. (Opcional) En la sección Configuración de instancias para Usar instancias de spot de Amazon EC2, active Habilitar el uso de instancias spot.

  8. (Solo spot) Para obtener el porcentaje máximo de precio bajo demanda, introduzca el porcentaje máximo del precio bajo demanda que desea pagar por los recursos de spot.

  9. (Opcional) (solo Spot) En Rol de la flota de spot, seleccione un rol de IAM para la flota de spot de Amazon EC2 que quiera aplicar a su entorno de computación de spot. Si aún no tiene un rol de IAM para la flota de spot de Amazon EC2, primero debe crear uno. Para obtener más información, consulte Función de Amazon EC2 en la flota spot.

    importante

    Para etiquetar las instancias de spot en el momento de su creación, su rol de IAM para la flota de spot de Amazon EC2 debe utilizar la política administrada más reciente AmazonEC2SpotFleetTaggingRole. La política administrada AmazonEC2SpotFleetRole no tiene los permisos necesarios para etiquetar instancias de spot. Para obtener más información, consulte Instancias de spot no etiquetadas en el momento de su creación y Etiquetar los recursos.

  10. En Mínimo de CPU virtuales, seleccione la cantidad mínima de vCPUs de EC2 que mantienen el entorno de computación, independientemente de la demanda de las colas de trabajos.

  11. En CPU virtuales deseadas, seleccione la cantidad de vCPU de EC2 con las que el entorno de computación realiza lanzamientos. A medida que aumenta la demanda de colas de trabajos, AWS Batch aumenta la cantidad deseada de vCPU y agrega instancias EC2. La cantidad de vCPU puede aumentar hasta la cantidad máxima de vCPU. A medida que disminuya la demanda, AWS Batch disminuye la cantidad deseada de vCPU y elimina instancias. El número de vCPU se reduce completamente hasta el número mínimo de vCPU.

  12. En Máximo de CPU virtuales, seleccione la cantidad máxima de vCPUs de EC2 que su entorno de computación puede escalar horizontalmente, independientemente de la demanda de las colas de trabajos.

  13. En Tipos de instancias permitidos, elija los tipos de instancia de Amazon EC2 que se pueden lanzar. Se pueden especificar familias de instancias para lanzar cualquier tipo de instancia en esas familias (por ejemplo, c5, c5n o p3). O bien puede especificar tamaños específicos dentro de una familia (por ejemplo, c5.8xlarge). Los tipos de instancias metálicas no están en las familias de instancias. Por ejemplo, c5 no incluye c5.metal. También puede seleccionar optimal para elegir tipos de instancias (de las familias de instancias C4, M4 y R4) que se correspondan con la demanda de las colas de trabajos.

    nota

    Cuando se crea un entorno de computación, los tipos de instancias que se seleccionen para dicho entorno de computación deben compartir la misma arquitectura. Por ejemplo, no se puede mezclar instancias x86 y ARM en el mismo entorno de computación.

    nota

    AWS Batch escala las GPU en función de la cantidad necesaria en sus colas de trabajo. Para utilizar la programación de GPU, el entorno de computación debe incluir tipos de instancia de las familias p2, p3, p4, p5, g3, g3s, g4 o g5.

    nota

    Actualmente, optimal utiliza tipos de instancia de las familias de instancias C4, M4 y R4. En Regiones de AWS que no tienen los tipos de instancia de las familias mencionadas, se utilizan tipos de instancia de las familias de instancias C5, M5 y R5.

  14. Expanda Configuración adicional.

  15. (Opcional) En Grupo de ubicación, introduzca un nombre de grupo de ubicación para agrupar los recursos en el entorno de computación.

  16. (Opcional) En Par de claves EC2, elija un par de claves pública y privada como credenciales de seguridad cuando se conecte a la instancia. Para obtener más información sobre pares de claves de Amazon EC2, consulte pares de claves de Amazon EC2 e instancias de Linux.

  17. Para Allocation strategy (Estrategia de asignación), elija la estrategia de asignación que se utilizará al seleccionar los tipos de instancia de la lista de tipos de instancia permitidos. BEST_FIT_PROGRESSIVE suele ser la mejor opción para los entornos de computación bajo demanda de EC2 y SPOT_CAPACITY_OPTIMIZED para los entornos de computación Spot de EC2. Para obtener más información, consulte Estrategias de asignación de tipos de instancia para AWS Batch.

  18. (Opcional) En Configuración de EC2, seleccione Agregar configuración de EC2. Seleccione los valores de Tipo de imagen y Cambio de ID de imagen para proporcionar información para AWS Batch para seleccionar Imagen de máquina de Amazon (AMI) para instancias en el entorno de computación. Si no se especifica el Cambio de ID de imagen para cada Tipo de imagen, AWS Batch selecciona una AMI reciente optimizada de Amazon ECS. Si no se especifica un Tipo de imagen, el valor predeterminado es una instancia de Amazon Linux 2 para instancias que no sean de GPU ni Graviton AWS.

    importante

    Para usar una AMI personalizada, elija el tipo de imagen y, a continuación, introduzca el ID de AMI personalizado en el cuadro de Cambio de ID de imagen.

    Amazon Linux 2

    Predeterminado para todas las familias de instancias basadas en Graviton AWS (por ejemplo C6g, M6g, R6g y T4g) y se puede utilizar para todos los tipos de instancias que no sean de GPU.

    Amazon Linux 2 (GPU)

    Predeterminado para todas las familias de instancias basadas en GPU (por ejemplo, P4 y G4) y se puede utilizar para todos los tipos de instancias que no sean de GPU AWS.

    Amazon Linux

    Se puede utilizar para familias de instancias que no sean de GPU ni AWS Graviton. El soporte estándar para Amazon Linux ha finalizado. Para obtener más información, consulte AMI de Amazon Linux.

    nota

    La AMI que elija para un entorno de computación debe coincidir con la arquitectura de los tipos de instancias que tenga previsto utilizar para dicho entorno de computación. Por ejemplo, si su entorno de computación utiliza tipos de instancias A1, la AMI de recursos de computación que elija debe admitir instancias Arm. Amazon ECS ofrece versiones x86 y Arm de la AMI Amazon Linux 2 optimizada para Amazon ECS. Para obtener más información, consulte la sección sobre AMI Amazon Linux 2 optimizada para Amazon ECS en la Guía para desarrolladores de Amazon Elastic Container Service.

  19. (Opcional) En Plantilla de lanzamiento, seleccione una plantilla de lanzamiento de Amazon EC2 existente para configurar sus recursos de computación. La versión predeterminada de la plantilla se rellena automáticamente. Para obtener más información, consulte Usa las plantillas de EC2 lanzamiento de Amazon con AWS Batch.

    nota

    En una plantilla de lanzamiento, puede especificar una AMI personalizada que haya creado.

  20. (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.

    importante

    Una vez creado el entorno de computación, la versión de la plantilla de lanzamiento utilizada no cambia, incluso aunque se actualice la versión $Default o $Latest de la plantilla de lanzamiento. Para utilizar una nueva versión de plantilla de lanzamiento, cree primero un nuevo entorno de computación y añádalo a la cola de trabajos existente. A continuación, quite el entorno de computación antiguo de la cola de trabajos y elimínelo.

  21. En la sección Configuración de red:

    1. En Nube privada virtual (VPC), seleccione una Amazon VPC.

    2. En Subredes, se muestran las subredes de sus Cuenta de AWS. Si desea crear un conjunto personalizado de subredes, elija Borrar subredes y, a continuación, elija las subredes que desee.

      importante

      Los recursos de computación deben comunicarse con el punto de conexión de VPC de Amazon ECS a través de un punto de conexión de VPC o de varias direcciones IP públicas. Para obtener más información, consulte Puntos de conexión de VPC de tipo interfaz de Amazon ECR (AWS PrivateLink). Si su instancia no tiene un punto de conexión de VPC configurado ni una dirección IP pública, puede usar la traducción de direcciones de red (NAT). Para obtener más información acerca de NAT, consulte Puertas de enlace de NAT y Creación de una nube virtual privada .

    3. Para los Grupos de seguridad, elija los grupos de seguridad de Amazon EC2 que desee asociar a la instancia. Si desea crear un conjunto personalizado de grupos de seguridad, elija Borrar grupos de seguridad. Seleccione los grupos de seguridad que desea.

  22. Elija Siguiente.

Crear una cola de trabajos

Una cola de trabajo almacena los trabajos que ha presentado hasta que el programador de AWS Batch los ejecuta en un recurso dentro del entorno de computación. Para obtener más información, consulte Colas de trabajo

Para crear una cola de trabajos para una orquestación de Amazon EC2, haga lo siguiente:

  1. En la sección de Configuración de cola de trabajo de Nombre, especifique un nombre único para su entorno de computación. El nombre puede tener una longitud máxima de 128 caracteres. Puede contener letras mayúsculas y minúsculas, números, guiones (-) y guiones bajos (_).

  2. En Prioridad, introduzca un número entero entre 0 y 100 para la cola de trabajos.

    importante

    El programador AWS Batch asigna una prioridad mayor a los valores enteros más altos.

  3. Elija Siguiente.

Creación de una definición de trabajo

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

Para crear la definición de trabajo:

  1. En la sección de Configuración general:

    1. En la sección de Configuración general de Nombre, especifique un nombre único para su entorno de computación. El nombre puede tener una longitud máxima de 128 caracteres. El nombre puede contener letras mayúsculas y minúsculas, números, guiones (-) y guiones bajos (_).

    2. (Opcional) En Tiempo de espera de la ejecución, introduzca la cantidad de tiempo (en segundos) que tarda en finalizar un trabajo pendiente.

      importante

      El tiempo de espera mínimo es de 60 segundos.

    3. (Opcional) Una etiqueta es una marca que se asigna a un recurso. Para añadir una etiqueta, expanda Etiquetas y, a continuación, seleccione Agregar etiqueta. Introduzca un par clave-valor y, a continuación, vuelva a seleccionar Agregar etiqueta.

      importante

      Si elige Agregar etiqueta, debe introducir un par clave-valor y volver a elegir Agregar etiqueta o bien elegir Eliminar etiqueta.

    4. (Opcional) Active Propagar etiquetas para propagar las etiquetas a la tarea de Amazon Elastic Container Service.

  2. En la sección Configuración del contenedor:

    1. En Imagen, introduzca el nombre de la imagen que se utiliza para lanzar el contenedor. Por defecto, todas las imágenes del registro de Docker Hub están disponibles. También puede especificar otros repositorios en formato repository-url/image:tag. El parámetro puede tener 255 caracteres como máximo. El parámetro puede contener letras mayúsculas y minúsculas, números, guiones medios (-), guiones bajos (_), dos puntos (:), puntos (.), barras inclinadas (/) y signos numéricos (#). Este parámetro se asigna a Image en la sección Crear un contenedor de la API remota de Docker y el parámetro IMAGE de docker run.

      nota

      La arquitectura de la imagen de Docker debe coincidir con la arquitectura del procesador de los recursos de computación en las que estén programadas. Por ejemplo, las imágenes de Docker basadas en Arm solo pueden ejecutarse en recursos de computación basados en Arm.

      • Las imágenes de los repositorios públicos de Amazon ECR utilizan las convenciones de nomenclatura completa registry/repository[:tag] o registry/repository[@digest] (por ejemplo, public.ecr.aws/registry_alias/my-web-app:latest).

      • Las imágenes de los repositorios de Amazon ECR utilizan la convención de nomenclatura completa 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 identifican 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 (por ejemplo, quay.io/assemblyline/ubuntu).

    2. En Comando, especifique los comandos que desea transmitir al contenedor. Este parámetro se asigna a Cmd en la sección Crear un contenedor de la API remota de Docker y el parámetro COMMAND se corresponde con docker run. Para obtener más información sobre el parámetro CMD de Docker, consulte https://docs.docker.com/engine/reference/builder/#cmd.

      nota

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

    3. (Opcional) En Rol de ejecución, especifique un rol de IAM que conceda permiso a los agentes de contenedor de Amazon ECS para realizar llamadas a la API de AWS en su nombre. Esta característica utiliza roles de IAM de Amazon ECS para las tareas. Para obtener más información, consulte Roles de IAM de ejecución de tareas de Amazon ECS en la Guía para desarrolladores de Amazon Elastic Container Service.

    4. (Opcional) En configurar el rol de trabajo, elija un rol de IAM que tenga permisos para las API AWS. Esta característica utiliza roles de IAM de Amazon ECS para las tareas. Para obtener más información, consulte Roles de IAM para tareas en la Guía para desarrolladores de Amazon Elastic Container Service.

      nota

      Aquí solo se muestran roles con la relación de confianza del Rol de tarea de servicio de Amazon Elastic Container. Para obtener más información sobre cómo crear un rol de IAM para trabajos de AWS Batch, consulte Creación de un rol de IAM y una política para sus tareas en la Guía para desarrolladores de Amazon Elastic Container Service.

    5. (Opcional) Puede añadir parámetros a la definición del trabajo como asignaciones de clave-valor para anular los valores predeterminados de la definición del trabajo. Para añadir un parámetro:

      1. En Parámetros, elija Agregar parámetro. Introduzca un par clave-valor y, a continuación, vuelva a seleccionar Agregar parámetro.

        importante

        Si elige Agregar parámetro, debe configurar al menos un parámetro o elegir Eliminar parámetro.

    6. En la sección Configuración de entorno para vCPU, especifique la cantidad de vCPU que quiera reservar para el contenedor. Este parámetro se corresponde con CpuShares en la sección Crear un contenedor de la API remota de Docker y con la opción --cpu-shares de docker run. Cada vCPU es equivalente a 1 024 cuotas de CPU.

    7. En Memoria, especifique límite máximo (en MiB) de memoria que quiera presentarle al contenedor del trabajo. Si su contenedor intenta superar la memoria especificada aquí, el contenedor se detiene. Este parámetro se corresponde con Memory en la sección Crear un contenedor de la API remota de Docker y con la opción --memory de docker run.

    8. En Número de unidades GPU, seleccione el número de unidades GPU que desea reservar para el contenedor.

    9. (Opcional) En configuración de variables de entorno, seleccione Agregar variables de entorno para añadir variables de entorno y pasarlas al contenedor. Este parámetro se corresponde con Env en la sección Crear un contenedor de la API remota de Docker y con la opción --env de docker run.

    10. (Opcional) En Secretos, seleccione Agregar secreto para añadir los secretos como pares de nombre-valor. Estos secretos están expuestos en el contenedor. Para obtener más información, consulte LogConfiguration:secretOptions.

    11. (Opcional) En la sección de Configuración de Linux:

      1. En Usuario, introduzca el nombre de usuario a utilizar dentro del contenedor. Este parámetro se corresponde con User en la sección Crear un contenedor de la API remota de Docker y con la opción --user de docker run.

      2. Para otorgar al contenedor de su trabajo permisos elevados en la instancia host (similares a los del usuario de root), arrastre el control deslizante Privilegiado hacia la derecha. Este parámetro se corresponde con Privileged en la sección Crear un contenedor de la API remota de Docker y con la opción --privileged de docker run.

      3. Active la opción Habilitar el proceso para ejecutar un proceso init dentro del contenedor. Este proceso reenvía señales y recoge procesos.

    12. (Opcional) En la sección de Configuración de Filesystem:

      1. Active la opción Habilitar el sistema de archivos de solo lectura para eliminar el acceso de escritura al volumen.

      2. En Tamaño de memoria compartida, introduzca el tamaño (en MiB) del /dev/shm volumen de .

      3. En Tamaño de intercambio máximo, introduzca la cantidad total de memoria de intercambio (en MiB) que puede utilizar el contenedor.

      4. En Intercambio, introduzca un valor entre 0 y 100 para indicar el comportamiento de intercambio del contenedor. Si no especifica un valor y el intercambio está activado, el valor predeterminado es 60. Para obtener más información, consulte LinuxParameters:swappiness.

      5. (Opcional) Expandir Configuración adicional.

      6. En el caso de Tmpfs, seleccione Agregar tmpfs para añadir una montura tmpfs.

      7. En el caso de los Dispositivos, seleccione Agregar dispositivo para añadir un dispositivo:

        1. 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 lo deja en blanco, se utiliza la ruta del host en el contenedor.

        2. En Host path (Ruta de host), especifique la ruta de un dispositivo de la instancia del host.

        3. En la página Permisos, haga clic en uno o varios permisos para aplicarlos al dispositivo. Los permisos disponibles son READ, WRITE y MKNOD.

      8. (Opcional) En Configuración de Ulimits, seleccione Agregar ulimit para agregar un ulimits valor al contenedor. Introduzca los valores de Nombre, Límite flexible y Límite invariable y, a continuación, elija Agregar límite máximo.

  3. Elija Siguiente.

Creación de un trabajo

Para crear un trabajo, haga lo siguiente:

  1. En Configuración de trabajo, especifique un Nombre único para el trabajo. El nombre puede tener una longitud máxima de 128 caracteres. Puede contener letras mayúsculas y minúsculas, números, guiones (-) y guiones bajos (_).

  2. Seleccione Siguiente.

Revisar y crear

En la página Revisar y crear, revise los pasos de configuración. Si necesita realizar cambios, elija Editar. Cuando haya terminado, seleccione Creación de recursos.