Componentes de AWS Batch - AWS Batch

Componentes de AWS Batch

AWS Batch simplifica los trabajos por lotes en ejecución en múltiples zonas de disponibilidad dentro de una región. Puede crear entornos de computación de AWS Batch dentro de una VPC nueva o existente. Después de que un entorno de computación se ha activado y asociado a una cola de trabajos, puede precisar las definiciones de trabajo que especifican cuáles imágenes de contenedor de Docker ejecutarán sus trabajos. Las imágenes de contenedor se almacenan y se extraen desde registros de contenedor, que podrían existir dentro o fuera de la infraestructura de AWS.

Imagen de los componentes de AWS Batch y cómo se integraron

Entorno de computación

Un entorno de computación es un conjunto de recursos de computación administrados o no administrados que se utilizan para ejecutar trabajos. Con los entornos de procesamiento gestionados, usted puede especificar el tipo de procesamiento deseado (Fargate o EC2) con varios niveles de detalle. Puede configurar entornos de computación que utilicen un tipo de instancia EC2 determinado, como c5.2xlarge o m5.10xlarge. O bien, usted puede elegir especificar únicamente que desea utilizar los tipos de instancias más recientes. También puede especificar 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 del precio de las instancias bajo demanda y un conjunto de destino de subredes de la VPC. AWS Batch lanzará, administrará y terminará en forma eficiente los tipos de computación según sea necesario. También puede administrar sus propios entornos de computación. En este caso, usted es responsable de configurar y escalar las instancias en un clúster de Amazon ECS que AWS Batch crea para usted. Para obtener más información, consulte Entornos de computación para AWS Batch.

Colas de trabajo

Al enviar un trabajo de AWS Batch, lo envía a una cola de trabajos determinada, donde el trabajo permanecerá hasta que se programe en un entorno de computación. Asocie uno o más entornos de computación con una cola de trabajos. También puede asignar valores de prioridad a estos entornos de computación e incluso a las propias colas de trabajos. Por ejemplo, puede tener una cola de prioridad alta a la que envía trabajos prioritarios, y una cola de prioridad baja para los trabajos que pueden ejecutarse en cualquier momento, cuando los recursos de computación son más económicos. Para obtener más información, consulte Colas de trabajo.

Definiciones de trabajo

Una definición de trabajo especifica cómo se ejecutan los trabajos. Puede considerar una definición de trabajo como un esquema de los recursos en su trabajo. Puede asignar a su trabajo un rol de IAM para proporcionar acceso a otros recursos de AWS. También puede especificar los requisitos de memoria y CPU. La definición de trabajo también puede controlar las propiedades de contenedor, las variables de entorno y los puntos de montaje para un almacenamiento persistente. Muchas de las especificaciones de una definición de trabajo pueden anularse mediante la especificación de nuevos valores al enviar trabajos individuales. Para obtener más información, consulte Definiciones de trabajo

Tareas

Una unidad de trabajo (como un script de shell, un ejecutable en Linux o una imagen de contenedor Docker) que envía a AWS Batch. Tiene un nombre y se ejecuta como una aplicación en contenedor en AWS Fargate o recursos de Amazon EC2 de su entorno de computación, utilizando los parámetros que se especifican en una definición de trabajo. Los trabajos pueden hacer referencia a otros trabajos por nombre o ID, y puede que de ellos dependa la correcta realización de otros trabajos o de la disponibilidad de los recursos que usted especifique. Para obtener más información, consulte Tareas.

Política de programación

Puede utilizar las políticas de programación para configurar cómo se asignan los recursos de computación de una cola de trabajos entre los usuarios o las cargas de trabajo. Con las políticas de programación equitativas, puede asignar diferentes identificadores de participación a las cargas de trabajo o a los usuarios. El programador de trabajos de AWS Batch utilizará de forma predeterminada la estrategia FIFO (primero en entrar, primero en salir). Para obtener más información, consulte Políticas de programación de reparto justo.

Recursos consumibles

Un recurso consumible es un recurso que se necesita para ejecutar los trabajos, como un token de licencia de terceros, el ancho de banda de acceso a la base de datos, la necesidad de limitar las llamadas a una API de terceros, etc. Estos recursos consumibles se deben especificar para ejecutar un trabajo, por lo tanto, Batch contempla dichas dependencias de recursos cuando realiza la programación de uno. La reducción de la infrautilización de los recursos de computación se lleva a cabo con la asignación de los trabajos que contienen todos los recursos necesarios. Para obtener más información, consulte Programación basada en los recursos .

Entorno de servicio

Un entorno de servicio define la forma en que AWS Batch se integra con SageMaker para la ejecución de tareas. Los entornos de servicio permiten que AWS Batch envíe trabajos y los administre en SageMaker, sin dejar de brindar las capacidades de creación de colas, programación y gestión de prioridades de AWS Batch. Estos definen los límites de capacidad para los tipos de servicios específicos, como los trabajos de entrenamiento de SageMaker. Los límites de capacidad controlan la cantidad máxima de recursos que pueden utilizar los trabajos de servicio en el entorno. Para obtener más información, consulte Entornos de servicio para AWS Batch.

Trabajo de servicio

Un trabajo de servicio es una unidad de trabajo que se envía a AWS Batch para que se ejecute en un entorno de servicio. Los trabajos de servicio aprovechan las capacidades de preparación de colas y programación de AWS Batch, sin dejar de delegar la ejecución del servicio externo. Por ejemplo, los trabajos de entrenamiento de SageMaker enviados como trabajos de servicio se ponen en cola y AWS Batch los prioriza, pero la ejecución de los trabajos de entrenamiento de SageMaker se lleva a cabo dentro de la infraestructura de SageMaker AI. Esta integración permite a los científicos de datos y a los ingenieros de machine learning beneficiarse de la administración automatizada de las cargas de trabajos de AWS Batch, y las colas de prioridad, para sus cargas de trabajos de SageMaker AI. Los trabajos de servicio pueden hacer referencia a otros trabajos por su nombre o ID y admitir las dependencias de trabajos. Para obtener más información, consulte Trabajos de servicio en AWS Batch.