Actualizar entornos informáticos - 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.

Actualizar entornos informáticos

Tras crear un entorno informático que utilice recursos de EC2, podrá actualizar directamente muchos de los ajustes del entorno informático. Sin embargo, para cambiar algunos de los ajustes es necesario que AWS Batch reemplace las instancias del entorno informático.

Para los entornos informáticos que utilizan recursos de Fargate, puede actualizar lo siguiente.

  • securityGroupIds

  • subnets

  • desiredvCpus

  • maxvCpus

  • minvCpus

AWS Batch tiene dos mecanismos de actualización. La primera es una actualización de escalado en la que se añaden o se borran instancias del entorno informático. La segunda es una actualización de infraestructura en la que se sustituyen las instancias del entorno informático. Una actualización de infraestructura lleva mucho más tiempo que una actualización de escalado.

Si actualiza los entornos de procesamiento con AWS Batch, al cambiar solo estas configuraciones, se produce una actualización de escalado: las vCPU deseadas (desiredvCpus), las vCPU máximas (maxvCpus), las vCPU mínimas (minvCpus), el rol de servicio (serviceRole) y el estado (state).

nota

Al actualizar la configuración de desiredvCpus, el valor debe estar entre los valores minvCpus y maxvCpus.

Además, el valor actualizado de desiredvCpus debe ser mayor o igual que el valor actual de desiredvCpus. Para obtener más información, consulte Mensaje de error al actualizar la configuración de desiredvCpus.

Si alguna de las siguientes configuraciones se modifica en una acción de la API UpdateComputeEnvironment, AWS Batch inicia una actualización de la infraestructura. Una actualización de la infraestructura requiere que el rol de servicio esté establecido en AWSServiceRoleForBatch (el valor predeterminado) y que la estrategia de asignación sea BEST_FIT_PROGRESSIVE, SPOT_CAPACITY_OPTIMIZED, o SPOT_PRICE_CAPACITY_OPTIMIZED. BEST_FIT no se admite. A excepción del rol de servicio, todos los ajustes que se pueden cambiar para una actualización de escalado también se pueden cambiar para una actualización de infraestructura.

nota

Se recomienda utilizar SPOT_PRICE_CAPACITY_OPTIMIZED en lugar de SPOT_CAPACITY_OPTIMIZED en la mayoría de los casos.

Durante una actualización de infraestructura, el estado del entorno informático cambia a UPDATING. Las nuevas instancias se lanzan con la configuración actualizada. Los nuevos trabajos están programados en las nuevas instancias. Los trabajos que se están ejecutando actualmente se envían de acuerdo con la política de actualización de la infraestructura. Para obtener más información, consulte UpdateComputeEnvironment y UpdatePolicy en la Referencia de la API de AWS Batch.

En el tipo de datos UpdatePolicy, considere las siguientes situaciones:

nota

En estas situaciones, se aplica lo siguiente. Cuando se termina una instancia, se detienen los trabajos en ejecución. De forma predeterminada, estos trabajos no se vuelven a intentar. Para volver a intentar uno de estos trabajos una vez finalizada una instancia, configura una estrategia de reintento de trabajo. Para obtener más información, consulte Reintentos automáticos de trabajo en la Guía del usuario de AWS Batch.

  • Si la configuración terminateJobsOnUpdate está establecida en true, los trabajos en ejecución finalizarán durante una actualización de la infraestructura. La configuración jobExecutionTimeoutMinutes se omite.

  • Si la configuración terminateJobsOnUpdate está establecida en false, los trabajos se pueden ejecutar durante más tiempo después de que se haya realizado la actualización de la infraestructura. Este tiempo adicional se configura en la configuración jobExecutionTimeoutMinutes. De forma predeterminada, la configuración de jobExecutionTimeoutMinutes es 30 minutos.

A medida que se dispone de capacidad en el entorno informático, se lanzan nuevas instancias con la configuración actualizada y se inician los trabajos en las nuevas instancias. A medida que se completan todos los trabajos en las instancias con la configuración anterior, las instancias antiguas se cancelan. Lo que significa que la capacidad disponible es que la cantidad deseada de vCPU está por debajo de la cantidad máxima de vCPU en al menos tantas vCPU como las que requiere el tipo de instancia más pequeño.

Actualizaciones de la infraestructura

Es necesaria una actualización de la infraestructura para cambiar algunos ajustes de un entorno informático. Si se cambia alguna de las siguientes configuraciones, se inicia una actualización de la infraestructura:

importante

El entorno informático debe usar el rol vinculado al servicio AWSServiceRoleForBatch para realizar cambios que requieran una actualización de la infraestructura.

Si el entorno de cómputo usa un rol vinculado a un servicio, no se puede cambiar para usar un rol de IAM normal. Del mismo modo, si el entorno de cómputo tiene un rol de IAM normal, no se puede cambiar para usar un rol vinculado a un servicio. Por lo tanto, solo puede realizar actualizaciones de infraestructura en entornos informáticos que se hayan creado mediante un rol vinculado a un servicio.

  • La estrategia de asignación (allocationStrategy, debe ser BEST_FIT_PROGRESSIVE, SPOT_CAPACITY_OPTIMIZED, o SPOT_PRICE_CAPACITY_OPTIMIZED. Si la estrategia de asignación original es BEST_FIT, no se admiten las actualizaciones de infraestructura).

    nota

    Se recomienda utilizar SPOT_PRICE_CAPACITY_OPTIMIZED en lugar de SPOT_CAPACITY_OPTIMIZED en la mayoría de los casos.

  • Porcentaje de oferta (bidPercentage)

  • Configuración de EC2 (ec2Configuration)

  • Par de claves (ec2KeyPair)

  • ID de imagen (imageId)

  • Rol de instancia (instanceRole)

  • Tipos de instancias (instanceTypes)

  • Plantilla de lanzamiento (launchTemplate)

  • Grupo de ubicación (placementGroup)

  • Grupos de seguridad (securityGroupIds)

  • Subredes de la VPC (subnets)

  • Etiquetas EC2 (tags)

  • Tipo de entorno informático (type, puede ser uno de EC2 oSPOT)

  • Si se debe actualizar a la AMI más reciente compatible AWS Batch durante una actualización de infraestructura updateToLatestImageVersion

Actualización del ID de la AMI

Durante una actualización de la infraestructura, el ID de la AMI del entorno informático puede cambiar en función de si las AMI se especifican en alguna de estas tres configuraciones. Las AMI se especifican en la imageId (en computeResources), imageIdOverride (en ec2Configuration), o de lanzamiento especificada en launchTemplate. Suponga que no se especifica ningún ID de AMI en ninguna de esas configuraciones y que la configuración updateToLatestImageVersion es true. A continuación, la última AMI optimizada de Amazon ECS compatible con AWS Batch se utiliza para cualquier actualización de la infraestructura.

Si se especifica una ID de AMI en al menos una de estas configuraciones, la actualización depende de la configuración proporcionada por la ID de AMI utilizada antes de la actualización. Al crear un entorno informático, la prioridad a la hora de seleccionar un ID de AMI es primero la plantilla de lanzamiento, después la configuración imageId y, por último, la configuración imageIdOverride. Sin embargo, si el ID de la AMI que se utiliza proviene de la plantilla de lanzamiento, al actualizar la configuración imageId o imageIdOverride, no se actualiza el ID de la AMI. La única forma de actualizar un ID de AMI seleccionado en la plantilla de lanzamiento es actualizar la plantilla de lanzamiento. Si el parámetro de versión de la plantilla de lanzamiento es $Default o $Latest, se evalúa la versión por defecto o la más reciente de la plantilla de lanzamiento especificada. Si se selecciona un ID de AMI diferente de forma predeterminada o se selecciona la última versión de la plantilla de lanzamiento, ese ID de AMI se utiliza en la actualización.

Si la plantilla de lanzamiento no se usó para seleccionar el ID de AMI, se usa el ID de AMI que se especifica en los parámetros imageId o imageIdOverride. Si se especifican ambos, se utiliza el ID de AMI especificado en el parámetro imageIdOverride.

Supongamos que el entorno informático utiliza un ID de AMI especificado por los parámetros imageId, imageIdOverride, o launchTemplate, y usted desea utilizar la última AMI optimizada para Amazon ECS compatible con AWS Batch. A continuación, la actualización debe eliminar la configuración que proporcionaba los ID de AMI. Para imageId, es necesario especificar una cadena vacía para ese parámetro. Para imageIdOverride, es necesario especificar una cadena vacía para el parámetro de ec2Configuration.

Si el ID de la AMI proviene de la plantilla de lanzamiento, puede cambiarlo AWS Batch por la última AMI optimizada para Amazon ECS que sea compatible con una de las siguientes formas:

  • Elimine la plantilla de lanzamiento especificando una cadena vacía para el parámetro launchTemplateId o launchTemplateName. Esto elimina toda la plantilla de lanzamiento, en lugar de solo el ID de la AMI.

  • Si la versión actualizada de la plantilla de lanzamiento no especifica un ID de AMI, el parámetro updateToLatestImageVersion debe estar establecido en true.