

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.

# Entornos informáticos para AWS Batch
<a name="compute_environments"></a>

Las colas de trabajos se asignan a uno o varios entornos de computación. Los entornos de computación incluyen instancias de contenedor de Amazon ECS que se utilizan para ejecutar trabajos por lotes en contenedores. Un entorno de computación específico también se puede asignar a una o más de una cola de trabajos. Dentro de una cola de trabajos, los entornos de computación asociados tienen cada uno un orden que utiliza el programador para determinar dónde se ejecutarán los trabajos que están listos para ejecutarse. Si el entorno de computación tiene un estado de `VALID` y tiene recursos gratuitos, el trabajo se programa para una instancia de contenedor dentro de dicho entorno de computación. Si el entorno de computación tiene un estado de `INVALID` o no puede proporcionar un recurso de computación apropiado, el programador intenta ejecutar el trabajo en el siguiente entorno de computación.

**Topics**
+ [Entornos de computación administrados](managed_compute_environments.md)
+ [Entornos de computación no administrados](unmanaged_compute_environments.md)
+ [Creación de un entorno de computación](create-compute-environment.md)
+ [Actualizar un entorno informático en AWS Batch](updating-compute-environments.md)
+ [Recurso informático AMIs](compute_resource_AMIs.md)
+ [Utilice las plantillas de lanzamiento de Amazon EC2 con AWS Batch](launch-templates.md)
+ [Configuración del servicio de metadatos de instancias (IMDS)](imds-compute-environments.md)
+ [Configuraciones de EC2](ec2-configurations.md)
+ [Estrategias de asignación de tipos de instancia para AWS Batch](allocation-strategies.md)
+ [Administración de la memoria de recurso de computación](memory-management.md)
+ [Entornos de computación en Fargate](fargate.md)
+ [Entornos de computación de Amazon EKS](eks.md)

# Entornos de computación administrados
<a name="managed_compute_environments"></a>

Puede utilizar un entorno informático gestionado para AWS Batch gestionar la capacidad y los tipos de instancias de los recursos informáticos del entorno. Esto se basa en la especificación del recurso de cálculo que usted defina al crear el entorno de computación. Puede optar por utilizar Instancias bajo demanda de Amazon EC2 o Instancias de spot de Amazon EC2. O bien, también puede utilizar la capacidad de Fargate y Fargate Spot en su entorno de computación administrado. Si utiliza instancias de spot, también puede establecer un precio máximo. De este modo, las instancias de spot solo se lanzan cuando el precio de oferta de spot está por debajo de un determinado porcentaje del precio bajo demanda.

**importante**  
Las instancias Fargate Spot no son compatibles con. Windows containers on AWS Fargate Se bloqueará una cola de trabajos si se envía un FargateWindows trabajo a una cola de trabajos que solo utilice entornos de cómputo Fargate Spot.

**importante**  
AWS Batch crea y administra varios AWS recursos en su nombre y dentro de su cuenta, incluidas las plantillas de lanzamiento de Amazon EC2, los grupos de Auto Scaling de Amazon EC2, las flotas puntuales de Amazon EC2 y los clústeres de Amazon ECS. Estos recursos administrados están configurados específicamente para garantizar un funcionamiento óptimo de AWS Batch . La modificación manual de estos recursos AWS Batch gestionados, a menos que se indique de forma explícita en la AWS Batch documentación, puede provocar un comportamiento inesperado, como los entornos `INVALID` informáticos, un comportamiento de escalado de instancias subóptimo, retrasos en el procesamiento de la carga de trabajo o costes inesperados. El servicio no puede respaldar estas modificaciones manuales de forma determinista. AWS Batch Utilice siempre la consola AWS Batch APIs o la AWS Batch consola compatibles para gestionar sus entornos informáticos.  
Las modificaciones manuales no admitidas incluyen ejecutar sus propias tareas o servicios de Amazon ECS en AWS Batch clústeres de Amazon ECS administrados o iniciar procesos, daemons o servicios adicionales directamente en instancias administradas. AWS Batch AWS Batch asume el control total de los recursos informáticos en un entorno informático gestionado y puede finalizar instancias, detener tareas o escalar el clúster en cualquier momento. Cualquier carga de trabajo que ejecute fuera de la presentación de AWS Batch trabajos en estos recursos gestionados puede interrumpirse sin previo aviso. La ejecución de AWS Batch cargas de trabajo no AWS Batch gestionadas en clústeres e instancias gestionados también puede interferir con la programación de los AWS Batch trabajos y el escalado de las instancias.

Los entornos de computación gestionados lanzan instancias de Amazon EC2 en la VPC y las subredes que especifique y, a continuación, las registran en un clúster de Amazon ECS. Las instancias de Amazon EC2 necesitan acceso de red externo para comunicarse con el punto de conexión de servicio de Amazon ECS. Algunas subredes no proporcionan direcciones IP públicas a las instancias de Amazon EC2. Si las instancias de Amazon EC2 no tienen una dirección IP pública, deberán utilizar traducción de direcciones de red (NAT) para obtener este acceso. Para obtener información, consulte [Gateways NAT](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) en la *Guía del usuario de Amazon VPC*. Para obtener más información acerca de cómo crear una VPC, consulte [Creación de una nube virtual privada](create-public-private-vpc.md).

De forma predeterminada, los entornos informáticos AWS Batch gestionados utilizan una versión reciente y aprobada de la AMI optimizada de Amazon ECS para los recursos informáticos. Sin embargo, es posible que desee crear sus propias AMI para utilizarlas en sus entornos de computación administrados por varias razones. Para obtener más información, consulte [Recurso informático AMIs](compute_resource_AMIs.md).

**nota**  
AWS Batch no se actualiza automáticamente AMIs en un entorno informático una vez creado. Por ejemplo, no actualiza el AMIs entorno informático cuando se publica una versión más reciente de la AMI optimizada para Amazon ECS. Usted es responsable de la administración del sistema operativo invitado. Esto incluye actualizaciones y parches de seguridad. También es el responsable de cualquier otra utilidad o software de aplicaciones que se instale en los recursos de computación. Hay dos maneras de utilizar una AMI nueva para sus AWS Batch trabajos. El método original consiste en completar estos pasos:  
Cree un nuevo entorno de computación con la nueva AMI.
Añada el entorno de computación a una cola de trabajos existente.
Quite el entorno de computación anterior de la cola de trabajos.
Elimine el entorno de computación anterior.
En abril de 2022, AWS Batch se agregó un soporte mejorado para actualizar los entornos de cómputo. Para obtener más información, consulte [Actualizar un entorno informático en AWS Batch](updating-compute-environments.md). Para utilizar la actualización mejorada de los entornos de cómputo para actualizar AMIs, siga estas reglas:  
No establezcas el parámetro service role ([https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateComputeEnvironment.html#Batch-CreateComputeEnvironment-request-serviceRole](https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateComputeEnvironment.html#Batch-CreateComputeEnvironment-request-serviceRole)) o establézcalo en el rol **AWSServiceRoleForBatch**vinculado al servicio.
Defina el parámetro de estrategia de asignación ([https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-allocationStrategy](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-allocationStrategy)) en `BEST_FIT_PROGRESSIVE`, `SPOT_CAPACITY_OPTIMIZED` o `SPOT_PRICE_CAPACITY_OPTIMIZED`.
Defina el parámetro de actualización a la última versión de la imagen ([https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResourceUpdate.html#Batch-Type-ComputeResourceUpdate-updateToLatestImageVersion](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResourceUpdate.html#Batch-Type-ComputeResourceUpdate-updateToLatestImageVersion)) en `true`.
No especifique un ID de AMI en [https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResourceUpdate.html#Batch-Type-ComputeResourceUpdate-imageId](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResourceUpdate.html#Batch-Type-ComputeResourceUpdate-imageId), [https://docs.aws.amazon.com/batch/latest/APIReference/API_Ec2Configuration.html#Batch-Type-Ec2Configuration-imageIdOverride](https://docs.aws.amazon.com/batch/latest/APIReference/API_Ec2Configuration.html#Batch-Type-Ec2Configuration-imageIdOverride) (en [https://docs.aws.amazon.com/batch/latest/APIReference/API_Ec2Configuration.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_Ec2Configuration.html)) o en la plantilla de lanzamiento ([https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResourceUpdate.html#Batch-Type-ComputeResourceUpdate-launchTemplate](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResourceUpdate.html#Batch-Type-ComputeResourceUpdate-launchTemplate)). En ese caso, AWS Batch selecciona la última AMI optimizada para Amazon ECS compatible AWS Batch en el momento en que se inicia la actualización de la infraestructura. Como alternativa, puede especificar el ID de la AMI en los parámetros `imageId` o `imageIdOverride`, o la plantilla de lanzamiento identificada por las propiedades `LaunchTemplate`. El cambio de cualquiera de estas propiedades inicia una actualización de la infraestructura. Si el ID de AMI se especifica en la plantilla de lanzamiento, no se puede reemplazar especificando un ID de AMI en los parámetros `imageId` o `imageIdOverride`. Solo se puede reemplazar especificando una plantilla de lanzamiento diferente. O bien, si la versión de la plantilla de lanzamiento está configurada en `$Default` o `$Latest`, configurando una nueva versión predeterminada para la plantilla de lanzamiento (si es `$Default`) o añadiendo una nueva versión a la plantilla de lanzamiento (si es `$Latest`).
Si se siguen estas reglas, cualquier actualización que inicie una actualización de la infraestructura hará que se vuelva a seleccionar el ID de la AMI. Si la configuración [https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecification.html#Batch-Type-LaunchTemplateSpecification-version](https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecification.html#Batch-Type-LaunchTemplateSpecification-version) en la plantilla de lanzamiento ([https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResourceUpdate.html#Batch-Type-ComputeResourceUpdate-launchTemplate](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResourceUpdate.html#Batch-Type-ComputeResourceUpdate-launchTemplate)) toma el valor `$Latest` o `$Default`, se evaluará la versión más reciente o predeterminada de la plantilla de lanzamiento en el momento de la actualización de la infraestructura, incluso si [https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResourceUpdate.html#Batch-Type-ComputeResourceUpdate-launchTemplate](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResourceUpdate.html#Batch-Type-ComputeResourceUpdate-launchTemplate) no se ha actualizado.

## Consideraciones a la hora de crear trabajos paralelos de varios nodos
<a name="managed_compute_environment_singlevsmnp"></a>

AWS Batch recomienda crear entornos de cómputo dedicados para ejecutar trabajos paralelos (MNP) con varios nodos y trabajos que no sean MNP. Esto se debe a la forma en que se crea la capacidad informática en su entorno de computación administrado. Al crear un nuevo entorno informático gestionado, si especificas un `minvCpu` valor superior a cero, AWS Batch crea un grupo de instancias para usarlo únicamente con trabajos que no son MNP. Si se envía un trabajo paralelo de varios nodos, AWS Batch crea una nueva capacidad de instancia para ejecutar los trabajos paralelos de varios nodos. En los casos en los que haya trabajos paralelos de un solo nodo y de varios nodos ejecutándose en el mismo entorno informático en el que se establezca un `maxvCpus` valor `minvCpus` o, si los recursos informáticos necesarios no están disponibles, AWS Batch esperará a que finalicen los trabajos actuales antes de crear los recursos informáticos necesarios para ejecutar los nuevos trabajos.

# Entornos de computación no administrados
<a name="unmanaged_compute_environments"></a>

En un entorno informático no administrado, usted administra sus propios recursos informáticos. AWS Batch admite entornos informáticos no gestionados tanto para Amazon ECS como para Amazon EKS, lo que le permite mantener el control de su infraestructura y, al mismo tiempo, aprovechar las capacidades de programación de trabajos de Batch.

**nota**  
AWS Los recursos de Fargate no son compatibles con los entornos informáticos no gestionados.

En el caso de los entornos informáticos de Amazon ECS no administrados, debe comprobar que la AMI que utiliza para sus recursos informáticos cumple con la especificación de la AMI de la instancia de contenedor de Amazon ECS. Para obtener más información, consulte [Especificaciones de AMI de recursos de computación](batch-ami-spec.md) y [Tutorial: creación de una AMI de recursos de computación](create-batch-ami.md).

Después de crear el entorno de cómputo no administrado, utilice la operación de [DescribeComputeEnvironments](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeComputeEnvironments.html)API para ver los detalles del entorno de cómputo. Encuentre el clúster de Amazon ECS asociado al entorno y, a continuación, lance manualmente las instancias de contenedor en ese clúster de Amazon ECS.

El siguiente AWS CLI comando también proporciona el ARN del clúster Amazon ECS.

```
$ aws batch describe-compute-environments \
    --compute-environments unmanagedCE \
    --query "computeEnvironments[].ecsClusterArn"
```

Para obtener más información, consulte [Lanzamiento de una instancia de contenedor de Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_container_instance.html) en la *Guía del desarrollador de Amazon Elastic Container Service*. Al lanzar los recursos de computación, especifique el ARN del clúster de Amazon ECS que los recursos deben registrar con los siguientes datos de usuario de Amazon EC2. *ecsClusterArn*Sustitúyalo por el ARN del clúster que obtuvo con el comando anterior.

```
#!/bin/bash
echo "ECS_CLUSTER=ecsClusterArn" >> /etc/ecs/ecs.config
```

En un entorno informático Amazon EKS no administrado, usted administra sus propios nodos de Kubernetes y, al mismo tiempo, AWS Batch gestiona la programación y la colocación de los trabajos. Le permite controlar directamente su infraestructura de Kubernetes para cumplir con los requisitos operativos, de seguridad o de conformidad. Usted es responsable de aprovisionar y configurar sus nodos de Amazon EKS y, al mismo tiempo, de AWS Batch integrarlos con su clúster de Amazon EKS existente para programar y ejecutar los trabajos.

Para obtener más información, consulte el [tutorial: Creación de un entorno informático no gestionado con los recursos de Amazon EKS](https://docs.aws.amazon.com/batch/latest/userguide/create-compute-environment-unmanaged-eks.html).

# Creación de un entorno de computación
<a name="create-compute-environment"></a>

Antes de poder ejecutar trabajos AWS Batch, debe crear un entorno informático. Puede crear un entorno informático gestionado en el que AWS Batch administre las instancias de Amazon EC2 o los recursos de AWS Fargate dentro del entorno en función de sus especificaciones. O bien, puede crear un entorno de computación no administrado en el que gestione la configuración de la instancia de Amazon EC2 dentro del entorno.

**importante**  
Las instancias de spot de Fargate no se admiten en los siguientes escenarios:  
Windows containers on AWS Fargate
En estas situaciones, se bloqueará una cola de trabajos si un trabajo se envía a una cola de trabajos que solo utiliza entornos de computación Fargate Spot.

**Topics**
+ [Tutorial: creación de un entorno de computación gestionado con los recursos de Fargate](create-compute-environment-fargate.md)
+ [Tutorial: creación de un entorno de computación gestionado con los recursos de Amazon EC2](create-compute-environment-managed-ec2.md)
+ [Tutorial: creación de un entorno de computación no gestionado con los recursos de Amazon EC2](create-compute-environment-unmanaged-ec2.md)
+ [Tutorial: creación de un entorno de computación gestionado con los recursos de Amazon EKS](create-compute-environment-managed-eks.md)
+ [Tutorial: Creación de un entorno informático no gestionado con los recursos de Amazon EKS](create-compute-environment-unmanaged-eks.md)
+ [Recurso: plantilla de entorno de computación](compute-environment-template.md)
+ [Tabla de computación para el tipo de instancia](instance-type-compute-table.md)

# Tutorial: creación de un entorno de computación gestionado con los recursos de Fargate
<a name="create-compute-environment-fargate"></a>

Siga estos pasos para crear un entorno de computación administrado mediante recursos de AWS Fargate .

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

1. En la barra de navegación, seleccione la Región de AWS que desee utilizar.

1. En el panel de navegación, elija **Entornos de computación**.

1. Seleccione **Creación de**.

1. Configure el entorno de computación.
**nota**  
Los entornos de cómputo para los Windows containers on AWS Fargate trabajos deben tener al menos una vCPU.

   1. Para la **Configuración del entorno de cómputo**, elija **Fargate**.

   1. En **Nombre**, especifique un nombre único para el entorno de computación. El nombre puede contener hasta 128 caracteres. Puede contener letras mayúsculas y minúsculas, números, guiones (-) y guiones bajos (\$1).

   1. En el **rol de servicio**, elige un rol vinculado al servicio que permita al AWS Batch servicio realizar llamadas a las operaciones de AWS API requeridas en tu nombre. En este ejemplo, elija **AWSServiceRoleForBatch**. Para obtener más información, consulte [Utilizar funciones vinculadas al servicio para AWS Batch](using-service-linked-roles.md).

   1. (Opcional) Amplíe las **Etiquetas**. Para agregar una etiqueta, elija **Add tag (Añadir etiqueta)**. Ingrese un nombre de **Clave** y un **Valor** opcional. Seleccione **Agregar etiqueta**.

   1. Seleccione **Página siguiente**.

1. Sección de **Configuración de instancias**:

   1. (Opcional) En **Utilizar la capacidad de Fargate Spot**, active Fargate Spot. Para obtener información sobre Fargate Spot, consulte [Uso de Amazon EC2 Spot y Fargate\$1SPOT](https://docs.aws.amazon.com/AmazonECS/latest/bestpracticesguide/ec2-and-fargate-spot.html). 

   1. En **Maximum v CPUs**, elija el número máximo de v al CPUs que se pueda escalar su entorno informático, independientemente de la demanda de colas de trabajos.

   1. Seleccione **Página siguiente**.

1. Configure redes.
**importante**  
Los recursos de computación de las deben obtener acceso para comunicarse con el punto de conexión del servicio de Amazon ECS. Esto puede ser a través de un punto de conexión de VPC de la interfaz o a través de recursos de computación de las con direcciones IP públicas.  
Para obtener más información acerca de los puntos de enlace de la VPC de la interfaz, consulte [Puntos de enlace de la VPC de la interfaz de Amazon ECS (AWS PrivateLink)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/vpc-endpoints.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*.  
Si no tiene configurado un punto de conexión de la VPC de la interfaz y los recursos de computación de las no tienen direcciones IP públicas, deberán utilizar traducción de direcciones de red (NAT) para proporcionar este acceso. Para obtener más información, consulte [Gateways NAT](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) en la *Guía del usuario de Amazon VPC*. Para obtener más información, consulte [Creación de una VPC](create-a-vpc.md).

   1. Para el **ID de la nube privada virtual (VPC)**, elija una VPC en la que quiera lanzar sus instancias.

   1. En **Subredes**, elija las subredes que vaya a utilizar. De forma predeterminada, se escogen todas las subredes dentro de la VPC disponible.
**nota**  
AWS Batch on Fargate no es compatible actualmente con las Zonas Locales. Para obtener más información, consulte los [Clústeres de Amazon ECS en Local Zones, Wavelength Zones y AWS Outposts](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-regions-zones.html#clusters-local-zones) en la *Guía para desarrolladores de Amazon Elastic Container Service*.

   1. En **Grupos de seguridad**, seleccione un su grupo de seguridad para asociarlo a las instancias. De forma predeterminada, se escoge el grupo de seguridad predeterminado para la VPC.

   1. Seleccione **Página siguiente**.

1. Para la **Revisión**, revise los pasos de configuración. Si necesita realizar cambios, elija **Editar**. Cuando haya terminado, seleccione **Creación de entorno de computación**.

# Tutorial: creación de un entorno de computación gestionado con los recursos de Amazon EC2
<a name="create-compute-environment-managed-ec2"></a>

Siga estos pasos para crear un entorno de computación administrado mediante recursos de Amazon Elastic Compute Cloud (Amazon EC2).

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

1. En la barra de navegación, seleccione la Región de AWS que desee utilizar.

1. En el panel de navegación, elija **Entornos**.

1. Elija **Crear entorno** y, a continuación, **Entorno de computación**.

1. Configure el entorno.

   1. Para la **Configuración del entorno de computación**, elija **Amazon Elastic Compute Cloud (Amazon EC2**).

   1. Para el **Tipo de orquestación**, seleccione **Administrado**.

   1. En **Nombre**, especifique un nombre único para el entorno de computación. El nombre puede contener hasta 128 caracteres. Puede contener letras mayúsculas y minúsculas, números, guiones (-) y guiones bajos (\$1).

   1. En **Rol de servicio**, elige un rol vinculado al servicio que permita al AWS Batch servicio realizar llamadas a las operaciones de AWS API requeridas en tu nombre. En este ejemplo, elija **AWSServiceRoleForBatch**. Para obtener más información, consulte [Utilizar funciones vinculadas al servicio para AWS Batch](using-service-linked-roles.md).

   1. En **Instance role (Rol de instancia)**, elija si desea crear un perfil de instancia nuevo o utilizar uno ya existente que tenga asociados los permisos de IAM necesarios. Este perfil de instancia permite que las instancias de contenedor de Amazon ECS que se crean para su entorno de cómputo realicen llamadas a las operaciones de AWS API requeridas en su nombre. Para obtener más información, consulte [Rol de instancia de Amazon ECS](instance_IAM_role.md). Si decide crear un perfil de instancia nuevo, se creará el rol requerido (`ecsInstanceRole`).

   1. (Opcional) Amplíe las **Etiquetas**. 

      1. (Opcional) En el caso de las **Etiquetas de EC2**, seleccione **Agregar etiqueta** para añadir una etiqueta a los recursos que se lanzan en el entorno de computación. Ingrese un nombre de **Clave** y un **Valor** opcional. Seleccione **Agregar etiqueta**. 

      1. (Opcional) En **Etiquetas**, seleccione **Agregar etiqueta**. Ingrese un nombre de **Clave** y un **Valor** opcional. Seleccione **Agregar etiqueta**. 

         Para obtener más información, consulte [Etiquetar los recursos de AWS Batch](using-tags.md).

   1.  Elija **Siguiente**.

1. Sección de **Configuración de instancias**:

   1. (Opcional) En **Habilitar el uso de instancias de spot**, active Spot. Para obtener más información, consulte [Instancias de spot de ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances.html). 

   1. (Opcional) En **Precio máximo % bajo demanda**, seleccione el porcentaje máximo del precio que puede tener una instancia de spot en relación con su precio bajo demanda antes de que lancen las instancias. Por ejemplo, si el precio máximo es el 20%, el precio de spot de esa instancia de EC2 deberá ser inferior al 20% del precio bajo demanda que tenga en ese momento. Siempre se paga el precio más bajo (de mercado) y nunca más que lo marcado por el porcentaje máximo. Si se deja este campo en blanco, el valor predeterminado es el 100% del precio bajo demanda.

   1. (Solo Spot) En **Rol de la flota de spot**, seleccione un rol de IAM para la flota de spot de Amazon EC2 que quiera aplicar a su entorno de computación de spot. Si aún no tiene un rol de IAM para la flota de spot de Amazon EC2, primero debe crear uno. Para obtener más información, consulte [Rol de flota de spot de Amazon EC2](spot_fleet_IAM_role.md).
**importante**  
Para etiquetar las instancias puntuales al crearlas, su función de IAM de Amazon EC2 Spot Fleet debe utilizar la política gestionada por **Amazon EC2 SpotFleetTaggingRole** más reciente. La política EC2 SpotFleetRole gestionada por **Amazon** no tiene los permisos necesarios para etiquetar instancias puntuales. Para obtener más información, consulte [Instancias de spot no etiquetadas en el momento de su creación](spot-instance-no-tag.md) y [Etiquetar los recursos](tag-resources.md).

   1. **Como mínimo v CPUs**, elija el número mínimo de v CPUs que mantenga su entorno informático, independientemente de la demanda de colas de trabajos.

   1. En el **campo v deseado CPUs**, elija el número de v con el CPUs que se inicia el entorno informático. A medida que aumente la demanda de colas de trabajos, AWS Batch puede aumentar la cantidad deseada de vCPU en su entorno informático y añadir instancias EC2, hasta un máximo de v. CPUs A medida que disminuya la demanda, AWS Batch puede reducir la cantidad deseada de v CPUs en su entorno informático y eliminar instancias, hasta el mínimo v. CPUs

   1. En **Maximum v CPUs**, elige el número máximo de v al CPUs que se puede escalar tu entorno de cómputo, independientemente de la demanda de colas de trabajos.

   1. (Opcional) Para **reducir el retraso (minutos)**, elija el tiempo mínimo (en minutos) que AWS Batch permite que las instancias se ejecuten en el entorno de procesamiento una vez finalizados sus trabajos.

   1. En **Tipos de instancias permitidos**, elija los tipos de instancia de Amazon EC2 que se pueden lanzar. Se pueden especificar familias de instancias para lanzar cualquier tipo de instancia en esas familias (por ejemplo, `c5`, `c5n` o `p3`). O bien puede especificar tamaños específicos dentro de una familia (por ejemplo, `c5.8xlarge`). Los tipos de instancias metálicas no están en las familias de instancias. Por ejemplo, `c5` no incluye `c5.metal`. 

      AWS Batch puede seleccionar el tipo de instancia si eliges una de las siguientes opciones:
      + `optimal` para elegir tipos de instancias (de las familias de instancias `c4`, `m4`, `r4`, `c5`, `m5` y `r5`) que se correspondan con la demanda de las colas de trabajos. 
      + `default_x86_64` para elegir tipos de instancias basados en x86 (de las familias de instancias m6i, c6i, r6i y c7i) que se ajusten a las demandas de recursos de la cola de trabajos.
      + `default_arm64` para elegir tipos de instancias basados en x86 (de las familias de instancias m6g, c6g, r6g y c7g) que se ajusten a las demandas de recursos de la cola de trabajos.
**nota**  
Desde el 1 de noviembre de 2025, el comportamiento de `optimal` se cambiará para que coincida con `default_x86_64`. Las familias de instancias podrían actualizarse a una generación más nueva durante el proceso del cambio. No es necesario realizar ninguna acción para realizar la actualización. Para obtener más información sobre los cambios, consulta [Configuración óptima del tipo de instancia para recibir actualizaciones automáticas de las familias de instancias](optimal-default-instance-troubleshooting.md).
**nota**  
La disponibilidad de las familias de instancias varía según la Región de AWS. Por ejemplo, Región de AWS es posible que algunas no tengan familias de instancias de cuarta generación, pero sí familias de instancias de quinta y sexta generación.
Al usar la agrupación de instancias `default_x86_64` o `default_arm64`, AWS Batch selecciona las familias de instancias según un equilibrio entre rentabilidad y rendimiento. Si bien las instancias de nueva generación suelen ofrecer una mejor relación precio-rendimiento, AWS Batch puede elegir una familia de instancias de generación anterior si proporciona la combinación óptima de disponibilidad, coste y rendimiento para su carga de trabajo. Por ejemplo, en un país en el Región de AWS que estén disponibles tanto las instancias c6i como las c7i, AWS Batch puede seleccionar instancias c6i si ofrecen una mejor relación costo-beneficio para los requisitos específicos de su trabajo. [Para obtener más información sobre los tipos de AWS Batch instancias y su Región de AWS disponibilidad, consulta la tabla de cálculo de tipos de instancias.](instance-type-compute-table.md)
AWS Batch actualiza periódicamente las instancias en paquetes predeterminados con opciones más nuevas y rentables. Las actualizaciones se realizan automáticamente sin que sea necesario que realice ninguna acción. Sus cargas de trabajo seguirán ejecutándose durante las actualizaciones sin interrupciones. 
**nota**  
Cuando se crea un entorno de computación, los tipos de instancias que se seleccionen para dicho entorno de computación deben compartir la misma arquitectura. Por ejemplo, no se puede mezclar instancias x86 y ARM en el mismo entorno de computación.
**nota**  
AWS Batch se escalará en GPUs función de la cantidad requerida en sus colas de trabajos. Para utilizar la programación de GPU, el entorno de computación debe incluir tipos de instancia de las familias `p3`, `p4`, `p5`, `p6`, `g3`, `g3s`, `g4`, `g5` o `g6`.

   1. Para **Allocation strategy (Estrategia de asignación)**, elija la estrategia de asignación que se utilizará al seleccionar los tipos de instancia de la lista de tipos de instancia permitidos. **BEST\$1FIT\$1PROGRESSIVE** suele ser la mejor opción para los entornos de computación bajo demanda de EC2, **SPOT\$1CAPACITY\$1OPTIMIZED** y **SPOT\$1PRICE\$1CAPACITY\$1OPTIMIZED** para los entornos de computación Spot de EC2. Para obtener más información, consulte [Estrategias de asignación de tipos de instancia para AWS Batch](allocation-strategies.md).

   1. Expanda **Configuración adicional**.

      1. (Opcional) En **Grupo de ubicación**, introduzca un nombre de grupo de ubicación para agrupar los recursos en el entorno de computación.

      1. (Opcional) En **Par de claves EC2**, elija un par de claves pública y privada como credenciales de seguridad cuando se conecte a la instancia. Para obtener más información sobre pares de claves de Amazon EC2, consulte [pares de claves de Amazon EC2 e instancias de Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html). 

      1. (Opcional) Para la **configuración de EC2**, elija los valores de **anulación de **tipo** de imagen e ID** de imagen AWS Batch para proporcionar información y seleccionar Amazon Machine Images (AMIs) para las instancias del entorno informático. Si no se especifica la **anulación del ID de imagen** para cada **tipo de imagen**, AWS Batch selecciona una [AMI reciente optimizada para Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html). Si no se especifica ningún **tipo de imagen**, el valor predeterminado es una instancia de **Amazon Linux 2 para instancias** que no sean de GPU ni de AWS Graviton. 
**importante**  
Para usar una AMI personalizada, elija el tipo de imagen y, a continuación, introduzca el ID de AMI personalizado en el cuadro de **Cambio de ID de imagen**.  
[Amazon Linux 2](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#al2ami)  
 Es el valor predeterminado para todas las familias de instancias AWS basadas en Graviton (por ejemplo,, `C6g` `M6g``R6g`, y`T4g`) y se puede usar para todos los tipos de instancias que no sean de GPU.  
[Amazon Linux 2 (GPU)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#gpuami)  
Es el valor predeterminado para todas las familias de instancias de GPU (por ejemplo, `P4` y`G4`) y se puede usar para todos los tipos de instancias que no estén basadas en AWS Graviton.  
[Amazon Linux 2023](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)  
AWS Batch es compatible con Amazon Linux 2023.  
Amazon Linux 2023 no es compatible con las instancias `A1`.  
[Amazon Linux 2023 (GPU)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#gpuami)  
Es el valor predeterminado para todas las familias de instancias de GPU (por ejemplo, `P4` y`G4`) y se puede usar para todos los tipos de instancias que no estén AWS basados en Graviton.
**nota**  
La AMI que elija para un entorno informático debe coincidir con la arquitectura de los tipos de instancias que tenga previsto utilizar para dicho entorno informático. Por ejemplo, si su entorno informático utiliza tipos de instancias A1, la AMI de recursos informáticos que elija debe admitir instancias ARM. Amazon ECS ofrece versiones x86 y ARM de la AMI Amazon Linux 2 optimizada para Amazon ECS. Para obtener más información, consulte la sección sobre [AMI Amazon Linux 2 optimizada para Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#ecs-optimized-ami-linux-variants.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*.

   1. (Opcional) Amplíe las **plantillas de lanzamiento**

      1. (Opcional) En **Plantilla de lanzamiento predeterminada**, seleccione una plantilla de lanzamiento de Amazon EC2 existente para configurar sus recursos de computación. La versión predeterminada de la plantilla se rellena automáticamente. Para obtener más información, consulte [Utilice las plantillas de lanzamiento de Amazon EC2 con AWS Batch](launch-templates.md).
**nota**  
En una plantilla de lanzamiento, puede especificar una AMI personalizada que haya creado.

      1. (Opcional) En **Versión predeterminada**, ingrese `$Default`, `$Latest` o el número de versión específico que desea utilizar.
**nota**  
Nota: Si usa una variable de sustitución (\$1Default or \$1Latest), aplicarán el número de versión actual predeterminado o el más reciente en el momento en que se guarde esta configuración. Si la versión predeterminada o la última versión cambian en el futuro, debe actualizar la información; no se actualizará automáticamente.
**importante**  
Si el parámetro de versión de la plantilla de lanzamiento es `$Default` o `$Latest`, la versión predeterminada o más reciente de la plantilla de lanzamiento especificada se evalúa durante una actualización de la infraestructura. 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. Para obtener más información, consulte [Selección de AMI durante las actualizaciones de la infraestructura](infrastructure-updates.md#updating-compute-environments-ami).

      1. (Opcional) En **Anular la plantilla de lanzamiento**, seleccione **Agregar plantilla de lanzamiento de anulación**

         1. (Opcional) En **Plantilla de lanzamiento**, seleccione una plantilla de lanzamiento de Amazon EC2 existente para usarla en familias y tipos de instancias específicos.

         1. (Opcional) En **Versión predeterminada**, ingrese un número de versión específico, `$Default` o `$Latest`.
**nota**  
Si utiliza la variable `$Default` o `$Latest`, AWS Batch aplicará la información actual en el momento en que se cree el entorno de computación. Si la versión predeterminada o la última versión cambian en el futuro, debe actualizar la información mediante [UpdateComputeEnvironment](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html)o mediante el botón Consola de administración de AWS - AWS Batch.

         1. (Opcional) En **Tipos de instancia de destino**, seleccione el tipo de instancia o la familia a la que desee aplicar la plantilla de lanzamiento de anulación. 
**nota**  
Si especifica una plantilla de lanzamiento de anulación, los **Tipos de instancias de destino** serán obligatorios. Para obtener más información, consulte [LaunchTemplateSpecificationOverride. targetInstanceTypes](https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecificationOverride.html#Batch-Type-LaunchTemplateSpecificationOverride-targetInstanceTypes).
**nota**  
Si el tipo de instancia o la familia que desea seleccionar no aparecen en esta lista, revise las selecciones que realizó en `Allowed instance types`.

   1. Elija **Siguiente**.

1. En la sección **Configuración de red:**
**importante**  
Los recursos de computación de las deben obtener acceso para comunicarse con el punto de conexión del servicio de Amazon ECS. Esto puede ser a través de un punto de conexión de VPC de la interfaz o a través de recursos de computación de las con direcciones IP públicas.  
Para obtener más información acerca de los puntos de enlace de la VPC de la interfaz, consulte [Puntos de enlace de la VPC de la interfaz de Amazon ECS (AWS PrivateLink)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/vpc-endpoints.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*.  
Si no tiene configurado un punto de conexión de la VPC de la interfaz y los recursos de computación de las no tienen direcciones IP públicas, deberán utilizar traducción de direcciones de red (NAT) para proporcionar este acceso. Para obtener más información, consulte [Gateways NAT](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) en la *Guía del usuario de Amazon VPC*. Para obtener más información, consulte [Creación de una VPC](create-a-vpc.md).

   1. Para el **ID de la nube privada virtual (VPC)**, elija una VPC donde lanzar sus instancias.

   1. En **Subredes**, elija las subredes que vaya a utilizar. De forma predeterminada, se escogen todas las subredes dentro de la VPC disponible.
**nota**  
AWS Batch en Amazon EC2 es compatible con Zonas Locales. Para obtener más información, consulte [Zonas locales](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html?icmpid=docs_ec2_console#concepts-local-zones) en la *Guía del usuario de Amazon EC2* y [clústeres de Amazon ECS en zonas locales, zonas de Wavelength y AWS Outposts](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-regions-zones.html#clusters-local-zones) en la *Guía para desarrolladores de Amazon Elastic Container Service*.

   1. (Opcional) En **Grupos de seguridad**, seleccione su grupo de seguridad para asociarlo a las instancias. De forma predeterminada, se escoge el grupo de seguridad predeterminado para la VPC.
**nota**  
Nota: Si usa una variable de sustitución (\$1Default or \$1Latest), aplicarán el número de versión actual predeterminado o el más reciente en el momento en que se guarde esta configuración. Si la versión predeterminada o la última versión cambian en el futuro, debe actualizar la información; no se actualizará automáticamente.

1. Seleccione **Página siguiente**.

1. Para la **Revisión**, revise los pasos de configuración. Si necesita realizar cambios, elija **Editar**. Cuando haya terminado, seleccione **Creación de entorno de computación**.

# Tutorial: creación de un entorno de computación no gestionado con los recursos de Amazon EC2
<a name="create-compute-environment-unmanaged-ec2"></a>

Siga estos pasos para crear un entorno de computación no gestionado mediante recursos de Amazon Elastic Compute Cloud (Amazon EC2).

****

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

1. En la barra de navegación, seleccione la Región de AWS que desee utilizar.

1. En la página **Entornos de computación**, elija **Creación de**.

1. Configure el entorno.

   1. Para la **Configuración del entorno de computación**, elija **Amazon Elastic Compute Cloud (Amazon EC2)**.

   1. Para el **Tipo de orquestación**, seleccione **No administrado**.

1. En **Nombre**, especifique un nombre único para el entorno de computación. El nombre puede tener una longitud máxima de 128 caracteres. Puede contener letras mayúsculas y minúsculas, números, guiones (-) y guiones bajos (\$1).

1. En **Función de servicio**, elige una función que permita al AWS Batch servicio realizar llamadas a las operaciones de AWS API requeridas en tu nombre.
**nota**  
No se puede utilizar `AWSServiceRoleForBatch` para entornos de computación no gestionados.

1. En **Maximum v CPUs**, elija el número máximo de v al CPUs que se pueda escalar su entorno informático, independientemente de la demanda de colas de trabajos.

1. (Opcional) Amplíe las **Etiquetas**. Para agregar una etiqueta, elija **Add tag (Añadir etiqueta)**. Ingrese un nombre de **Clave** y un **Valor** opcional. Seleccione **Agregar etiqueta**. Para obtener más información, consulte [Etiquetar los recursos de AWS Batch](using-tags.md).

1. Seleccione **Página siguiente**.

1. Para la **Revisión**, revise los pasos de configuración. Si necesita realizar cambios, elija **Editar**. Cuando haya terminado, seleccione **Creación de entorno de computación**.

# Tutorial: creación de un entorno de computación gestionado con los recursos de Amazon EKS
<a name="create-compute-environment-managed-eks"></a>

Siga estos pasos para crear un entorno de computación administrado mediante recursos de Amazon Elastic Kubernetes Service (Amazon EKS).

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

1. En la barra de navegación, seleccione la Región de AWS que desee utilizar.

1. En el panel de navegación, elija **Entornos de computación**.

1. Seleccione **Creación de**.

1. Para la **Configuración del entorno de computación**, elija **Amazon Elastic Kubernetes Service (Amazon EKS)**.

1. En **Nombre**, especifique un nombre único para el entorno de computación. El nombre puede tener una longitud máxima de 128 caracteres. Puede contener letras mayúsculas y minúsculas, números, guiones (-) y guiones bajos (\$1).

1. En **Rol de instancia**, elija un perfil de instancia existente que tenga asociados los permisos de IAM necesarios.
**nota**  
Para crear un entorno de procesamiento en la AWS Batch consola, elija un perfil de instancia que tenga los `eks:DescribeCluster` permisos `eks:ListClusters` y.

1. Para el **clúster de EKS**, elija un clúster de Amazon EKS existente.

1. En **Espacio de nombres**, introduzca un espacio de nombres Kubernetes para agrupar los procesos AWS Batch en el clúster.

1. (Opcional) Amplíe las **Etiquetas**. Elija **Agregar etiqueta** y, a continuación, introduzca un par clave-valor.

1. Seleccione **Página siguiente**.

1. (Opcional) En **Utilizar las instancias de spot de EC2**, active **Habilitar el uso de instancias spot** para utilizar las instancias de spot de Amazon EC2.

1. (Opcional) En **Precio máximo % bajo demanda**, seleccione el porcentaje máximo del precio que puede tener una instancia de spot en relación con su precio bajo demanda antes de que lancen las instancias. Por ejemplo, si el precio máximo es el 20%, el precio de spot de esa instancia de EC2 deberá ser inferior al 20% del precio bajo demanda que tenga en ese momento. Siempre se paga el precio más bajo (de mercado) y nunca más que lo marcado por el porcentaje máximo. Si se deja este campo en blanco, el valor predeterminado es el 100% del precio bajo demanda.

1. (Solo Spot) En **Rol de la flota de spot**, seleccione un rol de IAM para la flota de spot de Amazon EC2 que quiera aplicar a su entorno de computación `SPOT`.
**importante**  
Este rol es necesario si la estrategia de asignación está establecida en `BEST_FIT` o no se ha especificado.

1. (Opcional) En el caso de **v como mínimo CPUs**, elige el número mínimo de v CPUs que mantenga tu entorno de cómputo, independientemente de la demanda de colas de trabajos.

1. (Opcional) Para obtener un valor **máximo de v CPUs**, elija el número máximo de v al CPUs que pueda ampliarse su entorno informático, independientemente de la demanda de colas de trabajos.

1. (Opcional) Para **reducir el retraso (minutos)**, elige el tiempo mínimo (en minutos) que AWS Batch permite que las instancias se ejecuten en el entorno de procesamiento una vez finalizados sus trabajos.

1. En **Tipos de instancias permitidos**, elija los tipos de instancia de Amazon EC2 que se pueden lanzar. Se pueden especificar familias de instancias para lanzar cualquier tipo de instancia en esas familias (por ejemplo, `c5`, `c5n` o `p3`). O bien puede especificar tamaños específicos dentro de una familia (por ejemplo, `c5.8xlarge`). Los tipos de instancias metálicas no están en las familias de instancias. Por ejemplo, `c5` no incluye `c5.metal`. 

   AWS Batch puede seleccionar el tipo de instancia por ti si eliges una de las siguientes opciones:
   + `optimal` para elegir tipos de instancias (de las familias de instancias `c4`, `m4`, `r4`, `c5`, `m5` y `r5`) que se correspondan con la demanda de las colas de trabajos. 
   + `default_x86_64` para elegir tipos de instancias basados en x86 (de las familias de instancias m6i, c6i, r6i y c7i) que se ajusten a las demandas de recursos de la cola de trabajos.
   + `default_arm64` para elegir tipos de instancias basados en x86 (de las familias de instancias m6g, c6g, r6g y c7g) que se ajusten a las demandas de recursos de la cola de trabajos.
**nota**  
Desde el 1 de noviembre de 2025, el comportamiento de `optimal` se cambiará para que coincida con `default_x86_64`. Las familias de instancias podrían actualizarse a una generación más nueva durante el proceso del cambio. No es necesario realizar ninguna acción para realizar la actualización. Para obtener más información sobre los cambios, consulta [Configuración óptima del tipo de instancia para recibir actualizaciones automáticas de las familias de instancias](optimal-default-instance-troubleshooting.md).
**nota**  
La disponibilidad de las familias de instancias varía según la Región de AWS. Por ejemplo, Región de AWS es posible que algunas no tengan familias de instancias de cuarta generación, pero sí familias de instancias de quinta y sexta generación.
Al usar nuestros `default_x86_64` paquetes de `default_arm64` instancias, AWS Batch selecciona las familias de instancias en función de un equilibrio entre rentabilidad y rendimiento. Si bien las instancias de nueva generación suelen ofrecer una mejor relación precio-rendimiento, AWS Batch puede elegir una familia de instancias de generación anterior si proporciona la combinación óptima de disponibilidad, coste y rendimiento para su carga de trabajo. Por ejemplo, en un país en el Región de AWS que estén disponibles tanto las instancias c6i como las c7i, AWS Batch puede seleccionar instancias c6i si ofrecen una mejor relación costo-beneficio para los requisitos específicos de su trabajo. [Para obtener más información sobre los tipos de AWS Batch instancias y su Región de AWS disponibilidad, consulta la tabla de cálculo de tipos de instancias.](instance-type-compute-table.md)
AWS Batch actualiza periódicamente las instancias en paquetes predeterminados con opciones más nuevas y rentables. Las actualizaciones se realizan automáticamente sin que sea necesario que realice ninguna acción. Sus cargas de trabajo seguirán ejecutándose durante las actualizaciones sin interrupciones. 
**nota**  
Cuando se crea un entorno de computación, los tipos de instancias que se seleccionen para dicho entorno de computación deben compartir la misma arquitectura. Por ejemplo, no se puede mezclar instancias x86 y ARM en el mismo entorno de computación.
**nota**  
AWS Batch se escalará en GPUs función de la cantidad requerida en sus colas de trabajos. Para utilizar la programación de GPU, el entorno de computación debe incluir tipos de instancia de las familias `p3`, `p4`, `p5`, `p6`, `g3`, `g3s`, `g4`, `g5` o `g6`.

1. (Opcional) Expandir **Configuración adicional**.

   1. (Opcional) En **Grupo de ubicación**, introduzca un nombre de grupo de ubicación para agrupar los recursos en el entorno de computación.

   1. Para la **Estrategia de asignación**, elija **BEST\$1FIT\$1PROGRESSIVE**.

   1. (Opcional) Para la configuración de **Amazon Machine Images (AMIs), seleccione la configuración** **Añadir imágenes de Amazon Machine Images (AMI)**.

      Puede utilizar una AMI de Amazon Linux optimizada para Amazon EKS o una AMI personalizada.

      1. Cómo utilizar una [AMI de Amazon Linux optimizada para Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html):

         1. En **Tipo de imagen**, seleccione una de las siguientes opciones:
            + [Amazon Linux 2](https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html): predeterminado para todas las familias de instancias AWS basadas en Graviton (por ejemplo,, `C6g` `M6g``R6g`, y`T4g`) y se puede usar para todos los tipos de instancias que no son de GPU.
            + [Amazon Linux 2 (acelerado)](https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html): predeterminado para todas las familias de instancias de GPU (por ejemplo, `P4` y`G4`) y se puede usar para todos los tipos de instancias que no estén AWS basados en Graviton.
            + [Amazon Linux 2023](https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html): AWS Batch es compatible con Amazon Linux 2023 (AL2023).
            + [Amazon Linux 2023 (acelerado)](https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html): Familias de instancias de GPU que se pueden utilizar para todos los tipos de instancias no basados en AWS Graviton.

         1. En **versión de Kubernetes**, ingrese un [número de versión de Kubernetes](supported_kubernetes_version.md).

      1. Cómo utilizar una AMI personalizada:

         1. En **Tipo de imagen**, elija el tipo de AMI en el que se basa la AMI personalizada:
            + [Amazon Linux 2](https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html): predeterminado para todas las familias de instancias AWS basadas en Graviton (por ejemplo,, `C6g` `M6g``R6g`, y`T4g`) y se puede usar para todos los tipos de instancias que no son de GPU.
            + [Amazon Linux 2 (acelerado)](https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html): predeterminado para todas las familias de instancias de GPU (por ejemplo, `P4` y`G4`) y se puede usar para todos los tipos de instancias que no estén AWS basados en Graviton.
            + [Amazon Linux 2023](https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html): AWS Batch compatible AL2023.
            + [Amazon Linux 2023 (acelerado)](https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html): Familias de instancias de GPU que se pueden utilizar para todos los tipos de instancias no basados en AWS Graviton.

         1. En **Anular el ID de imagen**, ingrese el ID de AMI personalizado.

         1. En **versión de Kubernetes**, ingrese un [número de versión de Kubernetes](supported_kubernetes_version.md).

   1. (Opcional) En **Plantilla de lanzamiento**, elija una plantilla de [lanzamiento existente](eks-launch-templates.md).

   1. (Opcional) En **Versión de la plantilla de lanzamiento**, introduzca **\$1Default**, **\$1Latest** o un número de versión.

   1. (Opcional) En **Anular la plantilla de lanzamiento**, para agregar una sobreescritura, seleccione **Agregar plantilla de lanzamiento de anulación**:

      1. (Opcional) En **Plantilla de lanzamiento**, elija la plantilla de lanzamiento a la que desee anular la sobreescritura.

      1. (Opcional) En **Versión de la plantilla de lanzamiento**, elija el número de versión de la plantilla de lanzamiento, `$Default` o `$Latest`.

      1. (Opcional) En **Tipos de instancias de destino**, elija el tipo de instancia o la familia a la que se debe aplicar esta anulación. Esto solo puede dirigirse a los tipos y familias de instancias que estén incluidos en los **Tipos de instancias permitidos**.

      1. (Opcional) En **userdataType**, elija la inicialización del nodo de EKS. Utilice este campo únicamente si tiene una AMI especificada en la plantilla de lanzamiento o como anulación de la plantilla de lanzamiento. **Elija **EKS\$1NODEADM** para personalizar AMIs según `EKS_AL2023` `EKS_AL2023_NVIDIA` o EKS\$1BOOSTRAP\$1SH para y.** `EKS_AL2` `EKS_AL_NVIDIA` El valor predeterminado es **EKS\$1BOOSTRAP\$1SH**.

         Usarías **UserDataType** si tuvieras un [entorno mixto en el que utilizaras ambos y un entorno personalizado basado en el mismo entorno](mixed-ami-environments.md) de cómputo. AL2 AL2023 AMIs 

1. Seleccione **Página siguiente**.

1. Para el **ID de la nube privada virtual (VPC)**, elija una VPC donde lanzar las instancias.

1. En **Subredes**, elija las subredes que vaya a utilizar. De forma predeterminada, se escogen todas las subredes dentro de la VPC disponible.
**nota**  
AWS Batch en Amazon, EKS admite Zonas Locales. Para obtener más información, consulte [Amazon EKS y Zonas AWS Locales](https://docs.aws.amazon.com/eks/latest/userguide/local-zones.html) en la *Guía del usuario de Amazon EKS*.

1. (Opcional) En **Grupos de seguridad**, seleccione su grupo de seguridad para asociarlo a las instancias. De forma predeterminada, se elige el grupo de seguridad predeterminado para la VPC.

1. Seleccione **Página siguiente**.

1. Para la **Revisión**, revise los pasos de configuración. Si necesita realizar cambios, elija **Editar**. Cuando haya terminado, seleccione **Creación de entorno de computación**.

# Tutorial: Creación de un entorno informático no gestionado con los recursos de Amazon EKS
<a name="create-compute-environment-unmanaged-eks"></a>

Complete los siguientes pasos para crear un entorno informático no administrado con los recursos de Amazon Elastic Kubernetes Service (Amazon EKS).

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

1. En la barra de navegación situada en la parte superior de la página, seleccione la Región de AWS que desee utilizar.

1. En el panel de navegación, elija **Entornos de computación**.

1. Seleccione **Creación de**.

1. Configure el entorno.

   1. Para la **Configuración del entorno de computación**, elija **Amazon Elastic Kubernetes Service (Amazon EKS)**.

   1. Para el **Tipo de orquestación**, seleccione **No administrado**.

1. En **Nombre**, especifique un nombre único para el entorno de computación. El nombre puede tener una longitud máxima de 128 caracteres. Puede contener letras mayúsculas y minúsculas, números, guiones (-) y guiones bajos (\$1).

1. Para el **clúster de EKS**, elija un clúster de Amazon EKS existente. Para crear un nuevo clúster de EKS, siga los pasos de la [página Crear un clúster de Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html).

1. En **Espacio de nombres**, introduzca un espacio de nombres Kubernetes para agrupar los procesos AWS Batch en el clúster.

1. (Opcional) Para **Maximum v CPUs**, especifique el número máximo de v CPUs disponible para la programación de trabajos con la capacidad aprovisionada.

1. (Opcional) Amplíe las **Etiquetas**. Elija **Agregar etiqueta** y, a continuación, introduzca un par clave-valor.

1. Seleccione **Página siguiente**.

1. Para la **Revisión**, revise los pasos de configuración. Si necesita realizar cambios, elija **Editar**. Cuando haya terminado, seleccione **Creación de entorno de computación**.

**Asignación de nodos de clúster de Amazon EKS a un entorno informático no gestionado**  
Tras crear el entorno informático no gestionado, debe etiquetar los nodos de Amazon EKS con el UUID del entorno informático.  
En primer lugar, obtenga el UUID del entorno de cómputo del resultado de la API`DescribeComputeEnvironments`:  

```
$ aws batch describe-compute-environments \
    --compute-environments unmanagedEksCE \
    --query "computeEnvironments[].{name: computeEnvironmentName, uuid: uuid}"
```
Obtenga la información del nodo:  

```
kubectl get nodes -o name
```
Etiquete los nodos con el UUID del entorno de AWS Batch cómputo:  

```
kubectl label <node-name> batch.amazonaws.com/compute-environment-uuid=uuid
```

# Recurso: plantilla de entorno de computación
<a name="compute-environment-template"></a>

En el siguiente ejemplo, se muestra una plantilla de entorno de computación vacía. Puede utilizar esta plantilla para crear un entorno de computación que puede guardar en un archivo y utilizarse con la opción `--cli-input-json` de la AWS CLI. Para obtener más información sobre estos parámetros, consulte [CreateComputeEnvironment](https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateComputeEnvironment.html) en la *Referencia de la API AWS Batch*.

**nota**  
Puede generar una plantilla de entorno de computación con el siguiente comando de la AWS CLI:  

```
$ aws batch create-compute-environment --generate-cli-skeleton
```

```
{
    "computeEnvironmentName": "",
    "type": "UNMANAGED",
    "state": "DISABLED",
    "unmanagedvCpus": 0,
    "computeResources": {
        "type": "EC2",
        "allocationStrategy": "BEST_FIT_PROGRESSIVE",
        "minvCpus": 0,
        "maxvCpus": 0,
        "desiredvCpus": 0,
        "instanceTypes": [
            ""
        ],
        "imageId": "",
        "subnets": [
            ""
        ],
        "securityGroupIds": [
            ""
        ],
        "ec2KeyPair": "",
        "instanceRole": "",
        "tags": {
            "KeyName": ""
        },
        "placementGroup": "",
        "bidPercentage": 0,
        "spotIamFleetRole": "",
        "launchTemplate": {
            "launchTemplateId": "",
            "launchTemplateName": "",
            "version": ""
        },
        "ec2Configuration": [
            {
                "imageType": "",
                "imageIdOverride": "",
                "imageKubernetesVersion": ""
            }
        ]
    },
    "serviceRole": "",
    "tags": {
        "KeyName": ""
    },
    "eksConfiguration": {
        "eksClusterArn": "",
        "kubernetesNamespace": ""
    }
}
```

# Tabla de computación para el tipo de instancia
<a name="instance-type-compute-table"></a>

En la siguiente tabla Región de AWS, se muestra la palabra clave de familia de instancias y las familias de instancias disponibles. AWS Batch intentará asignar una instancia de la familia más reciente, pero dado que la disponibilidad de la familia de instancias varía según la familia de instancias, Región de AWS es posible que obtenga una generación de familias de instancias anterior. 


**default\$1x86\$164**  

| Region | Familias de instancias | 
| --- | --- | 
| Todo Región de AWS es ese apoyo [AWS Batch](https://docs.aws.amazon.com/general/latest/gr/batch.html) |  m6i, c6i, r6i c7i  | 


**default\$1arm64**  

| Region | Familias de instancias | 
| --- | --- | 
| Todo Región de AWS es ese apoyo [AWS Batch](https://docs.aws.amazon.com/general/latest/gr/batch.html) |  m6g, c6g, r6g c7g  | 


**Óptimo**  

| Region | Familias de instancias | 
| --- | --- | 
| [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/batch/latest/userguide/instance-type-compute-table.html) | m4, c4, r4 | 
| [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/batch/latest/userguide/instance-type-compute-table.html) | m5, c5, r5 | 
| [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/batch/latest/userguide/instance-type-compute-table.html) | m6, c6, r6 | 

# Actualizar un entorno informático en AWS Batch
<a name="updating-compute-environments"></a>

AWS Batch proporciona varias estrategias para actualizar los entornos de cómputo, cada una diseñada para escenarios y requisitos de actualización específicos. Estos enfoques utilizan la misma API de actualización subyacente, pero representan diferentes métodos prescriptivos para administrar las actualizaciones de forma eficaz. Puede gestionar estas actualizaciones mediante la AWS Batch consola o el AWS CLI. Comprender estas estrategias permite elegir el método más adecuado para sus necesidades, sin dejar de disminuir las interrupciones de las cargas de trabajo.

En este tema se entrega información general sobre las estrategias de actualización disponibles y sobre cuándo usar cada enfoque. Para obtener información sobre los procedimientos detallados, consulte las secciones individuales de cada estrategia de actualización.

**importante**  
AWS Batch crea y administra varios AWS recursos en su nombre y dentro de su cuenta, incluidas las plantillas de lanzamiento de Amazon EC2, los grupos de Auto Scaling de Amazon EC2, las flotas puntuales de Amazon EC2 y los clústeres de Amazon ECS. Estos recursos administrados están configurados específicamente para garantizar un funcionamiento óptimo de AWS Batch . La modificación manual de estos recursos AWS Batch gestionados, a menos que se indique explícitamente en la AWS Batch documentación, puede provocar un comportamiento inesperado, como los entornos `INVALID` informáticos, un comportamiento de escalado de instancias subóptimo, retrasos en el procesamiento de la carga de trabajo o costes inesperados. El servicio de AWS Batch no puede respaldar estas modificaciones manuales de forma determinista. Utilice siempre el soporte AWS Batch APIs o la AWS Batch consola para gestionar sus entornos informáticos.  
Las modificaciones manuales no admitidas incluyen ejecutar sus propias tareas o servicios de Amazon ECS en AWS Batch clústeres de Amazon ECS administrados o iniciar procesos, daemons o servicios adicionales directamente en instancias administradas. AWS Batch AWS Batch asume el control total de los recursos informáticos en un entorno informático gestionado y puede finalizar instancias, detener tareas o escalar el clúster en cualquier momento. Cualquier carga de trabajo que ejecute fuera de la presentación de AWS Batch trabajos en estos recursos gestionados puede interrumpirse sin previo aviso. La ejecución de AWS Batch cargas de trabajo no AWS Batch gestionadas en clústeres e instancias gestionados también puede interferir con la programación de los AWS Batch trabajos y el escalado de las instancias.

**Topics**
+ [Estrategias de actualización del entorno de computación](#update-strategies)
+ [Cómo elegir la mejor estrategia de actualización](#choosing-update-strategies)
+ [Consideraciones sobre la actualización de AMI](#ami-update-considerations)
+ [Cómo realizar actualizaciones de escalado](scaling-updates.md)
+ [Cómo realizar actualizaciones de la infraestructura](infrastructure-updates.md)
+ [Realice blue/green actualizaciones para entornos de cómputo](blue-green-updates.md)

## Estrategias de actualización del entorno de computación
<a name="update-strategies"></a>

El entorno de computación se actualiza en su lugar cuando se utilizan actualizaciones de escalado o de infraestructura. Para la estrategia de blue/green actualización, debe crear un nuevo entorno informático (verde) y, a continuación, migrar la carga de trabajo del entorno informático anterior (azul) al nuevo entorno informático (verde).

AWS Batch proporciona tres estrategias diferentes para las actualizaciones del entorno informático:

Actualizaciones de escalado  
Las actualizaciones de escalado ajustan la capacidad del entorno de computación al agregar o eliminar instancias sin reemplazar las existentes. Este es el escenario de actualización más rápido y no requiere tiempo de inactividad. Utilice las actualizaciones de escalado cuando necesite cambiar la configuración de capacidad (vCPUs). Es normal que estas actualizaciones se completen en tan solo minutos.  
Las actualizaciones de Fargate se realizan mediante los mismos procedimientos que las actualizaciones de escalado. Para obtener más información, consulte [Cómo realizar actualizaciones de escalado](scaling-updates.md).

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. Estas actualizaciones requieren configuraciones específicas de rol de servicio y estrategia de asignación, pero proporcionan un tiempo de inactividad mínimo, y es posible que se interrumpan las tareas en ejecución. Utilice las actualizaciones de infraestructura cuando necesite modificar los tipos de instancias, la configuración de la AMI, los ajustes de red, el rol de servicio, el estado del entorno u otros componentes de la infraestructura. Estas actualizaciones suelen completarse en un plazo de 10 a 30 minutos, según la finalización del trabajo.  
Para obtener más información, consulte [Cómo realizar actualizaciones de la infraestructura](infrastructure-updates.md).

Actualizaciones azul/verde  
Blue/green updates create a new compute environment alongside your existing environment, allowing gradual workload transition with zero downtime. This approach provides the safest update path but requires running two environments temporarily. Use blue/greense actualiza cuando no necesite ningún tiempo de inactividad, desee probar los cambios antes de la implementación completa, requiera una capacidad de reversión rápida o utilice configuraciones no compatibles para las actualizaciones de la infraestructura. Usted puede regular y controlar el tiempo de finalización.  
Para obtener más información, consulte [Realice blue/green actualizaciones para entornos de cómputo](blue-green-updates.md).

## Cómo elegir la mejor estrategia de actualización
<a name="choosing-update-strategies"></a>

Con esta guía de decisiones puede seleccionar la estrategia de actualización más adecuada de acuerdo a sus necesidades:

### Estrategia de actualizaciones de escalado
<a name="scaling-updates-when"></a>

Elija la estrategia de actualización escalable cuando solo necesite ajustar la capacidad de cómputo (vCPUs). Las actualizaciones de escalado son ideales cuando se necesitan actualizaciones rápidas sin tiempo de inactividad ni cambios en la configuración de la infraestructura.

Para obtener procedimientos detallados, consulte [Cómo realizar actualizaciones de escalado](scaling-updates.md).

### Estrategia de actualizaciones de infraestructura
<a name="infrastructure-updates-when"></a>

Elija la estrategia de actualización de infraestructura cuando necesite modificar los tipos de instancias, la configuración de la AMI, el rol de servicio, el estado del entorno o la configuración de la red. Su entorno debe utilizar la función *AWSServiceRoleForBatch*vinculada al servicio y una estrategia de asignación de `BEST_FIT_PROGRESSIVE``SPOT_CAPACITY_OPTIMIZED`, o. `SPOT_PRICE_CAPACITY_OPTIMIZED` Las actualizaciones de infraestructura funcionan bien cuando se acepta alguna interrupción del trabajo durante la actualización y se desean actualizaciones automáticas a la última AMI optimizada para Amazon ECS.

Para obtener procedimientos detallados, consulte [Cómo realizar actualizaciones de la infraestructura](infrastructure-updates.md).

### Elija blue/green las actualizaciones cuando
<a name="blue-green-updates-when"></a>

Elija la estrategia de blue/green actualización cuando sus cargas de trabajo no requieran ningún tiempo de inactividad o necesite probar los cambios antes de realizar la transición de las cargas de trabajo de producción. Este enfoque es esencial cuando es importante contar con una capacidad de reversión rápida, si su entorno utiliza una estrategia de `BEST_FIT` asignación o si su entorno no utiliza la función vinculada al servicio. *AWSServiceRoleForBatch* Blue/green Las actualizaciones también son la mejor opción cuando se utilizan actualizaciones personalizadas AMIs que requieren actualizaciones manuales o si es necesario realizar cambios importantes en la configuración.

Para obtener procedimientos detallados, consulte [Realice blue/green actualizaciones para entornos de cómputo](blue-green-updates.md).

## Consideraciones sobre la actualización de AMI
<a name="ami-update-considerations"></a>

El enfoque de actualización AMIs depende de la configuración del entorno informático.

### Actualización de la AMI predeterminada AWS Batch proporcionada a la última
<a name="automatic-ami-updates"></a>

AWS Batch puede actualizarse a la última AMI optimizada para Amazon ECS durante las actualizaciones de [infraestructura](infrastructure-updates.md) cuando se cumplen todas estas condiciones:

**nota**  
Tras completada la actualización de la infraestructura, `updateToLatestImageVersion` se establece en `false`. Para iniciar otra actualización, `updateToLatestImageVersion` se debe establecer en `true`.
+ El entorno informático utiliza la función vinculada al *AWSServiceRoleForBatch*servicio.
+ La estrategia de asignación se establece en `BEST_FIT_PROGRESSIVE``SPOT_CAPACITY_OPTIMIZED`, o. `SPOT_PRICE_CAPACITY_OPTIMIZED`
+ No se especifica explícitamente ningún ID de AMI en la `imageId` plantilla de lanzamiento o en la plantilla de lanzamiento. `imageIdOverride`
+ `updateToLatestImageVersion` se establece en `true`.

### Actualizaciones de la AMI mediante blue/green la implementación
<a name="manual-ami-updates-blue-green"></a>

Debe utilizar la blue/green implementación para actualizar AMIs en los siguientes escenarios:
+ Cuando se utiliza una versión específica de la AMI optimizada para Amazon ECS.
+ Si el ID de AMI se especifica en cualquier:
  + Plantilla de lanzamiento (debe actualizar la plantilla o eliminarla).
  + El `imageId` parámetro.
  + El `imageIdOverride` parámetro de la configuración de EC2.
+ Cuando se utiliza la estrategia de `BEST_FIT` asignación (no admite actualizaciones de infraestructura).
+ Cuando no se utiliza la función *AWSServiceRoleForBatch*[vinculada al servicio](using-service-linked-roles-batch-general.md).

### Actualizaciones de la AMI para una AMI personalizada
<a name="manual-ami-updates-custom-ami"></a>

Si especifica una AMI personalizada en la plantilla de lanzamiento del entorno informático, el `imageId` parámetro o el parámetro de la `imageIdOverride` configuración de EC2 no AWS Batch actualizarán automáticamente la AMI personalizada durante las actualizaciones de infraestructura. Puedes actualizar un identificador de AMI personalizado especificando el nuevo identificador en el parámetro que se usó originalmente durante la creación del entorno de cómputo. Si desea cambiar a una AMI AWS Batch proporcionada, puede hacerlo eliminando el ID de AMI personalizado en la actualización de su entorno informático. 

# Cómo realizar actualizaciones de escalado
<a name="scaling-updates"></a>

Las actualizaciones de escalado ajustan la capacidad del entorno de computación al agregar o eliminar instancias. Esta es la estrategia de actualización más rápida y no requiere reemplazar las instancias existentes. Las actualizaciones de escalado funcionan con cualquier tipo de función de servicio y estrategia de asignación, lo que las convierte en la opción de actualización más flexible.

## Cambios que activan una actualización de escalado
<a name="scaling-updates-triggers"></a>

 AWS Batch realiza una actualización de escalado cuando se modifican únicamente los siguientes ajustes. Si modifica alguna de estas configuraciones junto con otras configuraciones del entorno de cómputo, AWS Batch realiza una [actualización de infraestructura](infrastructure-updates.md) en su lugar.

Los siguientes ajustes activan las actualizaciones de escalado cuando únicamente se modifica:
+ `desiredvCpus`— Establece el número objetivo de v CPUs para el entorno.
+ `maxvCpus`— Define el número máximo de v CPUs que se puede lanzar.
+ `minvCpus`— Especifica el número mínimo de v CPUs que se debe mantener.
+ `minScaleDownDelayMinutes`— Especifica el tiempo mínimo (en minutos) que AWS Batch permite que las instancias se ejecuten en el entorno informático una vez finalizados sus trabajos.
**nota**  
`minScaleDownDelayMinutes`no se aplica a las instancias que se sustituyen durante las actualizaciones de infraestructura.

Para los entornos de cómputo de Fargate, también se pueden modificar estos ajustes para las actualizaciones de escalado:
+ `securityGroupIds`— Grupo de seguridad IDs para el entorno informático.
+ `subnets`: Subredes para el entorno de computación.

**nota**  
Recomendamos no utilizarlo `desiredvCpus` para iniciar una actualización de escalado, ya que AWS Batch se ajustará de forma dinámica`desiredvCpus`. En su lugar, debe utilizar `minvCpus`.  
Al actualizar `desiredvCpus`, el valor debe estar comprendido entre `minvCpus` y `maxvCpus`. El nuevo valor debe ser mayor o igual que `desiredvCpus`. Para obtener más información, consulte [Mensaje de error al actualizar la configuración de `desiredvCpus`](error-desired-vcpus-update.md).

**importante**  
Si modifica alguna de estas configuraciones de escalado junto con otras configuraciones del entorno de cómputo (como tipos de instancias IDs, AMI o plantillas de lanzamiento), AWS Batch realiza una actualización de infraestructura en lugar de una actualización de escalado. Las actualizaciones de infraestructura tardan más tiempo y pueden sustituir a las instancias existentes.

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

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** y luego 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. Modifique una o más de las [configuraciones que admiten actualizaciones de escalado](#scaling-updates-triggers). Por ejemplo:
   + En **Minimum v CPUs**, introduzca el número mínimo de vCPUs.
   + Para **la v deseada CPUs**, introduzca el número de v deseadoCPUs.
   + En **Máximo v CPUs**, introduzca el número máximo de vCPUs.

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

1. Supervise el estado del entorno de computación. La actualización debe completarse rápidamente, ya que solo implica operaciones de escalado.

------
#### [ Performing scaling updates using the AWS CLI ]

Utilice el comando **update-compute-environment** para realizar actualizaciones de escalado. En los siguientes ejemplos se muestran las operaciones de escalado comunes. Puede modificar una o más de las siguientes [configuraciones que admiten actualizaciones de escalado](#scaling-updates-triggers).
+ En este ejemplo se actualizan los valores v deseado, mínimo y máximoCPUs:

  ```
  aws batch update-compute-environment \
      --compute-environment your-compute-environment-name \
      --compute-resources minvCpus=2,maxvCpus=8
  ```

------

## Supervisión de las actualizaciones de escalado
<a name="scaling-updates-monitoring"></a>

Supervise las actualizaciones de escalado mediante la AWS Batch consola para ver el estado del entorno de procesamiento y comprobar el recuento de instancias y las métricas de vCPU. También puedes usar el **describe-compute-environments** comando AWS CLI with para comprobar el estado y supervisar los recuentos de instancias y los valores de vCPU. 

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

# Realice blue/green actualizaciones para entornos de cómputo
<a name="blue-green-updates"></a>

Una blue/green actualización es una estrategia de actualización que reduce el tiempo de inactividad y el riesgo mediante la creación de un nuevo entorno informático (verde) junto con el entorno informático existente (azul). Este enfoque le permite realizar la transición gradual de las cargas de trabajo al nuevo entorno y, al mismo tiempo, mantener operativo el entorno existente. Blue/green las actualizaciones proporcionan la ruta de actualización más segura y funcionan con cualquier tipo de función de servicio o estrategia de asignación.

## Descripción general de
<a name="blue-green-overview"></a>

Las actualizaciones azul/verde ofrecen varias ventajas que las hacen ideales para los entornos de producción. Proporcionan un *mínimo tiempo de inactividad* al mantener sus cargas de trabajo en funcionamiento continuo durante el proceso de actualización. Este enfoque ofrece funciones de *reversión sencillas*, lo que permite volver rápidamente al entorno original en caso de que surjan problemas. Puede implementar una estrategia de *transición progresiva* verificando el rendimiento del nuevo entorno antes de cambiar por completo las cargas de trabajo de producción. Este método también proporciona una excelente *mitigación de riesgos*, ya que el entorno original permanece inalterado y operativo hasta que se decida su eliminación.

### Cuando se requieren blue/green actualizaciones
<a name="blue-green-when-required"></a>

Debe utilizar blue/green las actualizaciones en las siguientes situaciones:
+ Cuando su entorno informático utiliza una estrategia de `BEST_FIT` asignación (no admite actualizaciones de infraestructura).
+ Cuando su entorno informático no utiliza la función *AWSServiceRoleForBatch*vinculada al servicio.
+ Cuando necesite realizar la transición entre distintos tipos de roles de servicio.

### Cuándo se recomiendan las blue/green actualizaciones
<a name="blue-green-when-recommended"></a>

Recomendamos blue/green las actualizaciones para los entornos de producción en los que la ausencia de tiempo de inactividad es fundamental para las cargas de trabajo. Este enfoque funciona bien cuando se necesita probar nuevas configuraciones antes de realizar la transición de las cargas de trabajo de producción, lo que garantiza que los cambios cumplan los requisitos de rendimiento y fiabilidad. Elija blue/green las actualizaciones cuando la capacidad de reversión rápida sea importante para sus operaciones, especialmente si va a realizar actualizaciones personalizadas AMIs con cambios significativos. Además, este método es ideal para validar las características y el comportamiento del rendimiento antes de realizar cambios por completo, ya que entrega confianza en el proceso de actualización.

### Requisitos previos
<a name="blue-green-prerequisites"></a>

Antes de realizar una blue/green actualización, asegúrese de disponer de lo siguiente:
+ [Los permisos de IAM](IAM_policies.md) adecuados para crear y gestionar entornos informáticos.
+ Acceso para ver y modificar la configuración de la cola de trabajos.
+ Estrategias de reintento de trabajo que estén configuradas para las definiciones de trabajo a fin de gestionar los posibles errores durante la transición. Para obtener más información, consulte [Reintentos automáticos de trabajo](job_retries.md).
+ El ID de AMI para el nuevo entorno de computación. Puede ser:
  + Una versión reciente y aprobada de la AMI optimizada para Amazon ECS (utilizada de forma predeterminada).
  + Una AMI personalizada que cumple con la especificación de la AMI de instancia de contenedor de Amazon ECS. Con una AMI personalizada, puede especificarla de una de las siguientes formas:
    + Uso del campo de **anulación del ID de imagen** en la configuración de EC2.
    + Especificarlo en una plantilla de lanzamiento.

    Para obtener más información sobre la creación de una personalización AMIs, consulte[Tutorial: creación de una AMI de recursos de computación](create-batch-ami.md).

Antes de crear el nuevo entorno, debe registrar la configuración del entorno de computación existente. Puede hacerlo utilizando el Consola de administración de AWS o el AWS CLI. 

**nota**  
Los siguientes procedimientos detallan cómo realizar una blue/green actualización que solo cambia la AMI. Puede actualizar otros ajustes para el nuevo entorno.

**importante**  
Al eliminar el entorno de computación anterior (azul), cualquier trabajo que se esté ejecutando ahora en esas instancias fallará porque las instancias se cancelarán. Configure las estrategias de reintento de tareas en las definiciones de tareas para gestionar estos errores de forma automática. Para obtener más información, consulte [Reintentos automáticos de trabajo](job_retries.md).  
Una vez que confíe en el nuevo entorno:  
Edite la cola de trabajos para eliminar el entorno de computación anterior.
Espere a que se complete cualquier trabajo en ejecución en el entorno anterior.
Elimine el entorno informático antiguo.

------
#### [ Performing blue/green updates using the Consola de administración de AWS ]

1. Clone su entorno de computación actual.

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

   1. Seleccione su entorno de computación actual.

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

   1. En **Nombre**, ingrese un nombre único para el nuevo entorno de computación. 

   1. Elija **Siguiente**.

   1. En la sección **Configuración de instancia**, actualice la configuración de AMI:

      1. Expanda **Configuración adicional**.

      1. En **Configuración de EC2**, especifique el nuevo tipo de AMI en **Tipo de imagen** y el ID de AMI en el campo **Anulación del ID de imagen**.

   1. Elija **Siguiente**.

   1. En **Configuración de red**, seleccione **Siguiente**.

   1. Revise las demás configuraciones que se copian automáticamente del entorno actual.

   1. Seleccione **Crear entorno de computación**.

   1. Espere a que el estado del nuevo entorno de comutación cambie a `VALID`.

1. Cambie el orden de la cola de trabajos

   1. En el panel de navegación, elija **Colas de trabajos**.

   1. Seleccione la cola de trabajos asociada al entorno de computación actual.

   1. Elija **Edit (Edición de)**.

   1. En **Entorno de computación conectado**, agregue el nuevo entorno de computación:
      + Agregue el nuevo entorno de computación con un número de orden superior al del entorno existente para realizar la transición de la carga de trabajo.
      + Una vez que compruebe que el nuevo entorno funciona correctamente, puede convertirlo en el entorno principal asignándole un número de orden inferior.

   1. Seleccione **Actualizar cola de trabajos**.

1. Limpieza

   1. Supervise la ejecución de los trabajos en el nuevo entorno para asegurarse de que todo funcione según lo esperado.

   1. Una vez que confíe en el nuevo entorno:

      1. Edite la cola de trabajos para eliminar el entorno de computación anterior.

      1. Espere a que se complete cualquier trabajo en ejecución en el entorno anterior.

      1. Elimine el entorno informático antiguo.

------
#### [ Performing blue/green updates using the AWS CLI ]

1. Para obtener la configuración mediante el AWS CLI, utilice el siguiente comando:

   ```
   aws batch describe-compute-environments \
     --compute-environments your-compute-environment-name
   ```

   Guarde la salida como referencia al crear el nuevo entorno.

1. Cree un nuevo entorno de computación con la configuración de su entorno existente, pero con la nueva AMI. A continuación, se muestra un ejemplo de la estructura del comando:

   Sustituya los valores de ejemplo por la configuración actual del paso anterior:

   ```
   cat <<EOF > ./blue-green-compute-environment.json
   {
     "computeEnvironmentName": "your-new-compute-environment-name",
     "type": "MANAGED",
     "state": "ENABLED",
     "computeResources": {
       "instanceRole": "arn:aws:iam::012345678901:instance-profile/ecsInstanceRole",
       "type": "EC2",
       "minvCpus": 2,
       "desiredvCpus": 2,
       "maxvCpus": 256,
       "instanceTypes": [
         "optimal"
       ],
       "allocationStrategy": "BEST_FIT_PROGRESSIVE",
       "ec2Configuration": [
         {
           "imageType": "ECS_AL2023",
           "imageIdOverride": "ami-0abcdef1234567890"
         }
       ],
       "subnets": [,
         "subnet-0abcdef1234567890"
       ],
       "securityGroupIds": [
         "sg-0abcdef1234567890"
       ]
     }
   }
   EOF
   ```

   ```
   $ aws batch create-compute-environment --cli-input-json file://./blue-green-compute-environment.json
   ```

1. Espera para que el nuevo entorno esté disponible:

   ```
   aws batch describe-compute-environments \
     --compute-environments your-new-compute-environment-name \
     --query 'computeEnvironments[].status'
   ```

1. Agregue el entorno de computación a la cola de trabajos:

   ```
   aws batch update-job-queue \
     --job-queue your-job-queue \
     --compute-environment-order order=1,computeEnvironment=your-existing-environment \
     order=2,computeEnvironment=your-new-compute-environment-name
   ```

1. En cuanto lo verifique, vuelva a actualizarlo para que el nuevo entorno sea principal:

   ```
   aws batch update-job-queue \
     --job-queue your-job-queue \
     --compute-environment-order order=1,computeEnvironment=your-new-compute-environment-name
   ```

   Una vez finalizados todos los trabajos en el entorno anterior, desactívelo y elimínelo:

   ```
   aws batch update-compute-environment \
       --compute-environment your-existing-environment \
       --state DISABLED
   ```

   ```
   aws batch delete-compute-environment \
     --compute-environment your-existing-environment
   ```

------

# Recurso informático AMIs
<a name="compute_resource_AMIs"></a>

De forma predeterminada, los entornos informáticos AWS Batch gestionados utilizan una versión reciente y aprobada de la AMI optimizada de Amazon ECS para los recursos informáticos. Sin embargo, es posible que desee crear sus propias AMI; para utilizarlas en sus entornos de computación administrados y no administrados. Si necesita alguna de las siguientes opciones, le recomendamos que cree su propia AMI:
+ Aumentar el tamaño de almacenamiento de los volúmenes de datos o raíz de la AMI.
+ Añadir volúmenes de almacenamiento de instancias para los tipos de instancias de Amazon EC2 compatibles.
+ Personalización del agente de contenedores Amazon ECS.
+ Personalización de Docker
+ Configurar una AMI de carga de trabajo de GPU que permite a los contenedores acceder a hardware de GPU en los tipos de instancias de Amazon EC2 admitidos

**nota**  
Una vez creado un entorno informático, AWS Batch no actualiza AMIs el entorno informático. AWS Batch tampoco lo actualiza AMIs en su entorno informático cuando hay disponible una versión más reciente de la AMI optimizada para Amazon ECS. Usted es responsable de la administración del sistema operativo invitado. Esto incluye actualizaciones y parches de seguridad. También es el responsable de cualquier otra utilidad o software de aplicaciones que se instale en los recursos de computación. Para usar una AMI nueva para sus AWS Batch trabajos, haga lo siguiente:  
Cree un nuevo entorno de computación con la nueva AMI.
Añada el entorno de computación a una cola de trabajos existente.
Quite el entorno de computación anterior de la cola de trabajos.
Elimine el entorno de computación anterior.
En abril de 2022, AWS Batch se agregó un soporte mejorado para actualizar los entornos de cómputo. Para obtener más información, consulte [Actualizar un entorno informático en AWS Batch](updating-compute-environments.md). Para utilizar la actualización mejorada de los entornos de cómputo para actualizar AMIs, siga estas reglas:  
No establezcas el parámetro service role ([https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateComputeEnvironment.html#Batch-CreateComputeEnvironment-request-serviceRole](https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateComputeEnvironment.html#Batch-CreateComputeEnvironment-request-serviceRole)) o establézcalo en el rol **AWSServiceRoleForBatch**vinculado al servicio.
Defina el parámetro de estrategia de asignación ([https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-allocationStrategy](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-allocationStrategy)) en `BEST_FIT_PROGRESSIVE`, `SPOT_CAPACITY_OPTIMIZED` o `SPOT_PRICE_CAPACITY_OPTIMIZED`.
Defina el parámetro de actualización a la última versión de la imagen ([https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResourceUpdate.html#Batch-Type-ComputeResourceUpdate-updateToLatestImageVersion](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResourceUpdate.html#Batch-Type-ComputeResourceUpdate-updateToLatestImageVersion)) en `true`.
No especifique un ID de AMI en [https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResourceUpdate.html#Batch-Type-ComputeResourceUpdate-imageId](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResourceUpdate.html#Batch-Type-ComputeResourceUpdate-imageId), [https://docs.aws.amazon.com/batch/latest/APIReference/API_Ec2Configuration.html#Batch-Type-Ec2Configuration-imageIdOverride](https://docs.aws.amazon.com/batch/latest/APIReference/API_Ec2Configuration.html#Batch-Type-Ec2Configuration-imageIdOverride) (en [https://docs.aws.amazon.com/batch/latest/APIReference/API_Ec2Configuration.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_Ec2Configuration.html)) o en la plantilla de lanzamiento ([https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResourceUpdate.html#Batch-Type-ComputeResourceUpdate-launchTemplate](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResourceUpdate.html#Batch-Type-ComputeResourceUpdate-launchTemplate)). Si no especifica un ID de AMI, AWS Batch selecciona la última AMI optimizada para Amazon ECS AWS Batch compatible en el momento en que se inicia la actualización de la infraestructura. También, puede especificar el ID de AMi en los parámetros `imageId` o `imageIdOverride`. También puede especificar la plantilla de lanzamiento que se identifica mediante las propiedades de `LaunchTemplate`. El cambio de cualquiera de estas propiedades inicia una actualización de la infraestructura. Si el ID de AMI se especifica en la plantilla de lanzamiento, este se puede reemplazar especificando un ID de AMI en los parámetros `imageId` o `imageIdOverride`. El ID de AMI solo se puede reemplazar especificando una plantilla de lanzamiento diferente. Si la versión de la plantilla de lanzamiento está configurada en `$Default` o `$Latest`, el ID de AMI puede sustituirse configurando una nueva versión predeterminada para la plantilla de lanzamiento (si es `$Default`) o añadiendo una nueva versión a la plantilla de lanzamiento (si es `$Latest`).
Si se siguen estas reglas, cualquier actualización que inicie una actualización de la infraestructura hará que se vuelva a seleccionar el ID de la AMI. Si la configuración [https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecification.html#Batch-Type-LaunchTemplateSpecification-version](https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecification.html#Batch-Type-LaunchTemplateSpecification-version) en la plantilla de lanzamiento ([https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResourceUpdate.html#Batch-Type-ComputeResourceUpdate-launchTemplate](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResourceUpdate.html#Batch-Type-ComputeResourceUpdate-launchTemplate)) toma el valor `$Latest` o `$Default`, se evaluará la versión más reciente o predeterminada de la plantilla de lanzamiento en el momento de la actualización de la infraestructura, incluso si [https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResourceUpdate.html#Batch-Type-ComputeResourceUpdate-launchTemplate](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResourceUpdate.html#Batch-Type-ComputeResourceUpdate-launchTemplate) no se ha actualizado.

**Topics**
+ [Especificaciones de AMI de recursos de computación](batch-ami-spec.md)
+ [Orden de selección AMI](ami-selection-order.md)
+ [Administración de versiones de AMI en entornos informáticos](managing-ami-versions.md)
+ [Tutorial: creación de una AMI de recursos de computación](create-batch-ami.md)
+ [Uso de una AMI de carga de trabajo de GPU](batch-gpu-ami.md)
+ [Obsolescencia de Amazon Linux](al1-ami-deprecation.md)
+ [Obsolescencia de la AMI de Amazon Linux 2 en Amazon EKS](eks-al2-ami-deprecation.md)
+ [Obsolescencia de la AMI de Amazon Linux 2 en Amazon ECS](ecs-al2-ami-deprecation.md)

# Especificaciones de AMI de recursos de computación
<a name="batch-ami-spec"></a>

La especificación AMI de recursos AWS Batch informáticos básica consiste en lo siguiente:

Obligatorio

 
+ Una moderna distribución de Linux que ejecuta al menos la versión 3,10 de kernel de Linux en una AMI; de tipo de virtualización HVM. No se admiten los contenedores de Windows.
**importante**  
Los trabajos paralelos de varios nodos solo se pueden ejecutar en recursos de computación que se hayan lanzado en una instancia de Amazon Linux con el paquete `ecs-init` instalado. Recomendamos utilizar la AMI optimizada para Amazon ECS predeterminada al crear el entorno de computación. Para ello, no especifique una AMI personalizada. Para obtener más información, consulte [Trabajos paralelos de varios nodos](multi-node-parallel-jobs.md).
+ El agente de contenedor de Amazon ECS. Le recomendamos que utilice la última versión de . Para obtener más información, consulte [Instalar el agente contenedor de instancia de Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-install.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*.
+ El controlador de registros `awslogs` debe especificarse como un controlador de registros disponible con la variable de entorno `ECS_AVAILABLE_LOGGING_DRIVERS` cuando el agente de contenedor de Amazon ECS se inicia. Para obtener más información, consulte [Configuración del agente de contenedor de Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*. 
+ Un daemon de Docker que ejecuta al menos la versión 1.9, y cualquier dependencia de tiempo de ejecución de Docker. Para obtener más información, consulte [Check runtime dependencies](https://docs.docker.com/engine/installation/binaries/#check-runtime-dependencies) en la documentación de Docker.
**nota**  
Le recomendamos la versión de Docker que se envía y se prueba con la versión de agente de Amazon ECS correspondiente que está utilizando. Amazon ECS proporciona un registro de cambios para la variante Linux de la AMI optimizada para Amazon ECS on. GitHub Para obtener más información, consulte [Changelog](https://github.com/aws/amazon-ecs-ami/blob/main/CHANGELOG.md) (Registro de cambios).

Recomendado
+ Un proceso de inicialización y nanny para ejecutar y monitorear el agente de Amazon ECS. La AMI optimizada para Amazon ECS usa el proceso upstart `ecs-init` y otros sistemas operativos pueden utilizar `systemd`. Para obtener más información y ejemplos, consulte [Scripts de configuración de datos de usuario de instancias de contenedor de ejemplo](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/example_user_data_scripts.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*. [Para obtener más información al respecto`ecs-init`, consulte el proyecto en. `ecs-init`](https://github.com/aws/amazon-ecs-init) GitHub Los entornos de computación administrados requieren, como mínimo, que el agente de Amazon ECS se inicie al arrancar. Si el agente de Amazon ECS no se está ejecutando en su recurso informático, no podrá aceptar trabajos de AWS Batch. 

Las AMI optimizadas para Amazon ECS están preconfiguradas con estos requisitos y recomendaciones. Recomendamos que utilice la AMI optimizada para Amazon ECS o una AMI de Amazon Linux con el paquete `ecs-init` instalado para sus recursos de computación. Elija otra AMI si su aplicación requiere un sistema operativo específico o una versión de Docker que aún no esté disponible en ellos AMIs. Para obtener más información, consulte la [AMI optimizada para Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*.

# Orden de selección AMI
<a name="ami-selection-order"></a>

AWS Batch determina la Amazon Machine Image (AMI) para los recursos informáticos mediante el siguiente orden de prioridad. Comprender este orden le ayudará a entender por qué AWS Batch eligió una AMI en particular para su entorno informático:

1. **AMI de anulación de plantilla** de lanzamiento: si una modificación de plantilla de lanzamiento para la instancia lanzada tiene una imagen, se utiliza su imagen.

1. **ID de imagen de recursos de cómputo (obsoleto)**: si se establece, se utiliza la AMI de este entorno de cómputo. *Nota: campo obsoleto; utilice EC2Configuration. imageIdOverride *en su lugar.

1. **Anulación del ID de la imagen de configuración de EC2**: si se especifica, se utiliza la imagen de este campo.

1. **AMI de plantilla de lanzamiento**: si el entorno informático tiene una plantilla de lanzamiento asociada a una imagen, se utilizará esta imagen.

1. **AWS AMI predeterminada**: si no se configura ninguna de las opciones anteriores, AWS Batch selecciona una AMI predeterminada en función del ImageType especificado en la configuración de EC2.

**nota**  
El parámetro EC2Configuration es opcional. Si se omite, selecciona AWS Batch automáticamente una configuración de EC2 adecuada y una AMI predeterminada en función de los tipos de instancias lanzados en el entorno informático.

**nota**  
Este orden de selección de la AMI no se aplica a los entornos informáticos de Fargate.

## Orden de selección de AMI de mayor a menor prioridad
<a name="ami-order"></a>

1. La **plantilla de lanzamiento anula la AMI** (máxima prioridad)

   **Campo de API:** `overrides[].launchTemplateId` con los tipos de instancias de destino

   **Referencia: [LaunchTemplateSpecification](https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecification.html)**

   Las plantillas de anulación se dirigen a tipos de instancias específicos y proporcionan un control más detallado que la plantilla de lanzamiento predeterminada. Tienen prioridad sobre todas las demás especificaciones de la AMI para los tipos de instancias coincidentes.

   ```
   {
     "computeResources": {
       "launchTemplate": {
         "launchTemplateId": "lt-default",
         "overrides": [
           {
             "launchTemplateId": "lt-gpu-optimized",
             "targetInstanceTypes": ["p3.2xlarge", "g4dn.xlarge"]
           }
         ]
       }
     }
   }
   ```

1. **ID de imagen de los recursos informáticos**

   **Campo de API:** `computeResources.imageId`

   **Referencia: [CreateComputeEnvironment](https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateComputeEnvironment.html)**

   Puede especificar una AMI directamente en el nivel del entorno informático. Esto tiene prioridad sobre las anulaciones de configuración y las plantillas de lanzamiento de EC2 (excepto las plantillas de anulación).

   En un entorno informático con varias configuraciones de EC2 (por ejemplo, para `ECS_AL2023` y`ECS_AL2023_NVIDIA`), el ID de AMI especificado aquí se utiliza para todas las configuraciones de EC2.
**importante**  
El `imageId` campo está obsoleto. Utilice en su `ec2Configuration.imageIdOverride` lugar.

   ```
   {
     "computeResources": {
       "imageId": "ami-12345678",
       "instanceTypes": ["m5.large", "m5.xlarge"]
     }
   }
   ```

1. **Anulación del ID de imagen de configuración de EC2**

   **Campo API:** `computeResources.ec2Configuration[].imageIdOverride`

   **Referencia: Configuración** [Ec2](https://docs.aws.amazon.com/batch/latest/APIReference/API_Ec2Configuration.html)

   La configuración de EC2 proporciona anulaciones específicas del tipo de imagen. Esta configuración anula la selección de AMI predeterminada y lanza la AMI de plantilla para el tipo de imagen especificado.

   ```
   {
     "computeResources": {
       "ec2Configuration": [
         {
           "imageType": "ECS_AL2",
           "imageIdOverride": "ami-87654321"
         }
       ]
     }
   }
   ```

1. **Plantilla de lanzamiento AMI**

   **Campo API:** `ImageId` en la plantilla de lanzamiento de Amazon EC2

   **Referencia:** [Utilice las plantillas de lanzamiento de Amazon EC2 con AWS Batch](launch-templates.md)

   Cuando se especifica una AMI en la plantilla de lanzamiento, esta tiene prioridad sobre la selección de AMI por defecto, pero se anula con una configuración de prioridad más alta.

   ```
   // EC2 Launch Template content
   {
     "LaunchTemplateName": "my-batch-template",
     "LaunchTemplateData": {
       "ImageId": "ami-12345678"
     }
   }
   ```

   La plantilla de lanzamiento hace referencia a: AWS Batch 

   ```
   // Batch Launch Template content
   {
     "computeResources": {
       "launchTemplate": {
         "launchTemplateName": "my-batch-template",
         "version": "$Latest"
       }
     }
   }
   ```

1. **AWS AMI predeterminada** (prioridad más baja)

   **Campo de API:** determinado por `computeResources.ec2Configuration[].imageType`

   **Referencia: Ec2 Configuration** [ImageType](https://docs.aws.amazon.com/batch/latest/APIReference/API_Ec2Configuration.html)

   Si no se especifica ninguna AMI personalizada, selecciona AWS Batch automáticamente la última AMI optimizada para Amazon ECS aprobada en función del tipo de imagen.
**nota**  
`ec2Configuration`Es opcional. AWS Batch seleccionará una AMI predeterminada adecuada si no `ec2Configuration` se especifica ninguna.

   ```
   {
     "computeResources": {
       "ec2Configuration": [
         {
           "imageType": "ECS_AL2023"
         }
       ]
     }
   }
   ```

# Administración de versiones de AMI en entornos informáticos
<a name="managing-ami-versions"></a>

AWS Batch proporciona visibilidad de las Amazon Machine Images (AMIs) que utilizan sus entornos informáticos.

## Visualización del estado de la AMI
<a name="viewing-ami-status"></a>

Puede ver el estado de AMIs uso en sus entornos informáticos a través de la AWS Batch consola o mediante un [describe-compute-environments](https://docs.aws.amazon.com/cli/latest/reference/batch/describe-compute-environments.html)comando.

------
#### [ Console ]

En la AWS Batch consola, la información de estado de la AMI aparece en dos ubicaciones con los siguientes valores de estado:
+ **Última**: se utiliza la AMI más reciente compatible con AWS Batch.
+ **Actualización disponible: hay** una actualización disponible.

**nota**  
La información de estado de la AMI solo aparece para AWS Batch-managed AMIs. El estado no aparece cuando las imágenes se especifican en la plantilla de lanzamiento predeterminada `imageId` (en desuso) o en la plantilla de lanzamiento predeterminada. `imageIdOverride` El estado no aparece cuando el entorno de cómputo tiene una plantilla de lanzamiento anulada. Para obtener más información sobre la selección de AMI, consulte[Orden de selección AMI](ami-selection-order.md).

La página de entornos de cómputo muestra una columna de **estado de la imagen de Batch** que muestra el total `batchImageStatus` de cada entorno de cómputo. Si un entorno informático tiene varias AMI AMIs y alguna de ellas tiene **actualizaciones disponibles**, la consola mostrará las **actualizaciones disponibles** para todo el entorno informático.

**nota**  
El estado aparece después de que el entorno informático haya empezado a escalarse para cualquier **tipo de imagen**.

En la página de detalles del entorno de cómputo, la sección de **configuración de Ec2** de la pestaña **Recursos de cómputo** muestra el **estado de la imagen de Batch** para cada **tipo de imagen** en el entorno de cómputo. Si un **tipo de imagen** tiene varias AMIs y alguna AMI tiene **actualizaciones disponibles**, la consola muestra las **actualizaciones disponibles** para ese **tipo de imagen**.

**nota**  
El estado de cada **tipo de imagen** solo aparece después de que el entorno informático haya empezado a escalar las instancias para ese **tipo de imagen** específico.

------
#### [ CLI ]

Cuando llamas [describe-compute-environments](https://docs.aws.amazon.com/cli/latest/reference/batch/describe-compute-environments.html), la respuesta incluye el `batchImageStatus` campo que proporciona visibilidad a la AMI con los siguientes valores:
+ `LATEST`— Uso de la AMI más reciente compatible con AWS Batch.
+ `UPDATE_AVAILABLE`— Hay una actualización disponible.

**nota**  
El `batchImageStatus` campo aparece solo para AWS Batch-managed AMIs. No aparece cuando se AMIs especifican las opciones personalizadas en la plantilla de lanzamiento predeterminada `imageId` (obsoleta) o en la plantilla de lanzamiento predeterminada. `imageIdOverride` El estado no aparece cuando el entorno de cómputo tiene una plantilla de lanzamiento sustituida. Para obtener más información sobre cómo realizar las AWS Batch selecciones AMIs, consulte[Orden de selección AMI](ami-selection-order.md).  
El campo aparece de forma independiente para cada uno de ellos `Ec2Configuration` y solo después de que el entorno de procesamiento haya empezado a escalar las instancias con él`imageType`.

```
{
    "computeEnvironments": [
        {
            "computeEnvironmentName": "my-compute-environment",
            "computeResources": {
                "ec2Configuration": [
                    {
                        "imageType": "ECS_AL2023"
                    },
                    {
                        "imageType": "ECS_AL2023_NVIDIA",
                        "batchImageStatus": "UPDATE_AVAILABLE"
                    }
                ]
            }
        }
    ]
}
```

------

## Actualización de las versiones de AMI
<a name="updating-ami-versions"></a>

Cuando se AWS Batch indique que hay una actualización de la AMI disponible, puede actualizar el entorno informático para que utilice la más nueva AMIs actualizando el entorno informático con la **opción Actualizar AMI a la última versión** establecida en true.

No es necesario que especifique una nueva AMI IDs : selecciona AWS Batch automáticamente la última compatible AMIs al configurar **Actualizar la AMI a la última versión**.

**importante**  
La actualización AMIs desencadena una [actualización de la infraestructura](infrastructure-updates.md), no una actualización de escalado. Esto significa AWS Batch reemplazar las instancias existentes por instancias nuevas que usen la AMI actualizada. El proceso de actualización lleva más tiempo que una actualización de escalado y puede interrumpir los trabajos en ejecución según la configuración de la política de actualización.

**importante**  
Si su estrategia de asignación lo es`BEST_FIT`, tendrá que realizar una actualización [azul/verde](blue-green-updates.md).

------
#### [ Console ]

Para realizar la actualización AMIs mediante la AWS Batch consola:

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, elija **Entornos**.

1. Seleccione el entorno informático que muestre el estado de una AMI con una actualización.

1. Seleccione **Actualizar ahora** (según el estado de la AMI) o **Acciones** > **Editar** para abrir el modal de actualización.

1. En el modal de actualización de la AMI, revise las versiones actuales de la AMI y sus estados.

1. Seleccione **Confirmar** o **Guardar** para iniciar la actualización de la infraestructura.

El estado del entorno informático cambia a `UPDATING` durante la actualización de la infraestructura. Puede monitorizar el progreso en la consola de .

------
#### [ CLI ]

Para actualizar AMIs mediante la AWS CLI, utilice el `update-compute-environment` comando.

```
aws batch update-compute-environment \
    --compute-environment my-compute-environment \
    --compute-resources updateToLatestImageVersion=true
```

Este comando desencadena una actualización de infraestructura que reemplaza las instancias por nuevas instancias utilizando la última versión AWS Batch compatible AMIs.

------

## Consideraciones sobre la AMI personalizada
<a name="custom-ami-considerations"></a>

Si su entorno informático utiliza plantillas de lanzamiento personalizadas AMIs, es decir, AMIs especificadas `ComputeResources.imageId` (en desuso)`Ec2Configuration.imageIdOverride`, la plantilla de lanzamiento predeterminada o las anulaciones de plantillas de lanzamiento, AWS Batch no podrá proporcionar información de estado sobre estas plantillas. AMIs
+ **Visibilidad de estado**: AMIs muestre "**-**" de forma personalizada para el **estado de su imagen de Batch** en la consola y no incluya el `batchImageStatus` campo en las respuestas de la API.
+ **Administración manual**: usted es responsable de mantener y actualizar la personalización AMIs. Manténgase informado de los parches de seguridad y software de su proveedor de AMI y actualice los personalizados AMIs en consecuencia.
+ **Administración de EC2**: utilice la consola Amazon EC2 APIs o gestione el ciclo de vida personalizado de la AMI, incluida la creación de nuevas versiones y la desactivación de las antiguas.

Para obtener más información sobre la administración personalizada, consulte. AMIs [Recurso informático AMIs](compute_resource_AMIs.md)

## Mejores prácticas para las actualizaciones de la AMI
<a name="ami-update-best-practices"></a>

Esta sección se aplica tanto a las personalizadas como a las predeterminadas AMIs.
+ **Supervisión periódica**: compruebe periódicamente el estado de la AMI de sus entornos informáticos para identificar cuándo hay actualizaciones disponibles. De forma predeterminada AMIs, `batchImageStatus` se mostrará cuando haya una actualización disponible. Para AMIs personalizarlo, tendrás que usar otros recursos, como los boletines AWS de seguridad.
+ **Periodos de mantenimiento**: programe las actualizaciones de la AMI durante los períodos de mantenimiento cuando la interrupción del trabajo sea aceptable, ya que las actualizaciones de infraestructura sustituyen a las instancias existentes.
+ **Estrategia de reintento de trabajo**: configure estrategias de reintento de trabajo para gestionar los trabajos que puedan interrumpirse durante las actualizaciones de infraestructura. Para obtener más información, consulte [Reintentos automáticos de trabajo](job_retries.md).
+ **Configuración de la política de actualizaciones**: configure las políticas de actualización adecuadas para controlar cómo se gestionan los trabajos en ejecución durante las actualizaciones de infraestructura. Para obtener más información, consulte [Cómo realizar actualizaciones de la infraestructura](infrastructure-updates.md).
+ **Pruebas**: pruebe las actualizaciones de la AMI en los entornos de desarrollo antes de aplicarlas a los entornos informáticos de producción.

# Tutorial: creación de una AMI de recursos de computación
<a name="create-batch-ami"></a>

Es posible crear sus propias AMI de recursos de computación personalizadas para usarlas en entornos de computación administrados y sin administrar. Para obtener instrucciones, consulte la [Especificaciones de AMI de recursos de computación](batch-ami-spec.md). Después de crear la AMI personalizada, puede crear un entorno de computación que utilice dicha AMI al que puede asociar una cola de trabajos. Por último, comience a enviar trabajos a esa cola.

**Para crear una AMI de recursos de computación personalizada**

1. Elija una AMI de base como punto de partida. Las AMI de base deben utilizar virtualización HVM. Las AMI de base no pueden ser una AMI de Windows.
**nota**  
La AMI que elija para un entorno informático debe coincidir con la arquitectura de los tipos de instancias que tenga previsto utilizar para dicho entorno informático. Por ejemplo, si su entorno informático utiliza tipos de instancias A1, la AMI de recursos informáticos que elija debe admitir instancias ARM. Amazon ECS ofrece versiones x86 y ARM de la AMI Amazon Linux 2 optimizada para Amazon ECS. Para obtener más información, consulte la sección sobre [AMI Amazon Linux 2 optimizada para Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#ecs-optimized-ami-linux-variants.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*.

   La AMI Amazon Linux 2 optimizada para Amazon ECS es la predeterminada para recursos de computación en entornos de computación administrados. La AMI Amazon Linux 2 optimizada para Amazon ECS viene preconfigurada y probada AWS Batch por AWS ingenieros. Se trata de una AMI mínima con la que puede empezar y que permite que sus recursos informáticos se ejecuten AWS rápidamente. Para obtener más información, consulte [AMI Linux optimizada para Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*.

   También puede elegir otra variante de Amazon Linux 2 e instalar el paquete `ecs-init` con los siguientes comandos. Para obtener más información, consulte [Instalación del agente contenedor Amazon ECS en una EC2 instancia de Amazon Linux 2](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-install.html#ecs-agent-install-al2) en la *Guía para desarrolladores de Amazon Elastic Container Service*:

   ```
   $ sudo amazon-linux-extras disable docker
   $ sudo amazon-linux-extras install ecs-init
   ```

   Por ejemplo, si desea ejecutar cargas de trabajo de GPU en sus recursos AWS Batch informáticos, puede empezar con la [AMI de aprendizaje profundo de Amazon Linux](https://aws.amazon.com/marketplace/pp/B01M0AXXQB). A continuación, configure la AMI para ejecutar los AWS Batch trabajos. Para obtener más información, consulte [Uso de una AMI de carga de trabajo de GPU](batch-gpu-ami.md).
**importante**  
Puede elegir una AMI básica que no sea compatible con el paquete `ecs-init`. Sin embargo, si lo hace, debe configurar una forma de iniciar el agente Amazon ECS durante el arranque y mantenerlo en funcionamiento. También puede ver varios ejemplos de scripts de configuración de datos de usuario que utilizan `systemd` para iniciar y supervisar el agente contenedor de Amazon ECS. Para obtener más información, consulte [Scripts de configuración de datos de usuario de instancias de contenedor de ejemplo](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/example_user_data_scripts.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*.

1. Lance una instancia desde su AMI de base seleccionada con las opciones de almacenamiento adecuadas para su AMI. Es posible configurar el tamaño y la cantidad de volúmenes de Amazon EBS o de almacenamiento de instancias, si el tipo de instancia que ha seleccionado es compatible con ellos. Para obtener más información, consulte [Lanzamiento de una instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/launching-instance.html) y [Amazon EC2 Instance Store](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) en la *Guía del EC2 usuario de Amazon*.

1. Conéctese a la instancia con SSH y lleve a cabo las tareas de configuración que sean necesarias. Esto puede incluir una de las siguientes etapas, o todas:
   + Instalación del agente de contenedor de Amazon ECS. Para obtener más información, consulte [Instalar el agente contenedor de instancia de Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-install.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*.
   + Configurar un script para formatear volúmenes de almacén de instancias.
   + Añadir un volumen de almacén de instancias o sistemas de archivos de Amazon EFS al archivo `/etc/fstab` para que puedan montarse al arrancar.
   + Configurar opciones de Docker, como habilitar la depuración o ajustar el tamaño de la imagen de base.
   + Instalar paquetes o copiar archivos.

   Para obtener más información, consulte [Conexión a su instancia de Linux mediante SSH](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html) en la *Guía del EC2 usuario de Amazon*.

1. Si ha iniciado el agente contenedor de Amazon ECS en su instancia, debe detenerlo y eliminar cualquier archivo de comprobación de datos persistente antes de crear la AMI. De lo contrario, si no lo hace, el agente no se iniciará en las instancias que se lancen desde su AMI. 

   1. Detenga el agente de contenedor de Amazon ECS.
      + AMI de Amazon Linux 2 optimizada para Amazon ECS:

        ```
        sudo systemctl stop ecs
        ```
      + AMI de Amazon Linux optimizada para Amazon ECS:

        ```
        sudo stop ecs
        ```

   1. Elimine los archivos de comprobación de datos persistentes. De forma predeterminada, estos archivos se ubican en el directorio `/var/lib/ecs/data/`. Use el siguiente comando para eliminar estos archivos, si los hay.

      ```
      sudo rm -rf /var/lib/ecs/data/*
      ```

1. Cree una nueva AMI; desde su instancia en ejecución. Para obtener más información, consulte [Creación de una AMI de Linux respaldada por Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html) en la *guía del EC2 usuario de Amazon*.

**Para usar su nueva AMI con AWS Batch**

1. Cuando se haya creado una nueva AMI, cree un nuevo entorno de computación con la nueva AMI. Para ello, elija el tipo de imagen e introduzca el ID de AMI personalizado en el cuadro de **anulación del ID de imagen** al crear el entorno AWS Batch informático. Para obtener más información, consulte [Tutorial: creación de un entorno de computación gestionado con los recursos de Amazon EC2](create-compute-environment-managed-ec2.md).
**nota**  
La AMI que elija para un entorno informático debe coincidir con la arquitectura de los tipos de instancias que tenga previsto utilizar para dicho entorno informático. Por ejemplo, si su entorno informático utiliza tipos de instancias A1, la AMI de recursos informáticos que elija debe admitir instancias ARM. Amazon ECS ofrece versiones x86 y ARM de la AMI Amazon Linux 2 optimizada para Amazon ECS. Para obtener más información, consulte la sección sobre [AMI Amazon Linux 2 optimizada para Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#ecs-optimized-ami-linux-variants.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*.

1. Cree una cola de trabajos y asocie el entorno de computación nuevo. Para obtener más información, consulte [Creación de una cola de trabajos](create-job-queue.md).
**nota**  
Todos los entornos de computación asociados a una cola de trabajos deben compartir la misma arquitectura. AWS Batch no admite la mezcla de tipos de arquitecturas de entorno de computación en una sola cola de trabajos.

1. (Opcional) Envíe un trabajo de muestra a la cola de trabajos nueva. Para obtener más información, consulte [Ejemplos de definición de trabajo](example-job-definitions.md), [Creación de una definición de trabajo de un solo nodo](create-job-definition.md) y [Tutorial: envío de un trabajo](submit_job.md).

# Uso de una AMI de carga de trabajo de GPU
<a name="batch-gpu-ami"></a>

Para ejecutar cargas de trabajo de GPU en los recursos de computación de AWS Batch, debe utilizar una AMI compatible con GPU. Para obtener más información, consulte [Trabajar con GPU en Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-gpu.html) y [AMI optimizadas para Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*.

En entornos de computación administrados, si el entorno de computación especifica cualquier familia de instancia o tipo de instancia de `p3`, `p4`, `p5`, `p6`, `g3`. `g3s`, `g4`, `g5` o `g6`, entonces AWS Batch utiliza una AMI optimizada para GPU de Amazon ECS.

En entornos de computación no administrados, se recomienda una AMI optimizada para GPU de Amazon ECS. Puede utilizar las operaciones AWS Command Line Interface o AWS Systems Manager del almacén de parámetros [GetParameter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameter.html), [GetParameters](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameters.html) y [GetParametersByPath](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParametersByPath.html) para recuperar los metadatos de las AMI optimizadas para GPU de Amazon ECS recomendadas.

**nota**  
La familia de instancias `p5` solo se admite en versiones iguales o posteriores a la AMI optimizada para GPU de Amazon ECS `20230912` y son incompatibles los tipos de instancia `p2` y `g2`. Si necesita usar instancias `p5`, asegúrese de que su entorno de computación no instancias `p2` o `g2` y utilice la última AMI de Batch predeterminada. La creación de un nuevo entorno de computación utilizará la AMI más reciente, pero si actualiza su entorno de computación para incluir `p5`, puede asegurarse de utilizar la AMI más reciente configurando [https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResourceUpdate.html#Batch-Type-ComputeResourceUpdate-updateToLatestImageVersion](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResourceUpdate.html#Batch-Type-ComputeResourceUpdate-updateToLatestImageVersion) en `true` en propiedades `ComputeResource`. Para obtener más información sobre la compatibilidad de AMI con instancias de [GPU, consulte Working with GPUs on Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-gpu.html) en *Amazon Elastic Container Service Developer Guide*.

Los siguientes ejemplos muestran cómo utilizar el comando [GetParameter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameter.html).

------
#### [ AWS CLI ]

```
$ aws ssm get-parameter --name /aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended \
                        --region us-east-2 --output json
```

El resultado incluye la información de AMI en el parámetro de valor `Value`.

```
{
    "Parameter": {
        "Name": "/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended",
        "LastModifiedDate": 1555434128.664,
        "Value": "{\"schema_version\":1,\"image_name\":\"amzn2-ami-ecs-gpu-hvm-2.0.20190402-x86_64-ebs\",\"image_id\":\"ami-083c800fe4211192f\",\"os\":\"Amazon Linux 2\",\"ecs_runtime_version\":\"Docker version 18.06.1-ce\",\"ecs_agent_version\":\"1.27.0\"}",
        "Version": 9,
        "Type": "String",
        "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended"
    }
}
```

------
#### [ Python ]

```
from __future__ import print_function

import json
import boto3

ssm = boto3.client('ssm', 'us-east-2')

response = ssm.get_parameter(Name='/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended')
jsonVal = json.loads(response['Parameter']['Value'])
print("image_id   = " + jsonVal['image_id'])
print("image_name = " + jsonVal['image_name'])
```

El resultado solo incluye el ID y el nombre de AMI:

```
image_id   = ami-083c800fe4211192f
image_name = amzn2-ami-ecs-gpu-hvm-2.0.20190402-x86_64-ebs
```

------

En los siguientes ejemplos se muestra el uso de [GetParameters](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameters.html).

------
#### [ AWS CLI ]

```
$ aws ssm get-parameters --names  /aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_name \
                                  /aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_id \
                         --region us-east-2 --output json
```

El resultado incluye todos los metadatos de cada uno de los parámetros:

```
{
    "InvalidParameters": [],
    "Parameters": [
        {
            "Name": "/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_id",
            "LastModifiedDate": 1555434128.749,
            "Value": "ami-083c800fe4211192f",
            "Version": 9,
            "Type": "String",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_id"
        },
        {
            "Name": "/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_name",
            "LastModifiedDate": 1555434128.712,
            "Value": "amzn2-ami-ecs-gpu-hvm-2.0.20190402-x86_64-ebs",
            "Version": 9,
            "Type": "String",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_name"
        }
    ]
}
```

------
#### [ Python ]

```
from __future__ import print_function

import boto3

ssm = boto3.client('ssm', 'us-east-2')

response = ssm.get_parameters(
            Names=['/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_name',
                   '/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_id'])
for parameter in response['Parameters']:
    print(parameter['Name'] + " = " + parameter['Value'])
```

El resultado incluye el ID de AMI y el nombre de AMI, con la ruta completa de los nombres.

```
/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_id = ami-083c800fe4211192f
/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_name = amzn2-ami-ecs-gpu-hvm-2.0.20190402-x86_64-ebs
```

------

Los siguientes ejemplos muestran cómo utilizar el comando [GetParametersByPath](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParametersByPath.html).

------
#### [ AWS CLI ]

```
$ aws ssm get-parameters-by-path --path /aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended \
                                 --region us-east-2 --output json
```

El resultado incluye todos los metadatos de todos los parámetros de la ruta especificada.

```
{
    "Parameters": [
        {
            "Name": "/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/ecs_agent_version",
            "LastModifiedDate": 1555434128.801,
            "Value": "1.27.0",
            "Version": 8,
            "Type": "String",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/ecs_agent_version"
        },
        {
            "Name": "/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/ecs_runtime_version",
            "LastModifiedDate": 1548368308.213,
            "Value": "Docker version 18.06.1-ce",
            "Version": 1,
            "Type": "String",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/ecs_runtime_version"
        },
        {
            "Name": "/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_id",
            "LastModifiedDate": 1555434128.749,
            "Value": "ami-083c800fe4211192f",
            "Version": 9,
            "Type": "String",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_id"
        },
        {
            "Name": "/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_name",
            "LastModifiedDate": 1555434128.712,
            "Value": "amzn2-ami-ecs-gpu-hvm-2.0.20190402-x86_64-ebs",
            "Version": 9,
            "Type": "String",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_name"
        },
        {
            "Name": "/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/os",
            "LastModifiedDate": 1548368308.143,
            "Value": "Amazon Linux 2",
            "Version": 1,
            "Type": "String",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/os"
        },
        {
            "Name": "/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/schema_version",
            "LastModifiedDate": 1548368307.914,
            "Value": "1",
            "Version": 1,
            "Type": "String",
            "ARN": "arn:aws:ssm:us-east-2::parameter/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/schema_version"
        }
    ]
}
```

------
#### [ Python ]

```
from __future__ import print_function

import boto3

ssm = boto3.client('ssm', 'us-east-2')

response = ssm.get_parameters_by_path(Path='/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended')
for parameter in response['Parameters']:
    print(parameter['Name'] + " = " + parameter['Value'])
```

El resultado incluye los valores de todos los nombres de parámetros de la ruta especificada, con la ruta completa de los nombres.

```
/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/ecs_agent_version = 1.27.0
/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/ecs_runtime_version = Docker version 18.06.1-ce
/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_id = ami-083c800fe4211192f
/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/image_name = amzn2-ami-ecs-gpu-hvm-2.0.20190402-x86_64-ebs
/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/os = Amazon Linux 2
/aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended/schema_version = 1
```

------

Para obtener más información, consulte [Retrieving Amazon ECS-Optimized AMI Metadata](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/retrieve-ecs-optimized_AMI.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*.

# Obsolescencia de Amazon Linux
<a name="al1-ami-deprecation"></a>

La AMI de Amazon Linux (también llamada Amazon Linux 1) llegó al final de su vida útil el 31 de diciembre de 2023. AWS Batch ha dejado de dar soporte a la AMI de Amazon Linux, ya que no recibirá actualizaciones de seguridad ni correcciones de errores a partir del 1 de enero de 2024. Para obtener más información sobre Amazon Linux end-of-life, consulte [Preguntas frecuentes sobre AL](https://aws.amazon.com/amazon-linux-ami/faqs/). 

Le recomendamos que actualice los entornos de computación actuales basados en Amazon Linux a Amazon Linux 2023 para evitar interrupciones imprevistas de la carga de trabajo y seguir recibiendo actualizaciones de seguridad u otro tipo.

Es posible que sus entornos informáticos que utilizan la AMI de Amazon Linux sigan funcionando después de la end-of-life fecha del 31 de diciembre de 2023. Sin embargo, estos entornos informáticos ya no recibirán nuevas actualizaciones de software, parches de seguridad ni correcciones de errores AWS. Posteriormente, es su responsabilidad mantener estos entornos informáticos en la AMI de Amazon Linux end-of-life. Le recomendamos migrar los entornos de computación de AWS Batch a Amazon Linux 2023 o Amazon Linux 2 para mantener un rendimiento y una seguridad óptimos.

Para obtener ayuda para migrar AWS Batch de la AMI de Amazon Linux a Amazon Linux 2023 o Amazon Linux 2, consulte [Actualización de entornos informáticos - AWS Batch.](https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html)

# Obsolescencia de la AMI de Amazon Linux 2 en Amazon EKS
<a name="eks-al2-ami-deprecation"></a>

AWS finalizó el soporte para Amazon Linux 2 optimizado para Amazon EKS AMIs el 26 de noviembre de 2025. El 27 de octubre de 2025, AWS Batch cambió la AMI predeterminada para los nuevos entornos informáticos de Amazon EKS a Amazon Linux 2023. Amazon Linux 2, optimizado para Amazon EKS, ya AMIs no recibe actualizaciones de software, parches de seguridad ni correcciones de errores AWS.

**importante**  
Si tiene entornos informáticos de AWS Batch Amazon EKS que aún utilizan Amazon Linux 2, le recomendamos encarecidamente que migre a Amazon Linux 2023. Posteriormente, es su responsabilidad mantener los entornos informáticos de Amazon Linux 2 optimizados para Amazon EKS end-of-life.

Para obtener más información sobre Amazon EKS AL2 end-of-life, consulte la [obsolescencia de la AMI de Amazon EKS FAQs](https://docs.aws.amazon.com/eks/latest/userguide/eks-ami-deprecation-faqs.html) en la *Guía del usuario de Amazon EKS*.

Para obtener ayuda para migrar los entornos de cómputo de AWS Batch Amazon EKS de Amazon Linux 2 a Amazon Linux 2023, consulte[¿Cómo actualizar de EKS AL2 a EKS AL2023](eks-migration-2023.md).

# Obsolescencia de la AMI de Amazon Linux 2 en Amazon ECS
<a name="ecs-al2-ami-deprecation"></a>

AWS dejará de dar soporte a Amazon ECS, optimizada y acelerada para Amazon Linux 2, AMIs el 30 de junio de 2026. El 12 de enero de 2026, se AWS Batch cambió la AMI predeterminada para los nuevos entornos de cómputo de Amazon ECS de Amazon Linux 2 a Amazon Linux 2023. A partir del 30 de junio de 2026, AWS Batch bloqueará la creación de nuevos entornos de cómputo de Amazon ECS mediante Amazon Linux 2 proporcionado por lotes. AMIs Después de esta fecha, solo podrá crear nuevos entornos de cómputo de Amazon ECS con Amazon Linux 2023 o proporcionados por el cliente AMIs.

**importante**  
Recomendamos encarecidamente migrar sus entornos informáticos de AWS Batch Amazon ECS existentes a Amazon Linux 2023 antes del 30 de junio de 2026. Los entornos informáticos existentes seguirán funcionando después de esta fecha, pero ya no recibirán actualizaciones de software, parches de seguridad ni correcciones de AWS errores. Es su responsabilidad mantener los entornos de cómputo de Amazon Linux 2 posteriormente end-of-life.

Puede realizar un seguimiento del estado de la migración de los entornos informáticos de Amazon ECS afectados mediante los eventos del ciclo de vida planificado de AWS Health. Para obtener más información, consulte [AWS Eventos del ciclo de vida de Health Planned](batch-planned-lifecycle-events.md).

Para obtener más información sobre Amazon Linux 2 end-of-life, consulte [Amazon Linux 2 FAQs](https://aws.amazon.com/amazon-linux-2/faqs/).

Para obtener información sobre las diferencias entre Amazon Linux 2 y Amazon Linux 2023, consulte [Comparación entre Amazon Linux 2 y Amazon Linux 2023](https://docs.aws.amazon.com/linux/al2023/ug/compare-with-al2.html) en la *Guía del usuario de Amazon Linux 2023*.

Para obtener información sobre los cambios de Amazon Linux 2023 con la AMI optimizada para Amazon ECS, consulte [Migración de una AMI de Amazon Linux 2 a una AMI de Amazon Linux 2023 optimizada para Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/al2-to-al2023-ami-transition.html) en la *Guía de usuario de Amazon ECS*.

Para obtener ayuda para migrar los entornos de cómputo de AWS Batch Amazon ECS de Amazon Linux 2 a Amazon Linux 2023, consulte[Cómo migrar de ECS AL2 a ECS AL2023](ecs-migration-2023.md).

# Utilice las plantillas de lanzamiento de Amazon EC2 con AWS Batch
<a name="launch-templates"></a>

AWS Batch admite el uso de plantillas de lanzamiento de Amazon EC2 con sus entornos informáticos de EC2. Con las plantillas de lanzamiento, puede modificar la configuración predeterminada de sus recursos AWS Batch informáticos sin necesidad de crear plantillas personalizadas. AMIs

Las plantillas de lanzamiento pueden especificar qué AMIs prioridad tienen en el orden de selección de la AMI. Para obtener más información, consulte [Orden de selección AMI](ami-selection-order.md).

**nota**  
Cuando especificas una plantilla de lanzamiento personalizada para un entorno de AWS Batch cómputo, AWS Batch no adjunta directamente tu plantilla de lanzamiento al grupo de Auto Scaling subyacente. En su lugar, AWS Batch crea una plantilla de lanzamiento independiente gestionada por lotes para el grupo Auto Scaling e incorpora en ella los ajustes pertinentes de la plantilla de lanzamiento personalizada. Como resultado, la plantilla de lanzamiento que ve asociada al grupo Auto Scaling es diferente de la que especificó originalmente. Este es el comportamiento esperado.

**nota**  
Los recursos de AWS Fargate no admiten plantillas de lanzamiento.

Es necesario crear una plantilla de lanzamiento para poder asociarla a un entorno de computación. Puede crear una plantilla de lanzamiento en la consola de Amazon EC2. O bien, puede usar el AWS CLI o un AWS SDK. Por ejemplo, el siguiente archivo JSON representa una plantilla de lanzamiento que cambia el tamaño del volumen de datos de Docker para la AMI de AWS Batch recursos informáticos predeterminada y también lo configura para que esté cifrado.

```
{
    "LaunchTemplateName": "increase-container-volume-encrypt",
    "LaunchTemplateData": {
        "BlockDeviceMappings": [
            {
                "DeviceName": "/dev/xvda",
                "Ebs": {
                    "Encrypted": true,
                    "VolumeSize": 100,
                    "VolumeType": "gp2"
                }
            }
        ]
    }
}
```

Para crear la plantilla de lanzamiento anterior, guarda el JSON en un archivo llamado `lt-data.json` y ejecuta el siguiente AWS CLI comando.

```
aws ec2 --region <region> create-launch-template --cli-input-json file://lt-data.json
```

Para obtener más información sobre las plantillas de lanzamiento, consulte [Lanzar una instancia desde una plantilla de lanzamiento](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html) en la *Guía del usuario de Amazon EC2*.

Si utiliza una plantilla de lanzamiento para crear el entorno de computación, puede mover los siguientes parámetros del entorno de computación existente a la plantilla de lanzamiento:

**nota**  
Supongamos que alguno de estos parámetros (excepto las etiquetas de Amazon EC2) se especifica tanto en la plantilla de lanzamiento como en la configuración del entorno de procesamiento. Entonces, los parámetros del entorno de cómputo tienen prioridad. Las etiquetas Amazon EC2 se combinan entre la plantilla de lanzamiento y la configuración del entorno de cómputo. Si se produce una colisión en la clave de la etiqueta, el valor de la configuración del entorno de computación tiene prioridad.
+ Pares de claves de Amazon EC2
+ ID de la AMI de Amazon EC2
+ Grupo de seguridad IDs
+ Etiquetas de Amazon EC2

Los siguientes parámetros de la plantilla de lanzamiento son **ignorados** por AWS Batch:
+ Tipo de instancia (especifique los tipos de instancia que desea utilizar al crear el entorno de computación)
+ Rol de instancia (especifique el rol de instancia que desea utilizar al crear el entorno de computación)
+ Subredes de interfaz de red (especifique las subredes que desea utilizar al crear el entorno de computación)
+ Opciones del mercado de instancias (AWS Batch debe controlar la configuración de las instancias puntuales)
+ Inhabilite la terminación de la API (AWS Batch debe controlar el ciclo de vida de la instancia)

AWS Batch solo actualiza la plantilla de lanzamiento con una nueva versión de la plantilla de lanzamiento durante las actualizaciones de infraestructura. Para obtener más información, consulte [Actualizar un entorno informático en AWS Batch](updating-compute-environments.md).

## Plantillas de lanzamiento predeterminadas y anuladas
<a name="default-lt-and-overrides"></a>

Puede definir una plantilla de lanzamiento predeterminada para el entorno de computación y una plantilla de lanzamiento de anulación para los tipos y las familias de instancias específicos. Esto puede resultar útil para que la plantilla predeterminada se utilice en la mayoría de los tipos de instancias de los entornos de computación.

Las variables de sustitución `$Default` y `$Latest` se pueden utilizar en lugar de asignar un nombre a una versión específica. Si no proporciona una plantilla de lanzamiento de anulación, se aplicará automáticamente la predeterminada.

Si utiliza la `$Latest` variable `$Default` o, AWS Batch aplicará la información actual en el momento en que se cree el entorno informático. Si la versión predeterminada o la última versión cambian en el futuro, debe actualizar la información mediante [UpdateComputeEnvironment](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html)o mediante el botón Consola de administración de AWS - AWS Batch.

Para brindar una flexibilidad adicional, puede definir plantillas de lanzamiento de anulación que se apliquen a tipos o familias de instancias de computación específicos.

**nota**  
Puede especificar hasta diez (10) anulaciones de plantillas de lanzamiento para cada entorno de computación.

Utilice el parámetro `targetInstanceTypes` para seleccionar el tipo de instancia o la familia que se debe usar en esta anulación de plantilla de lanzamiento. El parámetro [https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-instanceTypes](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-instanceTypes) debe identificar primero el tipo o la familia de instancias.

Si se definen las anulaciones de plantillas de lanzamiento y se decide eliminarlas más adelante, puede pasar una matriz vacía para anular la configuración del parámetro [https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecification.html#Batch-Type-LaunchTemplateSpecification-overrides](https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecification.html#Batch-Type-LaunchTemplateSpecification-overrides) en la operación de la API [https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecification.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecification.html). También puede optar por no incluir el parámetro `overrides` al enviar la operación de la API `UpdateComputeEnvironment`. Para obtener más información, consulte: [https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecification.html#Batch-Type-LaunchTemplateSpecification-overrides](https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecification.html#Batch-Type-LaunchTemplateSpecification-overrides)

Para obtener más información, consulte [https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecificationOverride.html#Batch-Type-LaunchTemplateSpecificationOverride-targetInstanceTypes](https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecificationOverride.html#Batch-Type-LaunchTemplateSpecificationOverride-targetInstanceTypes)la guía de referencia de la AWS Batch API.

## Datos de usuario de Amazon EC2 en las plantillas de lanzamiento
<a name="lt-user-data"></a>

Puede proporcionar datos de usuario de Amazon EC2 en la plantilla de lanzamiento que será ejecutada por [cloud-init](https://cloudinit.readthedocs.io/en/latest/index.html) al lanzar las instancias. Los datos de usuario pueden realizar escenarios de configuración comunes, incluidos pero sin limitarse a los siguientes:
+ [Inclusión de usuarios o grupos](https://cloudinit.readthedocs.io/en/latest/topics/examples.html#including-users-and-groups)
+ [Instalación de paquetes](https://cloudinit.readthedocs.io/en/latest/topics/examples.html#install-arbitrary-packages)
+ [Creación de particiones y sistemas de archivos](https://cloudinit.readthedocs.io/en/latest/topics/examples.html#create-partitions-and-filesystems)

Los datos de usuario de Amazon EC2 en las plantillas de lanzamiento deben estar en el formato [archivo multiparte MIME](https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive). Esto se debe a que los datos de AWS Batch usuario se combinan con otros datos de usuario necesarios para configurar los recursos informáticos. Puede combinar varios bloques de datos de usuario en un único archivo multiparte MIME. Por ejemplo, es posible que desee combinar un boothook de nube que configure el daemon de Docker con un script de shell de datos de usuario que escribe información de configuración para el agente de contenedor de Amazon ECS.

Si los usas AWS CloudFormation, el [AWS::CloudFormation::Init](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-init.html)tipo se puede usar con el script de ayuda [cfn-init](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-init.html) para realizar escenarios de configuración comunes.

Un archivo multiparte MIME consta de los siguientes componentes:
+ El tipo de contenido y declaración de límite de partes: `Content-Type: multipart/mixed; boundary="==BOUNDARY=="`
+ La declaración de versión de MIME: `MIME-Version: 1.0`
+ Uno o más bloques de datos de usuario, que contienen los siguientes componentes:
  + El límite de apertura, que señala el inicio de un bloque de datos de usuario: `--==BOUNDARY==`. Debe dejar en blanco la línea anterior a este límite.
  + La declaración de tipo de contenido para el bloque: `Content-Type: text/cloud-config; charset="us-ascii"`. Para obtener más información sobre los tipos de contenido, consulte la [documentación de Cloud-Init](https://cloudinit.readthedocs.io/en/latest/topics/format.html). Debe dejar en blanco la línea que sigue a la declaración de tipo de contenido.
  + El contenido de los datos de usuario, por ejemplo, una lista de shell o políticas de `cloud-init`.
+ El límite de cierre, que señala el final del archivo multiparte MIME: `--==BOUNDARY==--`. Debe dejar en blanco la línea anterior al límite de cierre.

**nota**  
Si añade datos de usuario a una plantilla de lanzamiento en la consola de Amazon EC2, puede pegarlos como texto sin formato. O bien, puede cargarlos desde un archivo. Si utilizas el SDK AWS CLI o un AWS SDK, primero debes `base64` codificar los datos del usuario y enviar esa cadena como el valor del `UserData` parámetro cuando llames [CreateLaunchTemplate](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateLaunchTemplate.html), tal y como se muestra en este archivo JSON.  

```
{
    "LaunchTemplateName": "base64-user-data",
    "LaunchTemplateData": {
        "UserData": "ewogICAgIkxhdW5jaFRlbXBsYXRlTmFtZSI6ICJpbmNyZWFzZS1jb250YWluZXItdm9sdW..."
    }
}
```

**Topics**
+ [Plantillas de lanzamiento predeterminadas y anuladas](#default-lt-and-overrides)
+ [Datos de usuario de Amazon EC2 en las plantillas de lanzamiento](#lt-user-data)
+ [Referencia: ejemplos de plantillas de lanzamiento de Amazon EC2](launch-template-examples.md)

# Referencia: ejemplos de plantillas de lanzamiento de Amazon EC2
<a name="launch-template-examples"></a>

A continuación, se muestra un ejemplo de un archivo multiparte MIME que puede utilizar para crear sus propias plantillas.

**Topics**
+ [Ejemplo: montaje de un sistema de archivos de Amazon EFS existente](#example-mount-an-existing-amazon-efs-file-system)
+ [Ejemplo: anulación de la configuración predeterminada del agente de contenedor de Amazon ECS](#example-override-default-amazon-ecs-container-agent-configuration)
+ [Ejemplo: montar un sistema de archivos Amazon FSx for Lustre existente](#example-mount-an-existing-amazon-fsx-for-lustre-file-system)

## Ejemplo: montaje de un sistema de archivos de Amazon EFS existente
<a name="example-mount-an-existing-amazon-efs-file-system"></a>

**Example**  
Este archivo multiparte MIME de ejemplo configura el recurso de computación para instalar el paquete `amazon-efs-utils` y montar un sistema de archivos de Amazon EFS existente en `/mnt/efs`.  

```
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="

--==MYBOUNDARY==
Content-Type: text/cloud-config; charset="us-ascii"

packages:
- amazon-efs-utils

runcmd:
- file_system_id_01=fs-abcdef123
- efs_directory=/mnt/efs

- mkdir -p ${efs_directory}
- echo "${file_system_id_01}:/ ${efs_directory} efs tls,_netdev" >> /etc/fstab
- mount -a -t efs defaults

--==MYBOUNDARY==--
```

## Ejemplo: anulación de la configuración predeterminada del agente de contenedor de Amazon ECS
<a name="example-override-default-amazon-ecs-container-agent-configuration"></a>

**Example**  
Este archivo multiparte MIME de ejemplo anula la configuración de limpieza predeterminada de las imágenes de Docker de un recurso de computación.  

```
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="

--==MYBOUNDARY==
Content-Type: text/x-shellscript; charset="us-ascii"

#!/bin/bash
echo ECS_IMAGE_CLEANUP_INTERVAL=60m >> /etc/ecs/ecs.config
echo ECS_IMAGE_MINIMUM_CLEANUP_AGE=60m >> /etc/ecs/ecs.config

--==MYBOUNDARY==--
```

## Ejemplo: montar un sistema de archivos Amazon FSx for Lustre existente
<a name="example-mount-an-existing-amazon-fsx-for-lustre-file-system"></a>

**Example**  
Este ejemplo de archivo MIME de varias partes configura el recurso informático para instalar el `lustre2.10` paquete de la biblioteca Extras y montar un sistema de archivos existente FSx para Lustre en `/scratch` y con el nombre de montaje de. `fsx` Este ejemplo es para Amazon Linux 2. Para obtener instrucciones de instalación para otras distribuciones de Linux, consulte [Instalación del cliente de Lustre](https://docs.aws.amazon.com/fsx/latest/LustreGuide/install-lustre-client.html) en la Guía del usuario de *Amazon FSx for Lustre*. Para obtener más información, consulta Cómo [montar automáticamente el sistema de FSx archivos de Amazon](https://docs.aws.amazon.com/fsx/latest/LustreGuide/mount-fs-auto-mount-onreboot.html) en la *Guía del usuario de Amazon FSx for Lustre*.  

```
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="

--==MYBOUNDARY==
Content-Type: text/cloud-config; charset="us-ascii"

runcmd:
- file_system_id_01=fs-0abcdef1234567890
- region=us-east-2
- fsx_directory=/scratch
- amazon-linux-extras install -y lustre2.10
- mkdir -p ${fsx_directory}
- mount -t lustre ${file_system_id_01}.fsx.${region}.amazonaws.com@tcp:fsx ${fsx_directory}

--==MYBOUNDARY==--
```
En los miembros [volumes](https://docs.aws.amazon.com/batch/latest/APIReference/API_ContainerProperties.html#Batch-Type-ContainerProperties-volumes) y [mountPoints](https://docs.aws.amazon.com/batch/latest/APIReference/API_ContainerProperties.html#Batch-Type-ContainerProperties-mountPoints) de las propiedades del contenedor, se deben asignar los puntos de montaje al contenedor.  

```
{
    "volumes": [
        {
            "host": {
                "sourcePath": "/scratch"
            },
            "name": "Scratch"
        }
    ],
    "mountPoints": [
        {
            "containerPath": "/scratch",
            "sourceVolume": "Scratch"
        }
    ],
}
```

# Configuración del servicio de metadatos de instancias (IMDS)
<a name="imds-compute-environments"></a>

El servicio de metadatos de instancias (IMDS) brinda metadatos sobre las instancias de EC2 para las aplicaciones que se ejecutan en dichas instancias. Utilice IMDSv2 para todas las cargas de trabajo nuevas y migre las existentes de IMDSv1 a IMDSv2 para mejorar la seguridad. Para obtener más información sobre el IMDS y su configuración, consulte [Uso de los metadatos de la instancia para administrar su instancia de EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) y [Configurar las opciones de metadatos para instancias nuevas](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-IMDS-new-instances.html) en la *Guía del usuario de Amazon EC2*.

## Casos de configuración
<a name="imds-configuration-scenarios"></a>

Elija el método de configuración adecuado según la configuración de su entorno de computación:

### AMI predeterminada sin plantilla de lanzamiento
<a name="imds-default-ami-no-lt"></a>

Si utiliza la AMI predeterminada de AWS Batch y no especifica una plantilla de lanzamiento, elija una de estas opciones:

1. **Uso de la AMI predeterminada de Amazon Linux 2023**: Amazon Linux 2023 requiere IMDSv2 de forma predeterminada. Cuando se cree su entorno de computación, seleccione **Amazon Linux 2023** como tipo de imagen.

1. **Ajuste de la configuración de IMDSv2 a nivel de cuenta**: Configure su cuenta de AWS para que requiera IMDSv2 en todas las instancias nuevas. Esta configuración afecta a todas las instancias nuevas que se lancen en la cuenta. Para obtener instrucciones, consulte [Ajuste de IMDSv2 como valor predeterminado de la cuenta](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-IMDS-new-instances.html#set-imdsv2-account-defaults) en la *Guía del usuario de Amazon EC2*.
**nota**  
La configuración de IMDS a nivel de cuenta se puede anular mediante la plantilla de lanzamiento o la configuración de AMI. La configuración de plantilla de lanzamiento tiene prioridad sobre la configuración a nivel de cuenta.

### AMI personalizada sin plantilla de lanzamiento
<a name="imds-custom-ami-no-lt"></a>

Cuando utilice una AMI personalizada sin una plantilla de lanzamiento, elija una de estas opciones:

1. **Uso de Amazon Linux 2023 como base**: Cree su AMI personalizada con Amazon Linux 2023 como imagen base. Para obtener información acerca de cómo crear AMI personalizadas para Batch, consulte [Tutorial: creación de una AMI de recursos de computación](create-batch-ami.md).

1. **Configuración de IMDSv2 en la AMI personalizada**: Cuando cree su AMI personalizada, configúrela para que requiera IMDSv2. Para obtener instrucciones, consulte [Configurar las opciones de metadatos de la instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-IMDS-new-instances.html#configure-IMDS-new-instances-ami-configuration) en la *Guía del usuario de Amazon EC2*.

1. AWSServiceRoleForBatch **Ajuste de la configuración de IMDSv2 a nivel de cuenta**: Configure su cuenta de AWS para que requiera IMDSv2 en todas las instancias nuevas. Esta configuración afecta a todas las instancias nuevas que se lancen en la cuenta. Para obtener instrucciones, consulte [Ajuste de IMDSv2 como valor predeterminado de la cuenta](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-IMDS-new-instances.html#set-imdsv2-account-defaults) en la *Guía del usuario de Amazon EC2*.
**nota**  
La configuración de IMDS a nivel de cuenta se puede anular mediante la plantilla de lanzamiento o la configuración de AMI. La configuración de plantilla de lanzamiento tiene prioridad sobre la configuración a nivel de cuenta.

### Uso de plantillas de lanzamiento
<a name="imds-launch-template"></a>

Cuando utilice plantillas de lanzamiento en su entorno de computación, agregue opciones de metadatos a la plantilla de lanzamiento para que requiera IMDSv2. Para obtener más información acerca del uso de plantillas de lanzamiento con Batch, consulte [Utilice las plantillas de lanzamiento de Amazon EC2 con AWS Batch](launch-templates.md).

```
{
    "LaunchTemplateName": "batch-imdsv2-template",
    "VersionDescription": "IMDSv2 only template for Batch",
    "LaunchTemplateData": {
        "MetadataOptions": {
            "HttpTokens": "required"
        }
    }
}
```

Cómo crear la plantilla de lanzamiento con la CLI de AWS:

```
aws ec2 create-launch-template --cli-input-json file://imds-template.json
```

# Configuraciones de EC2
<a name="ec2-configurations"></a>

AWS Batch utiliza AMI optimizadas para Amazon ECS para entornos de computación EC2 y EC2 de spot. El predeterminado es [Amazon Linux 2](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#al2ami) (`ECS_AL2`). Desde enero de 2026, el valor predeterminado cambiará a [AL2023](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#al2023ami) (`ECS_AL2023`). 

AWS finalizará su compatibilidad con Amazon Linux 2. Le recomendamos migrar los entornos de computación de Amazon ECS de AWS Batch a Amazon Linux 2023 para mantener un rendimiento y una seguridad óptimos. Para obtener más información, consulte [Obsolescencia de la AMI de Amazon Linux 2 en Amazon ECS](ecs-al2-ami-deprecation.md).

Le recomendamos que actualice los entornos de computación actuales basados en Amazon Linux a Amazon Linux 2023 para evitar interrupciones imprevistas de la carga de trabajo y seguir recibiendo actualizaciones de seguridad u otro tipo.

Para obtener ayuda al migrar AWS Batch de la AMI de Amazon Linux a Amazon Linux 2023, consulte [Cómo migrar de ECS AL2 a ECS AL2023](ecs-migration-2023.md)

**Topics**
+ [Cómo migrar de ECS AL2 a ECS AL2023](ecs-migration-2023.md)

# Cómo migrar de ECS AL2 a ECS AL2023
<a name="ecs-migration-2023"></a>

AL2023 es un sistema operativo basado en Linux diseñado para proporcionar un entorno seguro, estable y de alto rendimiento para sus aplicaciones en la nube. Para obtener más información sobre las diferencias entre Amazon Linux 2023 AL2 y [Amazon Linux 2, AL2023 consulte Comparación entre Amazon Linux 2023 y Amazon Linux 2](https://docs.aws.amazon.com/linux/al2023/ug/compare-with-al2.html) en la *Guía del usuario de Amazon Linux 2023*.

**importante**  
A partir del 30 de junio de 2026, AWS Batch bloqueará la creación de nuevos entornos de cómputo de Amazon ECS mediante Amazon Linux 2 proporcionado por lotes. AMIs Recomendamos encarecidamente migrar sus entornos de cómputo de AWS Batch Amazon ECS existentes a Amazon Linux 2023 antes de esta fecha. Para obtener más información, consulte [Obsolescencia de la AMI de Amazon Linux 2 en Amazon ECS](ecs-al2-ami-deprecation.md).

El 12 de enero de 2026, AWS Batch cambié la AMI predeterminada para los nuevos entornos de cómputo de Amazon ECS de Amazon Linux 2 a Amazon Linux 2023 debido AWS a la [finalización del soporte para Amazon Linux 2](https://aws.amazon.com/amazon-linux-2/faqs/). La AMI predeterminada se utiliza cuando no se especifica un valor para el campo [imageType.Ec2Configuration](https://docs.aws.amazon.com/batch/latest/APIReference/API_Ec2Configuration.html) al crear un nuevo entorno de computación. Recomendamos migrar los entornos de cómputo de AWS Batch Amazon ECS a Amazon Linux 2023 para mantener un rendimiento y una seguridad óptimos.

Puede realizar un seguimiento del estado de la migración de los entornos informáticos de Amazon ECS afectados mediante los eventos del ciclo de vida planificado de AWS Health. Para obtener más información, consulte [AWS Eventos del ciclo de vida de Health Planned](batch-planned-lifecycle-events.md).

En función de cómo esté configurado su entorno informático, puede utilizar una de las siguientes rutas de actualización de AL2 a AL2023.

**Realice la actualización mediante Ec2Configuration. ImageType**
+ Si no está utilizando una plantilla de lanzamiento o anulaciones de plantillas de lanzamiento, cambie [Ec2Configuration. ImageType](https://docs.aws.amazon.com/batch/latest/APIReference/API_Ec2Configuration.html#Batch-Type-Ec2Configuration-imageType)a `ECS_AL2023` (o `ECS_AL2023_NVIDIA` cuando utilice instancias de GPU) y, a continuación, ejecute. [UpdateComputeEnvironment](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html) 
+ Si especifica una configuración [Ec2. ](https://docs.aws.amazon.com/batch/latest/APIReference/API_Ec2Configuration.html#Batch-Type-Ec2Configuration-imageIdOverride)ImageIdOverride[luego Ec2 Configuration. ImageType](https://docs.aws.amazon.com/batch/latest/APIReference/API_Ec2Configuration.html#Batch-Type-Ec2Configuration-imageType)debe coincidir con el tipo de AMI especificado en [Ec2Configuration. ImageIdOverride](https://docs.aws.amazon.com/batch/latest/APIReference/API_Ec2Configuration.html#Batch-Type-Ec2Configuration-imageIdOverride). 

  Si `ImageIdOverride` y `ImageType` no coinciden, entonces es probable que el entorno de computación no funcione correctamente. 

**Actualización con plantillas de lanzamiento**
+ Si utiliza una plantilla de lanzamiento que especifica una AMI basada en `ECS_AL2023`, asegúrese de que dicha plantilla sea compatible con Amazon Linux 2023. Para obtener información sobre los cambios de Amazon Linux 2023 con la AMI optimizada para Amazon ECS, consulte [Migración de una AMI de Amazon Linux 2 a una AMI de Amazon Linux 2023 optimizada para Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/al2-to-al2023-ami-transition.html) en la *Guía de usuario de Amazon ECS*.
+ Para ello AL2023 AMIs, compruebe que los datos de usuario personalizados o los scripts de inicialización sean compatibles con el AL2023 entorno y el sistema de administración de paquetes.

**Actualice mediante CloudFormation**
+ Si lo usas CloudFormation para administrar tus entornos de cómputo, actualiza tu plantilla para cambiar la `ImageType` propiedad `Ec2Configuration` de `ECS_AL2` a `ECS_AL2023` (o `ECS_AL2023_NVIDIA` cuando usas instancias de GPU):

  ```
  ComputeEnvironment:
    Type: AWS::Batch::ComputeEnvironment
    Properties:
      ComputeResources:
        Ec2Configuration:
          - ImageType: ECS_AL2023
  ```

  A continuación, actualiza tu CloudFormation pila para aplicar los cambios.
+ Si la CloudFormation plantilla especifica el uso de una AMI personalizada`ImageIdOverride`, asegúrese de que el ID de la AMI corresponde a una AMI AL2023 basada y coincide con la `ImageType` configuración.

## Consideraciones sobre la migración
<a name="ecs-migration-considerations"></a>

Al migrar de Amazon Linux 2 a Amazon Linux 2023, tenga presente lo siguiente:
+ **Administración de paquetes**: Amazon Linux 2023 usa `dnf` en vez de `yum` para la administración de paquetes.
+ **Servicios del sistema**: algunos servicios del sistema y sus configuraciones pueden diferir entre AL2 y AL2023.
+ **Tiempo de ejecución del contenedor**: ambos AL2 AL2023 son compatibles con Docker, pero AL2023 pueden tener diferentes configuraciones predeterminadas.
+ **Seguridad**: AL2023 incluye funciones de seguridad mejoradas y es posible que sea necesario actualizar las configuraciones relacionadas con la seguridad.
+ **Servicio de metadatos de instancias, versión 2 (IMDSv2)**: IMDSv2 es un servicio orientado a la sesión que requiere una autenticación basada en tokens para acceder a los metadatos de la instancia de EC2, lo que proporciona una seguridad mejorada. Para obtener más información sobre IMDS, consulte [Cómo funciona Instance Metadata Service versión 2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html#instance-metadata-v2-how-it-works) en la Guía del usuario de *Amazon EC2*.

Para obtener una lista completa de los cambios y las consideraciones sobre la migración, consulte [Migración de una AMI de Amazon Linux 2 a una AMI de Amazon Linux 2023 optimizada para Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/al2-to-al2023-ami-transition.html) en la *Guía del usuario de Amazon ECS*.

# Estrategias de asignación de tipos de instancia para AWS Batch
<a name="allocation-strategies"></a>

Cuando se crea un entorno informático gestionado, AWS Batch selecciona los tipos de instancia `[instanceTypes](https://docs.aws.amazon.com/batch/latest/APIReference/API_ComputeResource.html#Batch-Type-ComputeResource-instanceTypes)` especificados que mejor se adapten a las necesidades de los trabajos. La estrategia de asignación define el comportamiento cuando se AWS Batch necesita capacidad adicional. Este parámetro no es aplicable a trabajos que se ejecutan en recursos de Fargate. No las especifique en ambos lugares.

`BEST_FIT` (predeterminado)  
AWS Batch selecciona el tipo de instancia que mejor se adapte a las necesidades de los trabajos y prefiere el tipo de instancia de menor coste. Si no hay disponibles instancias adicionales del tipo de instancia seleccionado, AWS Batch espera a que estén disponibles las instancias adicionales. Si no hay suficientes instancias disponibles, o si el usuario alcanza los [Service Quotas de Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-resource-limits.html), no se ejecutarán trabajos adicionales hasta que finalicen aquellos que se estén ejecutando en ese momento. Esta estrategia de asignación mantiene los costos más bajos, pero puede limitar el escalado. Si está utilizando la flota de spot con `BEST_FIT`, el rol de IAM de la flota spot debe especificarse. `BEST_FIT` no se admite cuando se actualizan los entornos de computación. Para obtener más información, consulte [Actualizar un entorno informático en AWS Batch](updating-compute-environments.md).  
AWS Batch administra AWS los recursos de su cuenta. Los entornos de computación con la estrategia de asignación BEST\$1FIT utilizaban originalmente configuraciones de lanzamiento de forma predeterminada. Sin embargo, el uso de configuraciones de inicio con AWS cuentas nuevas se restringirá con el tiempo. Por lo tanto, desde finales de abril de 2024, los entornos de computación BEST\$1FIT recién creados lanzarán plantillas de forma predeterminada. Si su función de servicio no tiene permisos para administrar las plantillas de lanzamiento, AWS Batch puede seguir utilizando las configuraciones de lanzamiento. Los entornos de computación existentes seguirán utilizando las configuraciones de lanzamiento.

`BEST_FIT_PROGRESSIVE`  
AWS Batch selecciona tipos de instancias adicionales que sean lo suficientemente grandes como para cumplir con los requisitos de los trabajos de la cola. Se prefieren los tipos de instancias con un costo menor para cada unidad de vCPU. Si las instancias adicionales de los tipos de instancia previamente seleccionados no están disponibles, AWS Batch selecciona nuevos tipos de instancia.  
Para los [trabajos paralelos de varios nodos](multi-node-parallel-jobs.md), AWS Batch elige el tipo de instancia óptimo disponible. Si el tipo de instancia deja de estar disponible debido a la capacidad insuficiente, no se lanzarán otros tipos de instancias del grupo.

`SPOT_CAPACITY_OPTIMIZED`  
AWS Batch selecciona uno o más tipos de instancias que son lo suficientemente grandes como para cumplir con los requisitos de los trabajos de la cola. Se prefieren los tipos de instancias que tienen menos probabilidades de interrumpirse. Esta estrategia de asignación solo está disponible para los recursos de computación de instancia de spot.

`SPOT_PRICE_CAPACITY_OPTIMIZED`  
La estrategia de asignación optimizada por precio y capacidad analiza tanto el precio como la capacidad para seleccionar los grupos de instancias de spot que tienen menos probabilidades de interrupción y el precio más bajo posible. Esta estrategia de asignación solo está disponible para los recursos de computación de instancia de spot.  
Le recomendamos que utilice `SPOT_PRICE_CAPACITY_OPTIMIZED` en vez de `SPOT_CAPACITY_OPTIMIZED` la mayoría de los casos.

Las estrategias `BEST_FIT_PROGRESSIVE` y `BEST_FIT` utilizan instancias de spot o de bajo demanda, y las estrategias `SPOT_CAPACITY_OPTIMIZED` y `SPOT_PRICE_CAPACITY_OPTIMIZED` utilizan instancias de spot. Sin embargo, AWS Batch es posible que deba superarlos `maxvCpus` para cumplir con sus requisitos de capacidad. En este caso, AWS Batch nunca supere `maxvCpus` en más de una instancia.

# Administración de la memoria de recurso de computación
<a name="memory-management"></a>

Cuando el agente de contenedores de Amazon ECS registra un recurso de computación en un entorno de computación, el agente debe determinar cuánta memoria tiene disponible el recurso de computación para reservarla para sus trabajos. Debido a la sobrecarga de memoria de la plataforma y a la memoria ocupada por el núcleo del sistema, este número es diferente de la cantidad de memoria instalada para las instancias de Amazon EC2. Por ejemplo, una instancia `m4.large` tiene 8 GiB de memoria instalada. Sin embargo, esto no siempre se traduce en exactamente 8192 MiB de memoria disponible para los trabajos cuando se registra el recurso de computación.

Suponga que especifica 8192 MiB para el trabajo y que ninguno de sus recursos de computación tiene 8192 MiB o más de memoria disponible para cumplir este requisito. Entonces, el trabajo no se puede colocar en su entorno de computación. Si está utilizando un entorno de computación gestionado, AWS Batch debe lanzar un tipo de instancia mayor para dar cabida a la solicitud.

La AMI predeterminada de recursos de computación de AWS Batch también reserva 32 MiB de memoria para el agente de contenedor de Amazon ECS y otros procesos críticos del sistema. Esta memoria no está disponible para la asignación de trabajos. Para obtener más información, consulte [Reserva de memoria del sistema](ecs-reserved-memory.md).

El agente de contenedor de Amazon ECS utiliza la función `ReadMemInfo()` de Docker para consultar la memoria total disponible al sistema operativo. Linux proporciona utilidades de línea de comandos para determinar la memoria total.

**Example - Determinar la memoria total en Linux**  
El comando **free** devuelve la memoria total reconocida por el sistema operativo.  

```
$ free -b
```
A continuación, se muestra un ejemplo de salida para una instancia `m4.large` que ejecuta la AMI de Amazon Linux optimizada para Amazon ECS.  

```
             total       used       free     shared    buffers     cached
Mem:    8373026816  348180480 8024846336      90112   25534464  205418496
-/+ buffers/cache:  117227520 8255799296
```
Esta instancia tiene 8373026816 bytes de memoria total. Esto significa que hay 7985 MiB disponibles para tareas.

**Topics**
+ [Reserva de memoria del sistema](ecs-reserved-memory.md)
+ [Tutorial: visualización de la memoria de recurso de computación](viewing-memory.md)
+ [Consideraciones sobre memoria y vCPU para AWS Batch en Amazon EKS](memory-cpu-batch-eks.md)

# Reserva de memoria del sistema
<a name="ecs-reserved-memory"></a>

Si ocupa toda la memoria de un recurso de computación con sus trabajos, es posible que estos compitan por la memoria con procesos críticos del sistema y provoquen un fallo del sistema. El agente contenedor Amazon ECS proporciona una variable de configuración que se denomina `ECS_RESERVED_MEMORY`. Puede utilizar esta variable de configuración para eliminar un número determinado de MiB de memoria del pool asignado a sus trabajos. Este es un mecanismo eficaz que permite reservar memoria para los procesos críticos del sistema.

La AMI predeterminada de recursos de computación de AWS Batch reserva 32 MiB de memoria para el agente de contenedor de Amazon ECS y otros procesos críticos del sistema. Recomendamos reservar un búfer de memoria del 5 % para el agente de contenedor de Amazon ECS y otros procesos esenciales del sistema.

# Tutorial: visualización de la memoria de recurso de computación
<a name="viewing-memory"></a>

Puede ver con cuánta memoria registra un recurso de computación en la consola de Amazon ECS o con la operación de la API [DescribeContainerInstances](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html). Si intenta maximizar la utilización de sus recursos proporcionando a sus trabajos tanta memoria como sea posible para un tipo de instancia en particular, puede observar la memoria disponible para ese recurso de computación y luego asignar a sus trabajos esa cantidad de memoria.

**Para ver la memoria de recurso de computación**

1. Abra la consola en [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

1. Elija **Clústeres** y, a continuación, elija el clúster que aloja los recursos de computación que desee ver.

   El nombre del clúster del entorno de computación comienza por el nombre del entorno de computación.

1. Elija **Infraestructura**.

1. En **Instancias de contenedor**, elija la instancia de contenedor.

1. La sección **Recursos y redes** muestra la memoria registrada y disponible para el recurso de computación.

   El valor de memoria de la **Capacidad total** es lo que el recurso de computación registró con Amazon ECS cuando se lanzó por primera vez, y el valor de memoria **Disponible** es lo que aún no se ha asignado a los trabajos.

# Consideraciones sobre memoria y vCPU para AWS Batch en Amazon EKS
<a name="memory-cpu-batch-eks"></a>

En AWS Batch en Amazon EKS, puede especificar los recursos que se ponen a disposición de un contenedor. Por ejemplo, puede especificar los valores `requests` o `limits` para los recursos vCPU y memoria.

Las siguientes son restricciones para especificar los recursos de vCPU:
+ Debe especificarse al menos una vCPU de valor `requests` o `limits`.
+ Una unidad vCPU equivale a un núcleo físico o virtual. 
+ El valor de vCPU debe introducirse en números enteros o en incrementos de 0,25. 
+ El valor de vCPU válido más bajo es 0,25.
+ Si se especifican ambos, el valor `requests` debe ser menor o igual que el valor `limits`. De esta forma, puede configurar configuraciones de vCPU flexibles e invariables.
+ Los valores de vCPU no se pueden especificar en formato milliCPU. Por ejemplo, `100m` no es un valor válido.
+ AWS Batch utiliza el valor `requests` para tomar decisiones de escalado. Si no se especifica un valor `requests`, el valor `limits` se copia al valor `requests`.

Las siguientes son restricciones para especificar los recursos de memoria:
+ Debe especificarse al menos una memoria de valor `requests` o `limits`.
+ Los valores de memoria deben estar en mebibytes (MiBs).
+ Si se especifican ambos, el valor `requests` debe ser igual que el valor `limits`.
+ AWS Batch utiliza el valor `requests` para tomar decisiones de escalado. Si no se especifica un valor `requests`, el valor `limits` se copia al valor `requests`.

Las siguientes son restricciones para especificar los recursos de GPU:
+ Si se especifican ambos, el valor `requests` debe ser igual que el valor `limits`.
+ AWS Batch utiliza el valor `requests` para tomar decisiones de escalado. Si no se especifica un valor `requests`, el valor `limits` se copia al valor `requests`.

## Ejemplo: definiciones de trabajo
<a name="memory-cpu-batch-eks-example-job-definition"></a>

La siguiente AWS Batch de Amazon EKS configura los recursos compartidos de vCPU flexibles. Esto permite a AWS Batch de Amazon EKS utilizar toda la capacidad de vCPU para el tipo de instancia. Sin embargo, si hay otros trabajos en ejecución, al trabajo se le asigna un máximo de `2` vCPU. La memoria está limitada a 2 GB.

```
{
   "jobDefinitionName": "MyJobOnEks_Sleep",
   "type": "container",
   "eksProperties": {
       "podProperties": {
           "containers": [
               {
                   "image": "public.ecr.aws/amazonlinux/amazonlinux:2",
                   "command": ["sleep", "60"],
                   "resources": {
                       "requests": {
                           "cpu": "2",
                           "memory": "2048Mi"
                       }
                   }
               }
           ]
       }
   }
}
```

La siguiente AWS Batch de trabajo de Amazon EKS tiene un `request` valor de `1` y asigna un máximo de `4` vCPU al trabajo.

```
{
   "jobDefinitionName": "MyJobOnEks_Sleep",
   "type": "container",
   "eksProperties": {
       "podProperties": {
           "containers": [
               {
                   "image": "public.ecr.aws/amazonlinux/amazonlinux:2",
                   "command": ["sleep", "60"],
                   "resources": {
                       "requests": {
                           "cpu": "1"
                       },
                       "limits": {
                           "cpu": "4",
                           "memory": "2048Mi"
                       }
                   }
               }
           ]
       }
   }
}
```

La siguiente AWS Batch de trabajo de Amazon EKS establece un valor de vCPU `limits` de `1` y un valor de memoria `limits` de 1 GB.

```
{
   "jobDefinitionName": "MyJobOnEks_Sleep",
   "type": "container",
   "eksProperties": {
       "podProperties": {
           "containers": [
               {
                   "image": "public.ecr.aws/amazonlinux/amazonlinux:2",
                   "command": ["sleep", "60"],
                   "resources": {
                       "limits": {
                           "cpu": "1",
                           "memory": "1024Mi"
                       }
                   }
               }
           ]
       }
   }
}
```

Cuando AWS Batch traduce un AWS Batch en Amazon EKS a un pod de Amazon EKS, AWS Batch copia el valor `limits` al valor `requests`. Esto ocurre si no se especifica un valor `requests`. Al enviar la definición de trabajo del ejemplo anterior, el pod `spec` es el siguiente.

```
apiVersion: v1
kind: Pod
...
spec:
  ...
  containers:
    - command:
        - sleep
        - 60
      image: public.ecr.aws/amazonlinux/amazonlinux:2
      resources:
        limits:
          cpu: 1
          memory: 1024Mi
        requests:
          cpu: 1
          memory: 1024Mi
      ...
```

## Reservas de CPU y memoria de los nodos
<a name="memory-cpu-batch-eks-node-cpu-memory-reservations"></a>

AWS Batch se basa en la lógica predeterminada del archivo `bootstrap.sh` para las reservas de vCPU y memoria. Para obtener más información sobre el archivo `bootstrap.sh`, consulte [bootstrap.sh](https://github.com/awslabs/amazon-eks-ami/blob/main/templates/al2/runtime/bootstrap.sh). Al ajustar el tamaño de los recursos de vCPU y memoria, tenga en cuenta los ejemplos siguientes.

**nota**  
Si no se está ejecutando ninguna instancia, las reservas de vCPU y memoria pueden afectar inicialmente a la lógica de escalado de AWS Batch y a la toma de decisiones. Una vez ejecutadas las instancias, AWS Batch ajusta las asignaciones iniciales.

## Ejemplo: reserva de CPU de nodo
<a name="memory-cpu-batch-eks-node-cpu-reservations"></a>

El valor de reserva de CPU se calcula en milinúcleos mediante la cantidad total de vCPU disponibles para la instancia.


| Número de vCPU | Porcentaje reservado | 
| --- | --- | 
| 1 | 6 % | 
| 2 | 1 % | 
| 3-4 | 0,5% | 
| 4 y superior | 0,25 % | 

Si se utilizan los valores anteriores, se aplica lo siguiente:
+ El valor de reserva de CPU para una instancia `c5.large` con 2 vCPU es de 70 m. Se calcula de la siguiente manera: *(1\$160) \$1 (1\$110) = 70 m*.
+ El valor de reserva de CPU para una instancia `c5.24xlarge` con 96 vCPU es de 310 m. Se calcula de la siguiente manera: (1\$160) \$1 (1\$110) \$1 (2\$15) \$1 (92\$12.5) = 310 m.

En este ejemplo, hay 1930 unidades de vCPU milicore (calculadas entre 2000 y 70) disponibles para ejecutar trabajos en una instancia `c5.large`. Supongamos que su trabajo requiere unidades vCPU `2` (2\$11000 m), el trabajo no cabe en una sola instancia `c5.large`. Sin embargo, un trabajo que requiere unidades de vCPU `1.75` es adecuado.

## Ejemplo: reserva de memoria de nodo
<a name="memory-cpu-batch-eks-node-memory-reservations"></a>

El valor de reserva de memoria se calcula en mebibytes de la siguiente manera:
+ Capacidad de la instancia en mebibytes. Por ejemplo, una instancia de 8 GB equivale a 7,748 MiB.
+ El valor `kubeReserved`. El valor `kubeReserved` es la cantidad de memoria que se debe reservar para los daemon del sistema. El valor `kubeReserved` se calcula de la siguiente manera: *((11 \$1 número máximo de pods que admite el tipo de instancia) \$1 255)*. Para obtener información sobre el número máximo de pods que admite un tipo de instancia, consulte [eni-max-pods.txt](https://github.com/awslabs/amazon-eks-ami/blob/main/nodeadm/internal/kubelet/eni-max-pods.txt) 
+ El valor `HardEvictionLimit`. Cuando la memoria disponible cae por debajo del valor `HardEvictionLimit`, la instancia intenta expulsar los pods.

La fórmula para calcular la memoria asignable es la siguiente: (*instance\$1capacity\$1in\$1MiB*) - (11 \$1 (*maximum\$1number\$1of\$1pods*)) - 255 - (*`HardEvictionLimit` value.*)).

 Una instancia `c5.large` admite hasta 29 pods. Para una instancia `c5.large` de 8 GB con un valor `HardEvictionLimit` de 100 MiB, la memoria asignable es 7074 MiB. Esto se calcula de la siguiente manera: *(7748 - (11 \$1 29) -255 -100) = 7074 MiB*. En este ejemplo, un trabajo MiB de 8192 no cabe en esta instancia aunque sea una instancia 8 gibibyte (GiB).

## DaemonSets
<a name="memory-cpu-batch-eks-reservations-daemonset-scaling"></a>

Cuando utilice DaemonSets, tenga en cuenta lo siguiente:
+ Si no se está ejecutando ninguna instancia AWS Batch de Amazon EKS, DaemonSets puede afectar inicialmente a la lógica del escalado y a la toma de decisiones de AWS Batch. AWS Batch inicialmente asigna 0,5 unidades de vCPU y 500 MiB para DaemonSets previsto. Una vez ejecutadas las instancias, AWS Batch ajusta las asignaciones iniciales.
+ Si DaemonSet define los límites de vCPU o memoria, los AWS Batch en Amazon EKS tienen menos recursos. Le recomendamos que mantenga el número de DaemonSets asignados a los AWS Batch trabajos lo más bajo posible.

# Entornos de computación en Fargate
<a name="fargate"></a>

Fargate es una tecnología que puede utilizar AWS Batch para ejecutar [contenedores](https://aws.amazon.com/what-are-containers) sin tener que gestionar servidores o clústeres de instancias de Amazon EC2. Con Fargate, ya no tendrá que aprovisionar, configurar ni escalar clústeres de máquinas virtuales para ejecutar los contenedores. De esta manera, se elimina la necesidad de elegir tipos de servidores, decidir cuándo escalar los clústeres u optimizar conjuntos de clústeres.

Al ejecutar los trabajos con los recursos de Fargate, la aplicación se empaqueta en contenedores, se especifican los requisitos de CPU y de memoria, se definen las políticas de IAM y de redes y se lanza la aplicación. Cada trabajo de Fargate tiene su propio límite de aislamiento y no comparte el kernel subyacente, los recursos de CPU, los recursos de memoria ni la interfaz de red elástica con otro trabajo.

Fargate solo está disponible para entornos AWS Batch informáticos que utilizan Amazon ECS como orquestador. Fargate no es compatible con los entornos informáticos de AWS Batch Amazon EKS. Para obtener más información, consulte [Entornos de computación de Amazon EKS](eks.md).

**Topics**
+ [Cuándo usar Fargate](when-to-use-fargate.md)
+ [Definiciones de trabajo en Fargate](fargate-job-definitions.md)
+ [Colas de trabajo en Fargate](fargate-job-queues.md)
+ [Entornos de computación en Fargate](fargate-compute-environments.md)

# Cuándo usar Fargate
<a name="when-to-use-fargate"></a>

Recomendamos usar Fargate en la mayoría de los casos. Fargate lanza y escala el cómputo para que se ajuste perfectamente a los requisitos de recursos que especifique para el contenedor. Con Fargate, no es necesario aprovisionar en exceso los servidores ni pagar por ellos. Tampoco tiene que preocuparse por los detalles de los parámetros relacionados con la infraestructura, como el tipo de instancia. Cuando es necesario escalar verticalmente el entorno de cómputo, los trabajos que se ejecutan en los recursos de Fargate pueden comenzar más rápidamente. Por lo general, se tardará unos minutos hasta que se lance la instancia de Amazon EC2. Sin embargo, los trabajos que se ejecutan en Fargate se pueden aprovisionar en unos 30 segundos. El tiempo exacto necesario depende de varios factores, como el tamaño de la imagen del contenedor y la cantidad de trabajos.

No obstante, recomendamos utilizar Amazon EC2 si sus trabajos requieren cualquiera de las siguientes opciones:
+ Más de 16 v CPUs
+ Más de 120 gibibytes (GiB) de memoria
+ Una GPU
+ Imagen de máquina de Amazon (AMI) personalizada
+ Alguno de los parámetros de [LinuxParameters](job_definition_parameters.md#ContainerProperties-linuxParameters)

Si tiene un gran número de trabajos, le recomendamos utilizar la infraestructura de Amazon EC2. Por ejemplo, si el número de trabajos que se ejecutan simultáneamente supera la limitación de regulación de Fargate. Esto se debe a que, con EC2, los trabajos se pueden enviar a un ritmo mayor a los recursos de EC2 que a los recursos de Fargate. Además, se pueden ejecutar más trabajos de forma simultánea cuando se utiliza EC2. Para obtener más información, consulte [Cuotas de servicio de Fargate](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-quotas.html#service-quotas-fargate) en la *Guía para desarrolladores de Amazon Elastic Container Service*.

# Definiciones de trabajo en Fargate
<a name="fargate-job-definitions"></a>

AWS Batch los trabajos AWS Fargate activados no admiten todos los parámetros de definición de trabajos disponibles. Algunos parámetros no son compatibles, y otros se comportan de forma distinta para trabajos de Fargate.

La siguiente lista describe los parámetros de definición de trabajo que no son válidos o están restringidos de otro modo en los trabajos de Fargate.

`platformCapabilities`  
Debe especificarse como `FARGATE`.  

```
"platformCapabilities": [ "FARGATE" ]
```

`type`  
Debe especificarse como `container`.  

```
"type": "container"
```

Parámetros de `containerProperties`    
`executionRoleArn`  
Debe especificarse para trabajos que se ejecutan en recursos de Fargate. Para obtener más información, consulte [Roles de IAM para tareas](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) en la *Guía para desarrolladores de Amazon Elastic Container Service*.  

```
"executionRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole"
```  
`fargatePlatformConfiguration`  
(Opcional, solo para las definiciones de trabajo de Fargate). Especifica la versión de la plataforma Fargate o `LATEST` para una versión reciente de la plataforma. Los valores posibles de `platformVersion` son `1.3.0`, `1.4.0` y `LATEST` (predeterminado).  

```
"fargatePlatformConfiguration": { "platformVersion": "1.4.0" }
```

`instanceType``ulimits`  
No se aplica a trabajos que se ejecutan en recursos de Fargate.

`memory``vcpus`  
Esta configuración debe especificarse en `resourceRequirements`

`privileged`  
No especifique este parámetro o especifique `false`.  

```
"privileged": false
```

`resourceRequirements`  
Los requisitos de memoria y vCPU deben especificarse mediante los [valores admitidos](job_definition_parameters.md#ContainerProperties-resourceRequirements-Fargate-memory-vcpu). Los recursos de GPU no son compatibles con los recursos de Fargate.  
Si utiliza GuardDuty Runtime Monitoring, el agente de GuardDuty seguridad tiene una ligera sobrecarga de memoria. Por lo tanto, el límite de memoria debe incluir el tamaño del agente de GuardDuty seguridad. Para obtener información sobre los límites de memoria del agente de GuardDuty seguridad, consulte los [límites de CPU y memoria](https://docs.aws.amazon.com/guardduty/latest/ug/prereq-runtime-monitoring-ecs-support.html#ecs-runtime-agent-cpu-memory-limits) en la *Guía del GuardDuty usuario*. Para obtener información sobre las prácticas recomendadas, consulte [Cómo solucionar los errores de falta de memoria en mis tareas de Fargate después de activar Runtime Monitoring](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-guard-duty-troubleshooting.html#memory-error) en la *Guía para desarrolladores de Amazon ECS*.  

```
"resourceRequirements": [
  {"type": "MEMORY", "value": "512"},
  {"type": "VCPU",   "value": "0.25"}
]
```

Parámetros de `linuxParameters`    
`devices``maxSwap``sharedMemorySize``swappiness``tmpfs`  
No se aplica a trabajos que se ejecutan en recursos de Fargate.

Parámetros de `logConfiguration`    
`logDriver`  
Solo se admiten `awslogs` y `splunk`. Para obtener más información, consulte [Uso del controlador de registros awslogs](using_awslogs.md).

Miembros en `networkConfiguration`    
`assignPublicIp`  
Si la subred privada no tiene una puerta de enlace NAT conectada para enviar tráfico a Internet, `[assignPublicIp](https://docs.aws.amazon.com/batch/latest/APIReference/API_NetworkConfiguration.html#Batch-Type-NetworkConfiguration-assignPublicIp)` debe ser “`ENABLED`”. Para obtener más información, consulte [AWS Batch Función de ejecución de IAM](execution-IAM-role.md).

# Colas de trabajo en Fargate
<a name="fargate-job-queues"></a>

AWS Batch las colas de trabajos activas AWS Fargate prácticamente no cambian. La única restricción es que todos los entornos de computación que aparecen en la lista en `computeEnvironmentOrder` deben ser entornos de computación de Fargate (`FARGATE` o `FARGATE_SPOT`). Los entornos de computación de EC2 y Fargate no se pueden mezclar.

# Entornos de computación en Fargate
<a name="fargate-compute-environments"></a>

AWS Batch los entornos de cómputo activados AWS Fargate no admiten todos los parámetros del entorno de cómputo disponibles. Algunos parámetros no son compatibles. Otros tienen requisitos específicos para Fargate.

La siguiente lista describe los parámetros de entorno de computación que no son válidos o están restringidos de otro modo en los trabajos de Fargate.

`type`  
Este parámetro debe establecerse en `MANAGED`.  

```
"type": "MANAGED"
```

Parámetros del objeto `computeResources`    
`allocationStrategy``bidPercentage``desiredvCpus``imageId``instanceTypes``ec2Configuration``ec2KeyPair``instanceRole``launchTemplate``minvCpus``placementGroup``spotIamFleetRole`  
No se aplican a los entornos de computación de Fargate y no se pueden proporcionar.  
`subnets`  
Si las subredes enumeradas en este parámetro no tienen puertas de enlace NAT conectadas, el parámetro `assignPublicIp` de la definición del trabajo debe estar establecido en `ENABLED`.  
`tags`  
Esto no se aplica a los entornos de computación de Fargate y no se puede proporcionar. Para especificar etiquetas para los entornos de computación de Fargate, use el parámetro `tags` que no está en el objeto `computeResources`.  
`type`  
Debe ser `FARGATE` o `FARGATE_SPOT`.  

```
"type": "FARGATE_SPOT"
```

# Entornos de computación de Amazon EKS
<a name="eks"></a>

[Cómo empezar con AWS Batch Amazon EKS](getting-started-eks.md) proporciona una breve guía para crear entornos de cómputo de EKS. En esta sección se proporcionan más detalles sobre los entornos de computación de Amazon EKS.

![\[AWS Batch workflow diagram showing integration with Amazon EKS, ECS, Fargate, and EC2.\]](http://docs.aws.amazon.com/es_es/batch/latest/userguide/images/batch-on-eks.png)


AWS Batch simplifica las cargas de trabajo por lotes en los clústeres de Amazon EKS al proporcionar funciones de gestión por lotes. Esto incluye la creación de colas, el seguimiento de las dependencias, la gestión de los reintentos y las prioridades de los trabajos, la gestión de los pods y el escalado de los nodos. AWS Batch puede gestionar varias zonas de disponibilidad y varios tipos y tamaños de instancias de Amazon EC2. AWS Batch integra varias de las prácticas recomendadas de Amazon EC2 Spot para ejecutar sus cargas de trabajo de forma tolerante a errores, lo que permite reducir las interrupciones. Puede utilizar AWS Batch para ejecutar un puñado de trabajos de un día para otro o millones de trabajos de misión crítica con total confianza.

![\[AWS Batch workflow on Amazon EKS, showing job queue, compute environment, and EC2 instances.\]](http://docs.aws.amazon.com/es_es/batch/latest/userguide/images/batch-on-eks-detail.png)


AWS Batch es un servicio gestionado que organiza las cargas de trabajo por lotes en Kubernetes los clústeres gestionados por Amazon Elastic Kubernetes Service (Amazon EKS). AWS Batch lleva a cabo esta organización de forma externa a sus clústeres mediante un modelo de «superposición». Como AWS Batch se trata de un servicio gestionado, no hay Kubernetes componentes (por ejemplo, operadores o recursos personalizados) que instalar o gestionar en el clúster. AWS Batch solo necesita que el clúster esté configurado con controles de acceso basados en roles (RBAC) que permitan AWS Batch comunicarse con el servidor de API. Kubernetes AWS Batch llamadas Kubernetes APIs para crear, monitorear y eliminar Kubernetes pods y nodos.

AWS Batch tiene una lógica de escalado integrada para escalar Kubernetes los nodos en función de la carga de la cola de trabajos con optimizaciones en términos de asignación de la capacidad de trabajo. Cuando la cola de trabajos esté vacía, reduce la AWS Batch escala de los nodos hasta alcanzar la capacidad mínima que haya establecido, que de forma predeterminada es cero. AWS Batch gestiona todo el ciclo de vida de estos nodos y los decora con etiquetas y manchas. De esta forma, no se colocan otras Kubernetes cargas de trabajo en los nodos gestionados por. AWS Batch La excepción son las `DaemonSets` que pueden dirigirse a AWS Batch los nodos para proporcionar supervisión y otras funciones necesarias para la correcta ejecución de las tareas. Además, AWS Batch no ejecuta trabajos, específicamente pods, en los nodos del clúster que no administra. De esta forma, puede usar una lógica de escalado y servicios independientes para otras aplicaciones del clúster.

Para enviar trabajos AWS Batch, interactúas directamente con la AWS Batch API. AWS Batch traduce los trabajos en `podspecs` y, a continuación, crea las solicitudes para colocar pods en los nodos gestionados por AWS Batch su clúster de Amazon EKS. Puede utilizar herramientas como, por ejemplo, `kubectl` para ver los nodos y los pods en ejecución. Cuando un pod ha completado su ejecución, AWS Batch elimina el pod que creó para mantener una carga menor en el Kubernetes sistema.

Puede empezar conectando un clúster de Amazon EKS válido con AWS Batch. A continuación, adjúntele una cola de AWS Batch trabajos y registre una definición de trabajo de Amazon EKS con atributos `podspec` equivalentes. Por último, envíe los trabajos mediante la operación de [SubmitJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitJob.html)API que hace referencia a la definición del trabajo. Para obtener más información, consulte [Cómo empezar con AWS Batch Amazon EKS](getting-started-eks.md).

AWS Batch en Amazon EKS admite instancias de Amazon EC2 (On-Demand y Spot) como recursos informáticos. Para usar Fargate con AWS Batch, en su lugar, utilice un entorno de cómputo Amazon ECS. Para obtener más información, consulte [Entornos de computación en Fargate](fargate.md).

## Amazon EKS
<a name="compute-environments-eks"></a>

**Topics**
+ [Amazon EKS](#compute-environments-eks)
+ [AMI predeterminada de Amazon EKS](eks-ce-ami-selection.md)
+ [Entornos de AMI mixtos](mixed-ami-environments.md)
+ [Versiones de Kubernetes compatibles](supported_kubernetes_version.md)
+ [Actualización de la versión Kubernetes del entorno de computación.](updating-k8s-version-ce.md)
+ [Responsabilidad compartida de los nodos Kubernetes](eks-ce-shared-responsibility.md)
+ [Ejecute un DaemonSet nodo AWS Batch gestionado](daemonset-on-batch-eks-nodes.md)
+ [Personalización de plantillas de lanzamiento de Amazon EKS](eks-launch-templates.md)
+ [¿Cómo actualizar de EKS AL2 a EKS AL2023](eks-migration-2023.md)

# AMI predeterminada de Amazon EKS
<a name="eks-ce-ami-selection"></a>

Al crear un entorno informático Amazon EKS, no necesita especificar una imagen de máquina de Amazon (AMI). AWS Batch selecciona una AMI optimizada para Amazon EKS en función de los tipos de Kubernetes versión e instancia que se especifican en la [CreateComputeEnvironment](https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateComputeEnvironment.html)solicitud. En general, recomendamos que utilice la selección de AMI predeterminada. Para obtener información sobre la prioridad de selección de la AMI, consulte[Orden de selección AMI](ami-selection-order.md). Para obtener más información sobre Amazon EKS optimizado AMIs, consulte [Amazon Linux optimizado para Amazon EKS AMIs](https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html) en la *Guía del usuario de Amazon EKS*.

**importante**  
Amazon Linux 2023 AMIs es la opción predeterminada AWS Batch para Amazon EKS.  
AWS finalizará el soporte para Amazon EKS AL2 (optimizado y AL2 acelerado) a partir del 26 de noviembre de AMIs 2025. Puede seguir utilizando Amazon Linux 2 optimizado para Amazon EKS AWS Batch proporcionado AMIs en sus entornos informáticos de Amazon EKS después de la end-of-support fecha del 26 de noviembre del 25 de noviembre; sin embargo, estos entornos informáticos ya no recibirán nuevas actualizaciones de software, parches de seguridad ni correcciones de errores de parte de estos. AWS*Para obtener más información sobre la actualización de AL2 a AL2023, consulte la Guía del [¿Cómo actualizar de EKS AL2 a EKS AL2023](eks-migration-2023.md)AWS Batch usuario.*

Ejecute el siguiente comando para ver qué tipo de AMI AWS Batch ha seleccionado para su entorno informático Amazon EKS. El siguiente ejemplo es un tipo de instancia que no es de GPU.

```
# compute CE example: indicates Batch has chosen the AL2 x86 or ARM EKS 1.32 AMI, depending on instance types
    $ aws batch describe-compute-environments --compute-environments My-Eks-CE1 \
        | jq '.computeEnvironments[].computeResources.ec2Configuration'
    [
      {
        "imageType": "EKS_AL2",
        "imageKubernetesVersion": "1.32"
      }
    ]
```

El siguiente ejemplo es un tipo de instancia de GPU.

```
# GPU CE example: indicates Batch has choosen the AL2 x86 EKS Accelerated 1.32 AMI
    $ aws batch describe-compute-environments --compute-environments My-Eks-GPU-CE \
        | jq '.computeEnvironments[].computeResources.ec2Configuration'
    [
      {
        "imageType": "EKS_AL2_NVIDIA",
        "imageKubernetesVersion": "1.32"
      }
    ]
```

# Entornos de AMI mixtos
<a name="mixed-ami-environments"></a>

Puede utilizar las anulaciones de plantillas de lanzamiento para crear entornos de cómputo tanto con Amazon Linux 2 (AL2) como con Amazon Linux 2023 (AL2023) AMIs. Esto resulta útil si se utilizan diferentes arquitecturas AMIs para distintas arquitecturas o durante los períodos de migración durante la transición de a. AL2 AL2023

**nota**  
AWS finalizará el soporte para Amazon EKS AL2 (optimizado y AL2 acelerado) a partir del 26 de noviembre de AMIs 2025. Si bien puede seguir utilizando Amazon Linux 2 optimizado para Amazon EKS AWS Batch proporcionado AMIs en sus entornos informáticos de Amazon EKS más allá de la end-of-support fecha del 26 de noviembre del 25 de noviembre, estos entornos informáticos ya no recibirán nuevas actualizaciones de software, parches de seguridad ni correcciones de errores de parte de ellos. AWS Los entornos de AMI mixtos pueden resultar útiles durante el período de transición, ya que le permiten migrar gradualmente las cargas de trabajo y, al AL2023 mismo tiempo, mantener la compatibilidad con las cargas de trabajo AL2 basadas en las existentes.

Ejemplo de configuración con ambos tipos de AMI:

```
{
  "computeResources": {
    "launchTemplate": {
      "launchTemplateId": "TemplateId",
      "version": "1",
      "userdataType": "EKS_BOOTSTRAP_SH",
      "overrides": [
        {
          "instanceType": "c5.large",
          "imageId": "ami-al2-custom",
          "userdataType": "EKS_BOOTSTRAP_SH"
        },
        {
          "instanceType": "c6a.large",
          "imageId": "ami-al2023-custom",
          "userdataType": "EKS_NODEADM"
        }
      ]
    },
    "instanceTypes": ["c5.large", "c6a.large"]
  }
}
```

# Versiones de Kubernetes compatibles
<a name="supported_kubernetes_version"></a>

AWS Batch en Amazon EKS actualmente es compatible con las siguientes Kubernetes versiones:
+ `1.34`
+ `1.33`
+ `1.32`
+ `1.31`
+ `1.30`
+ `1.29`

Es posible que aparezca un mensaje de error similar al siguiente cuando utilice la operación de `CreateComputeEnvironment` API o la operación de `UpdateComputeEnvironment` API para crear o actualizar un entorno de computación. Este problema se produce si especifica una versión de Kubernetes no compatible en `EC2Configuration`.

```
At least one imageKubernetesVersion in EC2Configuration is not supported.
```

Para resolver este problema, elimine el entorno de procesamiento y vuelva a crearlo con una versión de Kubernetes compatible. 

Puede realizar una actualización de una versión menor en su clúster de Amazon EKS. Por ejemplo, puede actualizar el clúster de `1.xx` a `1.yy` incluso si la versión secundaria no es compatible. 

Sin embargo, es posible que el estado del entorno de computación cambie a `INVALID` después de una actualización de la versión principal. Por ejemplo, si realiza una actualización de una versión principal de `1.xx` a `2.yy`. Si la versión principal no es compatible con AWS Batch, aparecerá un mensaje de error similar al siguiente.

```
reason=CLIENT_ERROR - ... EKS Cluster version [2.yy] is unsupported
```

# Actualización de la versión Kubernetes del entorno de computación.
<a name="updating-k8s-version-ce"></a>

Con AWS Batch, puede actualizar la Kubernetes versión de un entorno informático para que sea compatible con las actualizaciones de clústeres de Amazon EKS. La Kubernetes versión de un entorno de cómputo es la versión AMI de Amazon EKS para los Kubernetes nodos que se AWS Batch lanzan para ejecutar tareas. Puede realizar una actualización de versión de Kubernetes en sus nodos Amazon EKS antes o después de actualizar la versión del plano de control del clúster de Amazon EKS. Le recomendamos que actualice los nodos después de actualizar el plano de control. Para obtener más información, consulte [Actualizar la versión de Kubernetes del clúster de Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/update-cluster.html) en la *Guía del usuario de Amazon EKS*.

Para actualizar la versión de Kubernetes de un entorno de computación, utilice la operación [https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html) API.

```
$ aws batch update-compute-environment \
    --compute-environment <compute-environment-name> \
    --compute-resources \
      'ec2Configuration=[{imageType=EKS_AL2,imageKubernetesVersion=1.32}]'
```

# Responsabilidad compartida de los nodos Kubernetes
<a name="eks-ce-shared-responsibility"></a>

El mantenimiento de los entornos de computación es una responsabilidad compartida.
+ No cambies ni elimines AWS Batch nodos, etiquetas, manchas, espacios de nombres, plantillas de lanzamiento ni grupos de escalado automático. No añada información contaminada a los nodos gestionados. AWS Batch Si realiza alguno de estos cambios, su entorno de computación no será compatible y se producirán errores, incluidas las instancias inactivas.
+ No dirija sus pods a los nodos AWS Batch gestionados. Si dirige sus pods a los nodos gestionados, se producirán problemas de escalado y las colas de trabajos se atascarán. Ejecuta cargas de trabajo que no se usen AWS Batch en nodos autogestionados o grupos de nodos gestionados. Para obtener más información, consulte [Grupos de nodos administrados](https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html) en la *Guía del usuario de Amazon EKS*.
+ Puede seleccionar DaemonSet a para que se ejecute en nodos AWS Batch gestionados. Para obtener más información, consulte [Ejecute un DaemonSet nodo AWS Batch gestionado](daemonset-on-batch-eks-nodes.md).

AWS Batch no actualiza automáticamente el entorno de cómputo AMIs. Es su responsabilidad actualizarlas. Ejecute el siguiente comando para actualizar AMIs a la última versión de la AMI.

```
$ aws batch update-compute-environment \
    --compute-environment <compute-environment-name> \
    --compute-resources 'updateToLatestImageVersion=true'
```

AWS Batch no actualiza automáticamente la Kubernetes versión. Ejecute el siguiente comando para actualizar la Kubernetes versión del entorno de su ordenador a*1.32*.

```
$ aws batch update-compute-environment \
    --compute-environment <compute-environment-name> \
    --compute-resources \
      'ec2Configuration=[{imageType=EKS_AL2,imageKubernetesVersion=1.32}]'
```

Al actualizar a una AMI o a una Kubernetes versión más reciente, puede especificar si desea finalizar los trabajos cuando se actualicen (`terminateJobsOnUpdate`) y cuánto tiempo esperar antes de reemplazar una instancia si los trabajos en ejecución no terminan (`jobExecutionTimeoutMinutes`.) Para obtener más información, consulte [Actualizar un entorno informático en AWS Batch](updating-compute-environments.md) y la política de actualización de la infraestructura ([https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdatePolicy.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdatePolicy.html)) establecida en la operación [https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html) de la API.

# Ejecute un DaemonSet nodo AWS Batch gestionado
<a name="daemonset-on-batch-eks-nodes"></a>

AWS Batch establece contaminaciones en los nodos gestionados. AWS Batch Kubernetes Puede seleccionar a DaemonSet para que se ejecute en nodos AWS Batch gestionados con lo siguiente`tolerations`.

```
tolerations:
  - key: "batch.amazonaws.com/batch-node"
    operator: "Exists"
```

Otra forma de hacerlo es con lo siguiente `tolerations`.

```
tolerations:
  - key: "batch.amazonaws.com/batch-node"
    operator: "Exists"
    effect: "NoSchedule"
  - key: "batch.amazonaws.com/batch-node"
    operator: "Exists"
    effect: "NoExecute"
```

# Personalización de plantillas de lanzamiento de Amazon EKS
<a name="eks-launch-templates"></a>

AWS Batch en Amazon EKS admite plantillas de lanzamiento. Existen limitaciones en cuanto a lo que puede hacer su plantilla de lanzamiento.

**importante**  
Para EKS AL2 AMIs, AWS Batch ejecuta`/etc/eks/bootstrap.sh`. No ejecute `/etc/eks/bootstrap.sh` en su plantilla de lanzamiento ni en sus scripts cloud-init user-data. Puede añadir parámetros adicionales además del parámetro `--kubelet-extra-args` a [bootstrap.sh](https://github.com/awslabs/amazon-eks-ami/blob/main/templates/al2/runtime/bootstrap.sh). Para ello, defina la variable `AWS_BATCH_KUBELET_EXTRA_ARGS` en el archivo `/etc/aws-batch/batch.config`. Consulte el ejemplo siguiente para obtener información detallada.
En el caso de EKS AL2023, AWS Batch utiliza el comando [NodeConfigSpec](https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec)from EKS para hacer que las instancias se unan al clúster de EKS. AWS Batch rellena [ClusterDetails](https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#clusterdetails)el clúster [NodeConfigSpec](https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec)de EKS y no es necesario especificarlos.

**nota**  
Le recomendamos que no establezca ninguno de los siguientes [https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec](https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec)ajustes en la plantilla de lanzamiento, ya que AWS Batch anulará sus valores. Para obtener más información, consulte [Responsabilidad compartida de los nodos Kubernetes](eks-ce-shared-responsibility.md).  
`Taints`
`Cluster Name`
`apiServerEndpoint`
`certificatAuthority`
`CIDR`
No cree etiquetas con el prefijo `batch.amazonaws.com/`

**nota**  
Si la plantilla de lanzamiento se cambia después de [CreateComputeEnvironment](https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateComputeEnvironment.html)llamarla, [https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html)hay que llamarla para evaluar la versión de la plantilla de lanzamiento que se va a reemplazar.

**Topics**
+ [Adición de argumentos adicionales `kubelet`](#kubelet-extra-args)
+ [Configuración del tiempo de ejecución del contenedor](#change-container-runtime)
+ [Montaje de un volumen de Amazon EFS](#mounting-efs-volume)
+ [IPv6 soporte](#eks-ipv6-support)

## Adición de argumentos adicionales `kubelet`
<a name="kubelet-extra-args"></a>

AWS Batch admite la adición de argumentos adicionales al `kubelet` comando. Para ver una lista completa de parámetros que admite [https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/](https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/), consulte la *Documentación de Kubernetes*. En el siguiente ejemplo, para EKS AL2 AMIs, `--node-labels mylabel=helloworld` se agrega a la línea de `kubelet` comandos.

```
MIME-Version: 1.0
      Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="

      --==MYBOUNDARY==
      Content-Type: text/x-shellscript; charset="us-ascii"

      #!/bin/bash
      mkdir -p /etc/aws-batch

      echo AWS_BATCH_KUBELET_EXTRA_ARGS=\"--node-labels mylabel=helloworld\" >> /etc/aws-batch/batch.config

      --==MYBOUNDARY==--
```

Para EKS, AL2023 AMIs el formato de archivo es YAML. Para ver una lista completa de parámetros que admite [https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec](https://awslabs.github.io/amazon-eks-ami/nodeadm/doc/api/#nodeconfigspec), consulte la *Documentación de Kubernetes*. En el siguiente ejemplo, para EKS AL2023 AMIs, `--node-labels mylabel=helloworld` se agrega a la línea de `kubelet` comandos.

```
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="

--==MYBOUNDARY==
Content-Type: application/node.eks.aws

apiVersion: node.eks.aws/v1alpha1
kind: NodeConfig
spec:
  kubelet:
    flags:
    - --node-labels=mylabel=helloworld

--==MYBOUNDARY==--
```

## Configuración del tiempo de ejecución del contenedor
<a name="change-container-runtime"></a>

Puede utilizar la variable de AWS Batch `CONTAINER_RUNTIME` entorno para configurar el tiempo de ejecución del contenedor en un nodo gestionado. En el siguiente ejemplo, se establece el tiempo de ejecución del contenedor en `containerd` cuando se ejecuta `bootstrap.sh`. Para obtener más información, consulte [https://kubernetes.io/docs/setup/production-environment/container-runtimes/#containerd](https://kubernetes.io/docs/setup/production-environment/container-runtimes/#containerd) en la *documentación de Kubernetes*. 

Si utiliza una AMI optimizada de `EKS_AL2023` o una AMI de `EKS_AL2023_NVIDIA`, no necesita especificar el tiempo de ejecución del contenedor, ya que solo se admite **containerd**.

**nota**  
La variable de entorno de `CONTAINER_RUNTIME` equivale a la opción `--container-runtime` de `bootstrap.sh`. Para obtener más información, consulte [https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/#options](https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/#options) en la *documentación de Kubernetes*.

```
MIME-Version: 1.0
      Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="

      --==MYBOUNDARY==
      Content-Type: text/x-shellscript; charset="us-ascii"

      #!/bin/bash
      mkdir -p /etc/aws-batch

      echo CONTAINER_RUNTIME=containerd >> /etc/aws-batch/batch.config

      --==MYBOUNDARY==--
```

## Montaje de un volumen de Amazon EFS
<a name="mounting-efs-volume"></a>

Puede utilizar plantillas de lanzamiento para montar los volúmenes en el nodo. En el siguiente ejemplo, se utilizan los ajustes `cloud-config` `packages` y `runcmd`. Para obtener más información, consulte [ejemplos de configuración de nube](https://cloudinit.readthedocs.io/en/latest/topics/examples.html) en la *cloud-initdocumentación*.

```
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="

--==MYBOUNDARY==
Content-Type: text/cloud-config; charset="us-ascii"

packages:
- amazon-efs-utils

runcmd:
- file_system_id_01=fs-abcdef123
- efs_directory=/mnt/efs

- mkdir -p ${efs_directory}
- echo "${file_system_id_01}:/ ${efs_directory} efs _netdev,noresvport,tls,iam 0 0" >> /etc/fstab
- mount -t efs -o tls ${file_system_id_01}:/ ${efs_directory}

--==MYBOUNDARY==--
```

Para usar este volumen en el trabajo, debe añadirse al parámetro [eksProperties](https://docs.aws.amazon.com/batch/latest/APIReference/API_EksProperties.html) a. [RegisterJobDefinition](https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html) El siguiente ejemplo es una gran parte de la definición del trabajo.

```
{
    "jobDefinitionName": "MyJobOnEks_EFS",
    "type": "container",
    "eksProperties": {
        "podProperties": {
            "containers": [
                {
                    "image": "public.ecr.aws/amazonlinux/amazonlinux:2",
                    "command": ["ls", "-la", "/efs"],
                    "resources": {
                        "limits": {
                            "cpu": "1",
                            "memory": "1024Mi"
                        }
                    },
                    "volumeMounts": [
                        {
                            "name": "efs-volume",
                            "mountPath": "/efs"
                        }
                    ]
                }
            ],
            "volumes": [
                {
                    "name": "efs-volume",
                    "hostPath": {
                        "path": "/mnt/efs"
                    }
                }
            ]
        }
    }
}
```

En el nodo, el volumen de Amazon EFS está montado en el directorio `/mnt/efs`. En el contenedor del trabajo de Amazon EKS, el volumen se monta en el directorio `/efs`.

## IPv6 soporte
<a name="eks-ipv6-support"></a>

AWS Batch admite clústeres de Amazon EKS que tienen IPv6 direcciones. No se requieren personalizaciones para obtener AWS Batch soporte. Sin embargo, antes de empezar, le recomendamos que revise las consideraciones y condiciones que se describen en [Asignación de IPv6 direcciones a pods y servicios](https://docs.aws.amazon.com/eks/latest/userguide/cni-ipv6.html) de la *Guía del usuario de Amazon EKS*.

# ¿Cómo actualizar de EKS AL2 a EKS AL2023
<a name="eks-migration-2023"></a>

Los Amazon EKS optimizados AMIs están disponibles en dos familias basadas en Amazon Linux 2 (AL2) y Amazon Linux 2023 (AL2023). AL2023 es un sistema operativo basado en Linux diseñado para proporcionar un entorno seguro, estable y de alto rendimiento para sus aplicaciones en la nube. Para obtener más información sobre las diferencias entre Amazon Linux 2 AL2 y Amazon Linux 2023, AL2023 consulte [Actualización de Amazon Linux 2 a Amazon Linux 2023](https://docs.aws.amazon.com/eks/latest/userguide/al2023.html) en la *Guía del usuario de Amazon EKS*.

**importante**  
AWS finalizó el soporte para Amazon EKS AL2 (optimizado y AL2 acelerado) el 26 de AMIs noviembre de 2025. AWS Batch Los entornos informáticos de Amazon EKS que utilizan Amazon Linux 2 ya no reciben actualizaciones de software, parches de seguridad ni correcciones de errores de AWS. Recomendamos migrar los entornos informáticos de AWS Batch Amazon EKS a Amazon Linux 2023 para mantener un rendimiento y una seguridad óptimos. Posteriormente, es su [responsabilidad mantener](eks-ce-shared-responsibility.md) estos entornos informáticos en la AMI Amazon Linux 2 optimizada para Amazon EKS end-of-life.

En función de cómo esté configurado su entorno informático, puede utilizar una de las siguientes rutas de actualización de AL2 a AL2023.

**Realice la actualización mediante Ec2Configuration. ImageType**
+ Si no está utilizando una plantilla de lanzamiento o anulaciones de plantillas de lanzamiento, cambie [Ec2Configuration. ImageType](https://docs.aws.amazon.com/batch/latest/APIReference/API_Ec2Configuration.html#Batch-Type-Ec2Configuration-imageType)a `EKS_AL2023` o y, a continuación, `EKS_AL2023_NVIDIA` ejecute. [UpdateComputeEnvironment](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateComputeEnvironment.html) 
+ Si especifica una configuración [Ec2. ](https://docs.aws.amazon.com/batch/latest/APIReference/API_Ec2Configuration.html#Batch-Type-Ec2Configuration-imageIdOverride)ImageIdOverride[luego Ec2 Configuration. ImageType](https://docs.aws.amazon.com/batch/latest/APIReference/API_Ec2Configuration.html#Batch-Type-Ec2Configuration-imageType)debe coincidir con el tipo de AMI especificado en [Ec2Configuration. ImageIdOverride](https://docs.aws.amazon.com/batch/latest/APIReference/API_Ec2Configuration.html#Batch-Type-Ec2Configuration-imageIdOverride). 

  Si `ImageIdOverride` y `ImageType` no coinciden, el nodo no se unirá al clúster. 

**Actualización mediante plantillas de lanzamiento**
+ Si tienes algún argumento `kubelet` adicional definido en una plantilla de lanzamiento o en una modificación de la plantilla de lanzamiento, tendrás que actualizarlo al nuevo [formato de argumentos `kubelet` adicionales](eks-launch-templates.md#kubelet-extra-args).

  Si no coincide con el formato de argumentos adicionales `kubelet`, los argumentos adicionales no se aplicarán.
+ Porque AL2023 AMIs **containerd** es el único tiempo de ejecución de contenedores compatible. No es necesario especificar el tiempo de ejecución del contenedor en `EKS_AL2023` para la plantilla de lanzamiento.

  No puedes especificar un tiempo de ejecución de contenedor personalizado con`EKS_AL2023`.
+ Si utiliza una plantilla de lanzamiento o una anulación de la plantilla de lanzamiento que especifique una AMI según `EKS_AL2023`, debe establecer [userdataType](https://docs.aws.amazon.com/batch/latest/APIReference/API_LaunchTemplateSpecification.html) en `EKS_NODEADM`. 

  Si `userdataType` y la AMI no coinciden, el nodo no se unirá al clúster de EKS.