

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 una función *AWSServiceRoleForBatch*vinculada al servicio y una estrategia de asignación de `BEST_FIT_PROGRESSIVE``SPOT_CAPACITY_OPTIMIZED`, o. `SPOT_PRICE_CAPACITY_OPTIMIZED` Si su entorno no cumple con estos requisitos, utilice 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 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
<a name="updating-compute-environments-ami"></a>

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

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 la AMI IDs. 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
<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 la consola a la última versión de AMI, consulte[Actualización de las versiones de 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. Seleccione el entorno de computación para actualizarlo.

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:
   + **Función de instancia**
   + **Uso de instancias de spot de EC2**
   + **Tipos de instancias permitidos**
   + **Grupo de ubicació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 la infraestructura mediante la AWS Batch consola para observar cómo cambia el estado del entorno de procesamiento`UPDATING`, supervisar el progreso del reemplazo 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 puede utilizarla CloudWatch para realizar un seguimiento de los eventos de finalización de instancias y supervisar el estado de los trabajos durante la actualización. Con él AWS CLI, utilice el **describe-compute-environments** comando para comprobar el estado y supervisar los eventos del ciclo de vida de la instancia.