

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
<a name="infrastructure-updates"></a>

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 la función * AWSServiceRoleForBatch * vinculada al servicio y una estrategia de asignación de`BEST_FIT_PROGRESSIVE`,`BEST_FIT_PROGRESSIVE_ORDERED`, `SPOT_CAPACITY_OPTIMIZED``SPOT_PRICE_CAPACITY_OPTIMIZED`, o. `SPOT_CAPACITY_OPTIMIZED_PRIORITIZED` Si su entorno no cumple con estos requisitos, utilice las blue/green actualizaciones en su lugar.

## Cambios que activan las actualizaciones de la infraestructura
<a name="infrastructure-updates-triggers"></a>

Al modificar cualquiera de las siguientes configuraciones, 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 cómo se AWS Batch seleccionan los tipos de instancias.
+ `instanceTypes`: Especifica los tipos de instancias de EC2 que se deben utilizar
+ `bidPercentage`— Porcentaje máximo del On-Demand precio de las instancias puntuales.
+ `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
<a name="updating-compute-environments-ami"></a>

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, se utiliza la última AMI optimizada para Amazon ECS compatible con la que AWS Batch se puede actualizar 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 por la última AMI optimizada para Amazon ECS que sea compatible AWS Batch mediante una de las siguientes maneras:
+ 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
<a name="infrastructure-updates-job-handling"></a>

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](job_retries.md).

------
#### [ Performing infrastructure updates using the Consola de administración de AWS ]

**nota**  
Para actualizar simplemente a la versión más reciente de la AMI en la consola, consulte[Actualización de las versiones de la AMI](managing-ami-versions.md#updating-ami-versions).

1. Abra la AWS Batch consola en [ https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/).

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

1. En la ** pestaña Entornos de ** procesamiento, seleccione la opción situada junto al entorno de procesamiento que desea actualizar. Debes seleccionar un entorno de procesamiento antes de que estén disponibles las opciones ** del menú ** Acciones.

1. Elija **Acciones** y, a continuación, elija **Editar**.

1. 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.

1. Modifique una o más de las [configuraciones que requieren una actualización de la infraestructura](#infrastructure-updates-triggers). Por ejemplo:
   + **Rol de instancia **
   + **Uso de instancias de spot de EC2**
   + **Tipos de instancias permitidos**
   + **Grupo de colocación **
   + **EC2 key pair (Par de claves de EC2)**
   + **Configuración de EC2**
   + **Plantillas de lanzamiento**
   + **Subredes**
   + **Grupos de seguridad**

1. Seleccione **Save changes (Guardar cambios)**.

1. 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](#infrastructure-updates-triggers). 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
<a name="infrastructure-updates-monitoring"></a>

Supervise las actualizaciones de su infraestructura mediante la AWS Batch consola para ver cómo cambia el estado del entorno de procesamiento`UPDATING`, supervisar el progreso de la sustitución de las instancias y 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 puedes utilizarla CloudWatch para realizar un seguimiento de los eventos de finalización de las instancias y supervisar el estado de las tareas durante la actualización. Con el AWS CLI, usa el **describe-compute-environments** comando para comprobar el estado y supervisar los eventos del ciclo de vida de la instancia.