Cómo realizar actualizaciones de la infraestructura - 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.

Cómo realizar actualizaciones de la infraestructura

Las actualizaciones de infraestructura sustituyen las instancias del entorno de computación por unas nuevas, ya que tienen una configuración actualizada. Esta estrategia de actualización tarda más que el escalado de las actualizaciones y requiere una configuración específica del rol de servicio y la estrategia de asignación. Las actualizaciones de infraestructura brindan una forma de modificar las configuraciones fundamentales del entorno de computación sin perder la disponibilidad del servicio.

importante

Las actualizaciones de infraestructura requieren el rol vinculado al servicio AWSServiceRoleForBatch y una estrategia de asignación de BEST_FIT_PROGRESSIVE, SPOT_CAPACITY_OPTIMIZED o SPOT_PRICE_CAPACITY_OPTIMIZED. Si su entorno no cumple estos requisitos, utilice actualizaciones azul/verde en su lugar.

Cambios que activan las actualizaciones de la infraestructura

Cuando cualquiera de los siguientes ajustes se modifica, AWS Batch realiza una actualización de la infraestructura. Las actualizaciones de la infraestructura también se producen cuando se modifican estos ajustes junto con el escalado de los ajustes de actualización.

Los siguientes ajustes activan las actualizaciones de infraestructura:

Configuración de computación

  • allocationStrategy: Determina la forma en que AWS Batch selecciona los tipos de instancias

  • instanceTypes: Especifica los tipos de instancias de EC2 que se deben utilizar

  • bidPercentage: Porcentaje máximo del precio bajo demanda para las instancias de spot

  • type: Tipo de entorno de computación (EC2 o SPOT)

AMI y configuración de lanzamiento

  • imageId: AMI específica para utilizar en las instancias

  • ec2Configuration: Configuración de EC2, como imageIdOverride

  • launchTemplate: Configuración de la plantilla de lanzamiento de EC2

  • ec2KeyPair: Par de claves SSH para el acceso a la instancia

  • updateToLatestImageVersion: Configuración de actualizaciones automáticas de AMI

Redes y seguridad

  • subnets: Subredes de VPC donde se lanzan las instancias (para entornos de computación de EC2)

  • securityGroupIds: Grupos de seguridad para instancias (para entornos de computación de EC2)

  • placementGroup: Configuración de grupos de ubicación de EC2

Otra configuración

  • instanceRole: Rol de IAM para instancias de EC2

  • tags: Etiquetas aplicadas a instancias de EC2

importante

Si modifica alguna configuración de actualización de la infraestructura junto con la configuración de actualización de escala (por ejemplo desiredvCpus, maxvCpus, o minvCpus), AWS Batch realiza una actualización de la infraestructura. Las actualizaciones de la infraestructura tardan más tiempo que las actualizaciones de escalado.

Selección de AMI durante las actualizaciones de la infraestructura

Durante una actualización de la infraestructura, el ID de la AMI del entorno de computación 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 de computación, 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 de computación 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.

Gestión de trabajos durante las actualizaciones

Configure el modo en que se gestionan los trabajos en ejecución durante una actualización de la infraestructura mediante la política de actualización. Cuando se configura terminateJobsOnUpdate=true, los trabajos en ejecución finalizan de inmediato, así como se ignora la configuración de jobExecutionTimeoutMinutes y la actualización se realiza en cuanto se puedan reemplazar las instancias. Si configura terminateJobsOnUpdate=false, los trabajos en ejecución continúan durante el periodo de espera especificado, con un tiempo de espera predeterminado de 30 minutos, y los trabajos se cancelan si superan el tiempo de espera.

nota

Para volver a intentar trabajos finalizados durante una actualización, configure una estrategia de reintento de trabajo. Para obtener más información, consulte Reintentos automáticos de trabajo.

Performing infrastructure updates using the Consola de administración de AWS
  1. Abra la consola AWS Batch en https://console.aws.amazon.com/batch/.

  2. En el panel de navegación, seleccione Entornos en la pestaña Entornos de computación.

  3. Seleccione el entorno de computación para actualizarlo.

  4. Elija Acciones y, a continuación, elija Editar.

  5. En la sección Comportamiento de actualización, configure la forma en que se van a gestionar los trabajos en ejecución:

    • Elija Actualizar la AMI a la versión más reciente para actualizar la AMI a la versión más reciente.

    • Elija Finalizar los trabajos inmediatamente al actualizar para finalizar los trabajos cuando se ejecute el proceso de actualización.

    • En Tiempo de espera de ejecución del trabajo, ingrese el número de minutos que se debe esperar antes de iniciar el proceso de actualización.

  6. Modifique una o más de las configuraciones que requieren una actualización de la infraestructura. Por ejemplo:

    • Rol de instancia

    • Uso de instancias de spot de EC2

    • Tipos de instancias permitidos

    • Grupo de ubicación

    • EC2 key pair

    • Configuración de EC

    • Plantillas de inicialización

    • Subredes

    • Grupos de seguridad

  7. Seleccione Save changes (Guardar cambios).

  8. Supervise el estado del entorno de computación. El entorno se mostrará UPDATING durante el proceso de actualización.

Performing infrastructure updates using the AWS CLI

Utilice el comando update-compute-environment para cambiar una o más de las configuraciones que requieren una actualización de la infraestructura. Los siguientes tres ejemplos son operaciones de infraestructura comunes.

  • En este ejemplo, se actualizan los tipos de instancias y se configura la política de actualización:

    aws batch update-compute-environment \ --compute-environment your-compute-environment-name \ --compute-resources instanceTypes=default_x86_64 \ --update-policy terminateJobsOnUpdate=false,jobExecutionTimeoutMinutes=30
  • En este ejemplo, se actualizan las subredes de la VPC y los grupos de seguridad:

    aws batch update-compute-environment \ --compute-environment your-compute-environment-name \ --compute-resources subnets=subnet-abcd1234,subnet-efgh5678 securityGroupIds=sg-abcd1234 \ --update-policy terminateJobsOnUpdate=true
  • En este ejemplo, se habilitan las actualizaciones automáticas de la última AMI optimizada de Amazon ECS:

    aws batch update-compute-environment \ --compute-environment your-compute-environment-name \ --compute-resources updateToLatestImageVersion=true \ --update-policy terminateJobsOnUpdate=false,jobExecutionTimeoutMinutes=60

Supervisión de las actualizaciones de la infraestructura

Supervise las actualizaciones de la infraestructura mediante la consola de AWS Batch para observar cómo el estado del entorno de computación cambia a UPDATING, para supervisar el progreso del reemplazo de las instancias y para comprobar si hay algún error en las actualizaciones. La actualización se realiza correctamente una vez que el estado del entorno de computación es VAILD. También puede utilizar CloudWatch para realizar un seguimiento de los eventos de finalización de instancias y supervisar los estados de los trabajos durante la actualización. Con la AWS CLI, utilice el comando describe-compute-environments para comprobar el estado y supervisar los eventos del ciclo de vida de la instancia.