Entorno de computación - 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.

Entorno de computación

Las colas de trabajos se asignan a uno o varios entornos de computación. Los entornos de computación incluyen instancias de contenedor de Amazon ECS que se utilizan para ejecutar trabajos por lotes en contenedores. Un entorno de computación específico también se puede asignar a una o más de una cola de trabajos. Dentro de una cola de trabajos, los entornos de computación asociados tienen cada uno un orden que utiliza el programador para determinar dónde se ejecutarán los trabajos que están listos para ejecutarse. Si el entorno de computación tiene un estado de VALID y tiene recursos gratuitos, el trabajo se programa para una instancia de contenedor dentro de dicho entorno de computación. Si el entorno de computación tiene un estado de INVALID o no puede proporcionar un recurso de computación apropiado, el programador intenta ejecutar el trabajo en el siguiente entorno de computación.

Entornos de computación administrados

Puede utilizar un entorno informático gestionado para AWS Batch gestionar la capacidad y los tipos de instancia de los recursos informáticos del entorno. Esto se basa en la especificación del recurso de cálculo que usted defina al crear el entorno de computación. Puede optar por utilizar Instancias bajo demanda de Amazon EC2 o Instancias de spot de Amazon EC2. O bien, también puede utilizar la capacidad de Fargate y Fargate Spot en su entorno de computación administrado. Si utiliza instancias de spot, también puede establecer un precio máximo. De este modo, las instancias de spot solo se lanzan cuando el precio de oferta de spot está por debajo de un determinado porcentaje del precio bajo demanda.

importante

Las instancias Fargate Spot no son compatibles con. Windows containers on AWS Fargate Se bloqueará una cola de trabajos si se envía un FargateWindows trabajo a una cola de trabajos que solo utilice entornos de cómputo Fargate Spot.

Los entornos de computación gestionados lanzan instancias de Amazon EC2 en la VPC y las subredes que especifique y, a continuación, las registran en un clúster de Amazon ECS. Las instancias de Amazon EC2 necesitan acceso de red externo para comunicarse con el punto de conexión de servicio de Amazon ECS. Algunas subredes no proporcionan direcciones IP públicas a las instancias de Amazon EC2. Si las instancias de Amazon EC2 no tienen una dirección IP pública, deberán utilizar traducción de direcciones de red (NAT) para obtener este acceso. Para obtener información, consulte Gateways NAT en la Guía del usuario de Amazon VPC. Para obtener más información acerca de cómo crear una VPC, consulte Creación de una nube virtual privada (VPC) .

De forma predeterminada, los entornos informáticos AWS Batch gestionados utilizan una versión reciente y aprobada de la AMI optimizada de Amazon ECS para los recursos informáticos. Sin embargo, es posible que desee crear sus propias AMI para utilizarlas en sus entornos de computación administrados por varias razones. Para obtener más información, consulte AMI de recursos de computación.

nota

AWS Batch no actualiza automáticamente las AMI en un entorno informático una vez creado. Por ejemplo, no actualiza las AMI en su entorno de computación cuando se lanza una versión más nueva de la AMI optimizada de Amazon ECS. Usted es responsable de la administración del sistema operativo invitado. Esto incluye actualizaciones y parches de seguridad. También es el responsable de cualquier otra utilidad o software de aplicaciones que se instale en los recursos de computación. Hay dos maneras de utilizar una AMI nueva para sus AWS Batch trabajos. El método original consiste en completar estos pasos:

  1. Cree un nuevo entorno de computación con la nueva AMI.

  2. Añada el entorno de computación a una cola de trabajos existente.

  3. Quite el entorno de computación anterior de la cola de trabajos.

  4. Elimine el entorno de computación anterior.

En abril de 2022, AWS Batch se agregó un soporte mejorado para actualizar los entornos de cómputo. Para obtener más información, consulte Actualizar entornos informáticos. Para usar la actualización mejorada de los entornos de computación para actualizar las AMI, siga estas reglas:

  • No definas el parámetro service role (serviceRole) o establézcalo en el rol AWSServiceRoleForBatchvinculado al servicio.

  • Defina el parámetro de estrategia de asignación (allocationStrategy) en BEST_FIT_PROGRESSIVE, SPOT_CAPACITY_OPTIMIZED o SPOT_PRICE_CAPACITY_OPTIMIZED.

  • Defina el parámetro de actualización a la última versión de la imagen (updateToLatestImageVersion) en true.

  • No especifique un ID de AMI en imageId, imageIdOverride (en ec2Configuration) o en la plantilla de lanzamiento (launchTemplate). En ese caso, AWS Batch selecciona la última AMI optimizada para Amazon ECS compatible AWS Batch en el momento en que se inicia la actualización de la infraestructura. Como alternativa, puede especificar el ID de la AMI en los parámetros imageId o imageIdOverride, o la plantilla de lanzamiento identificada por las propiedades LaunchTemplate. El cambio de cualquiera de estas propiedades inicia una actualización de la infraestructura. Si el ID de AMI se especifica en la plantilla de lanzamiento, no se puede reemplazar especificando un ID de AMI en los parámetros imageId o imageIdOverride. Solo se puede reemplazar especificando una plantilla de lanzamiento diferente. O bien, si la versión de la plantilla de lanzamiento está configurada en $Default o $Latest, configurando una nueva versión predeterminada para la plantilla de lanzamiento (si es $Default) o añadiendo una nueva versión a la plantilla de lanzamiento (si es $Latest).

Si se siguen estas reglas, cualquier actualización que inicie una actualización de la infraestructura hará que se vuelva a seleccionar el ID de la AMI. Si la configuración version en la plantilla de lanzamiento (launchTemplate) toma el valor $Latest o $Default, se evaluará la versión más reciente o predeterminada de la plantilla de lanzamiento en el momento de la actualización de la infraestructura, incluso si launchTemplate no se ha actualizado.

Consideraciones a la hora de crear trabajos paralelos de varios nodos

AWS Batch recomienda crear entornos de cómputo dedicados para ejecutar trabajos paralelos (MNP) con varios nodos y trabajos que no sean MNP. Esto se debe a la forma en que se crea la capacidad informática en su entorno de computación administrado. Al crear un nuevo entorno de computación gestionado, si especifica un valor minvCpu superior a cero, entonces AWS Batch crea un grupo de instancias para usarlo únicamente con trabajos que no son de MNP. Si se envía un trabajo paralelo de varios nodos, AWS Batch crea una nueva capacidad de instancia para ejecutar los trabajos paralelos de varios nodos. En los casos en los que haya trabajos paralelos de un solo nodo y de varios nodos ejecutándose en el mismo entorno informático en el que se establezca un maxvCpus valor minvCpus o, si los recursos informáticos necesarios no están disponibles, AWS Batch esperará a que finalicen los trabajos actuales antes de crear los recursos informáticos necesarios para ejecutar los nuevos trabajos.

Entornos de computación no administrados

En un entorno de informática no administrado, usted gestiona sus propios recursos de computación. Debe verificar que la AMI que utiliza para sus recursos de computación cumple la especificación de la AMI de instancia de contenedor de Amazon ECS. Para obtener más información, consulte Especificaciones de AMI de recursos de computación y Cómo crear una AMI de recursos de computación.

nota

AWS Los recursos de Fargate no son compatibles con los entornos informáticos no gestionados.

Después de crear el entorno informático no gestionado, utilice la operación de la DescribeComputeEnvironmentsAPI para ver los detalles del entorno informático. Encuentre el clúster de Amazon ECS asociado al entorno y, a continuación, lance manualmente las instancias de contenedor en ese clúster de Amazon ECS.

El siguiente AWS CLI comando también proporciona el ARN del clúster 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 ECS en la Guía del desarrollador de Amazon Elastic Container Service. Al lanzar los recursos de computación, especifique el ARN del clúster de Amazon ECS que los recursos deben registrar con los siguientes datos de usuario de Amazon EC2. ecsClusterArnSustitúyalo por el ARN del clúster que obtuvo con el comando anterior.

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