

# Administración de instancias de contenedor de Linux de Amazon ECS
<a name="manage-linux"></a>

Cuando utiliza instancias de EC2 para las cargas de trabajo de Amazon ECS, es responsable del mantenimiento de instancias.

**Topics**
+ [Lanzamiento de una instancia de contenedor](launch_container_instance.md)
+ [Arranque de instancias de contenedor de Linux](bootstrap_container_instance.md)
+ [Configuración de instancias de contenedor para recibir avisos de instancias de spot](spot-instance-draining-linux-container.md)
+ [Ejecución de un script al lanzar una instancia de contenedor](start_task_at_launch.md)
+ [Aumento de las interfaces de red de instancias de contenedor de Linux de Amazon ECS](container-instance-eni.md)
+ [Reserva de la memoria de instancias de contenedor](memory-management.md)
+ [Administración remota de instancias de contenedor](ec2-run-command.md)
+ [Uso de un proxy HTTP para instancias de contenedor de Linux](http_proxy_config.md)
+ [Configuración de instancias preinicializadas para el grupo de escalado automático](using-warm-pool.md)
+ [Actualización del agente de contenedor de Amazon ECS](ecs-agent-update.md)

Cada versión del agente de contenedor de Amazon ECS admite un conjunto de características diferente y proporciona correcciones de errores de versiones anteriores. Cuando sea posible, siempre recomendamos utilizar la versión más reciente del agente de contenedor de Amazon ECS. Para actualizar el agente de contenedor a la versión más reciente, consulte [Actualización del agente de contenedor de Amazon ECS](ecs-agent-update.md).

Para ver las características y mejoras incluidas en cada versión del agente, consulte [https://github.com/aws/amazon-ecs-agent/releases](https://github.com/aws/amazon-ecs-agent/releases).

**importante**  
La versión mínima de Docker para obtener métricas fiables es la versión de Docker `v20.10.13` y versiones posteriores, que se incluyen en la AMI `20220607` optimizada para Amazon ECS y versiones posteriores.  
Los agentes de Amazon ECS versión `1.20.0` y posteriores ya no admiten versiones de Docker anteriores a la `18.01.0`.

# Lanzamiento de una instancia de contenedor de Linux de Amazon ECS
<a name="launch_container_instance"></a>

Puede crear instancias de contenedor de Amazon ECS mediante la consola de Amazon EC2. 

Puede lanzar una instancia con varios métodos, incluidos la consola de Amazon EC2, AWS CLI y SDK. Para obtener información sobre los demás métodos para lanzar una instancia, consulte [Iniciar la instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html) en la *Guía del usuario de Amazon EC2*.

Para obtener más información acerca del asistente de inicialización, consulte [Lance una instancia con el nuevo asistente de inicialización de instancias](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html) en la *Guía del usuario de Amazon EC2*. 

Antes de comenzar, complete los pasos de [Configuración para utilizar Amazon ECS](get-set-up-for-amazon-ecs.md).

Puede utilizar el nuevo asistente de Amazon EC2 para lanzar una instancia. El asistente de inicialización de instancias especifica todos los parámetros de inicialización necesarios para iniciar una instancia. 

**Topics**
+ [Procedimiento](#linux-liw-initiate-instance-launch)
+ [Nombre y etiquetas](#linux-liw-name-and-tags)
+ [Imágenes de aplicaciones y sistema operativo (Imagen de máquina de Amazon)](#linux-liw-ami)
+ [Tipo de instancia](#linux-liw-instance-type)
+ [Par de claves (inicio de sesión)](#linux-liw-key-pair)
+ [Configuración de red](#linux-liw-network-settings)
+ [Configurar almacenamiento](#linux-liw-storage)
+ [Detalles avanzados](#linux-liw-advanced-details)

## Procedimiento
<a name="linux-liw-initiate-instance-launch"></a>

Antes de comenzar, complete los pasos de [Configuración para utilizar Amazon ECS](get-set-up-for-amazon-ecs.md).

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En la barra de navegación de la parte superior de la pantalla, se muestra la región de AWS actual (por ejemplo, Este de EE. UU. [Ohio]). Seleccione una región en la que se va a iniciar la instancia. 

1. En el panel de la consola de Amazon EC2, elija **Iniciar instancia**.

## Nombre y etiquetas
<a name="linux-liw-name-and-tags"></a>

El nombre de la instancia es una etiqueta, donde la clave es **Name** (Nombre) y el valor es el nombre que especifique. Puede etiquetar la instancia, los volúmenes y los gráficos elásticos. Para las instancias de spot, solo puede etiquetar la solicitud de instancia de spot. 

Especificar un nombre de instancia y etiquetas adicionales es opcional.
+ En **Name** (Nombre), ingrese un nombre descriptivo para la instancia. Si no especifica un nombre, la instancia se puede identificar mediante su ID, que se genera automáticamente al iniciar la instancia.
+ Para agregar otras etiquetas, elija **Add additional tag** (Agregar etiqueta adicional). Elija **Add tag** (Agregar etiqueta) y, a continuación, ingrese una clave y un valor, y seleccione el tipo de recurso que desea etiquetar. Elija **Add tag** (Agregar etiqueta) para cada etiqueta adicional.

## Imágenes de aplicaciones y sistema operativo (Imagen de máquina de Amazon)
<a name="linux-liw-ami"></a>

Una Imagen de máquina de Amazon (AMI) proporciona la información necesaria para crear una instancia. Por ejemplo, una AMI puede contener el software necesario para funcionar como servidor web, como Apache, y su sitio web.

Utilice la barra de **búsqueda** para buscar una AMI optimizada para Amazon ECS adecuada publicada por AWS.

1. Escriba uno de los siguientes términos en la barra de **búsqueda**.
   + **ami-ecs**
   + El **valor** de una AMI optimizada para Amazon ECS.

     Para obtener las AMI optimizadas para Amazon ECS más recientes y sus valores, consulte [Versiones de AMI de Linux optimizadas para Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#ecs-optimized-ami-linux).

1. Pulse **Intro**.

1. En la página **Choose an Amazon Machine Image (AMI)** (Elija una imagen de máquina de Amazon [AMI]), seleccione la categoría **AWSMarketplace AMIs** (AMI de Marketplace).

1. En el panel **Refine results** (Limitar resultados) situado a la izquierda, seleccione **Amazon Web Services** como **publicador**.

1. Elija **Select** (Seleccionar) en la fila de la AMI que desea utilizar.

   De manera alternativa, elija **Cancel** (Cancelar) (en la parte superior derecha) para volver al asistente de instancias de lanzamiento sin elegir una AMI. Se seleccionará una AMI predeterminada. Asegúrese de que la AMI cumpla con los requisitos descritos en las [AMI de Linux optimizadas para Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html).

## Tipo de instancia
<a name="linux-liw-instance-type"></a>

El tipo de instancia define la configuración de hardware y el tamaño de la instancia. Los tipos de instancia más grandes tienen una CPU y memoria superiores. Para obtener más información, consulte [Tipos de instancia](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) en la *Guía del usuario de Amazon EC2*. Si quiere poner en marcha una carga de trabajo de solo IPv6, algunos tipos de instancias no admiten direcciones IPv6. Para obtener más información, consulte [direcciones IPv6](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html#ipv6-addressing) en la *Guía del usuario de Amazon EC2*.
+ En **Instance Type** (Tipo de instancia), seleccione el tipo de instancia de la instancia. 

   El tipo de instancia que seleccione determina los recursos disponibles para poner en marcha sus tareas.

## Par de claves (inicio de sesión)
<a name="linux-liw-key-pair"></a>

En **Key pair name** (Nombre de par de claves) seleccione un par de claves existente o seleccione **Create new key pair** (Crear nuevo par de claves) para crear uno nuevo. 

**importante**  
Si elige la opción **Proceed without key pair (Not recommended)** (Continuar sin un par de claves [No recomendado]), no podrá conectarse a la instancia a menos que elija una AMI que esté configurada para ofrecer a los usuarios otra forma de iniciar sesión.

## Configuración de red
<a name="linux-liw-network-settings"></a>

Configure los ajustes de red según sea necesario después de pulsar el botón **Editar** en la sección de **ajustes de red** del formulario.
+ Para **VPC**, elija la VPC en la que desea lanzar su instancia. Para poner en marcha una carga de trabajo de solo IPv6, elija una VPC de pila doble que incluya un bloque de CIDR IPv4 y un bloque de CIDR IPv6.
+ En **Subred**, elija la subred en la que desea lanzar la instancia. Puede lanzar una instancia en una subred asociada con una zona de disponibilidad, zona local, zona de Wavelength u Outpost.

  Para iniciar la instancia en una zona de disponibilidad, seleccione la subred en la que desea iniciar la instancia. Para crear una subred, elija **Crear nueva subred** para ir a la consola de Amazon VPC. Cuando haya terminado, vuelva al asistente de lanzamiento de instancias y elija el ícono Refresh (Actualizar) para cargar la subred en la lista.

  Para iniciar la instancia en una zona local, seleccione una subred que haya creado en la zona local. 

  Para iniciar una instancia en un Outpost, seleccione una subred en una VPC que haya asociado a un Outpost.

  Para poner en marcha una carga de trabajo de solo IPv6, elija una subred que incluya únicamente un bloque de CIDR IPv6.
+ **Auto-assign Public IP** (Asignar automáticamente IP pública): si desea que se pueda acceder a la instancia desde Internet, compruebe que el campo **Auto-assign Public IP** (Asignar automáticamente IP pública) esté configurado como **Enable** (Habilitar). De lo contrario, configure este campo como **Disable** (Deshabilitar).
**nota**  
Las instancias de contenedor 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 las instancias de contenedor con direcciones IP públicas.  
Para obtener más información acerca de los puntos de conexión de VPC, consulte [Puntos de enlace de la VPC de interfaz de Amazon ECS (AWS PrivateLink)](vpc-endpoints.md).  
Si no tiene configurado un punto de conexión de VPC de la interfaz y las instancias de contenedor 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 [Puertas de enlace NAT](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) en la *Guía del usuario de Amazon VPC* y [Uso de un proxy HTTP para instancias de contenedor de Linux de Amazon ECS](http_proxy_config.md) en esta guía. 
+ Si elige una VPC de doble pila y una subred de solo IPv6, en **Asignar automáticamente una IP de IPv6**, elija **Habilitar**.
+ **Firewall (security groups)** Firewall (grupos de seguridad): utilice un grupo de seguridad para definir reglas de firewall para la instancia de contenedor. Estas reglas especifican qué tráfico procedente de la red se entregará en la instancia de contenedor. El resto del tráfico se ignora. 
  + Para seleccionar un grupo de seguridad existente, elija **Select an existing security group** (Seleccionar un grupo de seguridad existente) y seleccione el grupo de seguridad que creó en [Configuración para utilizar Amazon ECS](get-set-up-for-amazon-ecs.md).
+ Si va a lanzar la instancia para una carga de trabajo de solo IPv6, elija **Configuración de red avanzada** y, a continuación, en **Asignar IP IPv6 principal**, elija **Sí**.
**nota**  
Sin una dirección IPv6 principal, las tareas que se pongan en marcha en la instancia de contenedor en los modos de red host o puente no se registrarán con los equilibradores de carga ni con AWS Cloud Map.

## Configurar almacenamiento
<a name="linux-liw-storage"></a>

La AMI seleccionada incluye uno o más volúmenes de almacenamiento, incluido el volumen de dispositivo raíz. Se pueden especificar volúmenes adicionales para adjuntar a la instancia.

Se puede utilizar la vista **Simple** (Simple).
+ **Storage type** (Tipo de almacenamiento): configure el almacenamiento de la instancia de contenedor.

  Si utiliza la AMI de Amazon Linux 2 optimizada para Amazon ECS, la instancia tiene un único volumen de 30 GiB configurado, que se comparte entre el sistema operativo y Docker.

  Si utiliza la AMI optimizada para Amazon ECS, la instancia tiene configurados dos volúmenes. El volumen **raíz** lo utiliza el sistema operativo y el segundo volumen de Amazon EBS (asociado a `/dev/xvdcz`) lo utiliza Docker.

  Si lo desea, puede aumentar o reducir el tamaño de volumen para su instancia de acuerdo con las necesidades de su aplicación.

## Detalles avanzados
<a name="linux-liw-advanced-details"></a>

En **Detalles avanzados**, expanda la sección para ver los campos y especifique cualquier parámetro adicional para la instancia.
+ **Purchasing option** (Opción de compra): elija **Request Spot instances** (Solicitar instancias de spot) para solicitar una instancia de spot. También debe establecer el resto de los campos relacionados con las instancias de Spot. Para obtener más información, consulte [Spot Instance Requests](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html) (Solicitudes de instancias de Spot).
**nota**  
Si utiliza instancias de Spot y ve un mensaje que indica `Not available`, es posible que deba elegir un tipo de instancia diferente.
+ En **IAM instance profile** (Perfil de instancia de IAM), seleccione el rol de IAM de la instancia de contenedor. Suele llamarse `ecsInstanceRole`.
**importante**  
Si no lanza la instancia de contenedor con los permisos de IAM correspondientes, el agente de Amazon ECS no puede conectarse al clúster. Para obtener más información, consulte [Rol de IAM de instancia de contenedor de Amazon ECS](instance_IAM_role.md).
+ **Datos de usuario**: configure la instancia de contenedor de Amazon ECS con los datos de usuario, por ejemplo, las variables de entorno del agente de [Configuración del agente de contenedor de Amazon ECS](ecs-agent-config.md). Los scripts de datos de usuario de Amazon EC2 se ponen en marcha solo una vez, cuando la instancia se lanza por primera vez. A continuación, se muestran ejemplos comunes del uso de los datos del usuario:
  + De forma predeterminada, su instancia de contenedor se abre en su clúster predeterminado. Para abrirlo en un clúster no predeterminado, seleccione la lista **Advanced Details**. A continuación, pegue el siguiente script en el campo **User data**, reemplazando *your\$1cluster\$1name* con el nombre de su clúster.

    ```
    #!/bin/bash
    echo ECS_CLUSTER=your_cluster_name >> /etc/ecs/ecs.config
    ```
  + Si tiene un archivo `ecs.config` en Amazon S3 y ha habilitado el acceso de solo lectura de Amazon S3 en el rol de instancia de contenedor, elija la lista **Advanced Details** (Detalles avanzados). A continuación, pegue el siguiente script en el campo **User data (Datos de usuario)**, sustituyendo *your\$1bucket\$1name* por el nombre del bucket para instalar la AWS CLI y escriba su archivo de configuración en el momento del lanzamiento. 
**nota**  
Para obtener más información acerca de esta configuración, consulte [Almacenamiento de la configuración de instancia de contenedor de Amazon ECS en Amazon S3](ecs-config-s3.md).

    ```
    #!/bin/bash
    yum install -y aws-cli
    aws s3 cp s3://your_bucket_name/ecs.config /etc/ecs/ecs.config
    ```
  + Especifique las etiquetas para su instancia de contenedor mediante el parámetro de configuración `ECS_CONTAINER_INSTANCE_TAGS`. De esto modo, se crean etiquetas que solo están asociadas a Amazon ECS; no se pueden enumerar mediante la API de Amazon EC2.
**importante**  
Si inicia las instancias de contenedor mediante un grupo de Amazon EC2 Auto Scaling, debe utilizar el parámetro de configuración del agente ECS\$1CONTAINER\$1INSTANCE\$1TAGS para agregar etiquetas. Esto se debe a la forma en que se agregan las etiquetas a las instancias de Amazon EC2 que se lanzan mediante grupos de Auto Scaling.

    ```
    #!/bin/bash
    cat <<'EOF' >> /etc/ecs/ecs.config
    ECS_CLUSTER=your_cluster_name
    ECS_CONTAINER_INSTANCE_TAGS={"tag_key": "tag_value"}
    EOF
    ```
  + Especifique las etiquetas para la instancia de contenedor y, a continuación, utilice el parámetro de configuración `ECS_CONTAINER_INSTANCE_PROPAGATE_TAGS_FROM` para propagarlas de Amazon EC2 a Amazon ECS

    A continuación se muestra un ejemplo de un script de datos de usuario que propaga las etiquetas asociadas a una instancia de contenedor, y registra la instancia de contenedor con un clúster denominado `your_cluster_name`:

    ```
    #!/bin/bash
    cat <<'EOF' >> /etc/ecs/ecs.config
    ECS_CLUSTER=your_cluster_name
    ECS_CONTAINER_INSTANCE_PROPAGATE_TAGS_FROM=ec2_instance
    EOF
    ```
  + De forma predeterminada, el agente de contenedor de Amazon ECS intentará detectar la compatibilidad de la instancia de contenedor con una configuración de solo IPv6 observando las rutas IPv4 e IPv6 predeterminadas de la instancia. Para anular este comportamiento, puede establecer el parámetro ` ECS_INSTANCE_IP_COMPATIBILITY` en `ipv4` o `ipv6` en el archivo `/etc/ecs/ecs.config` de la instancia.

    ```
    #!/bin/bash
    cat <<'EOF' >> /etc/ecs/ecs.config
    ECS_CLUSTER=your_cluster_name
    ECS_INSTANCE_IP_COMPATIBILITY=ipv6
    EOF
    ```

  Para obtener más información, consulte [Arranque de instancias de contenedor de Linux de Amazon ECS para la transferencia de datos](bootstrap_container_instance.md).

# Arranque de instancias de contenedor de Linux de Amazon ECS para la transferencia de datos
<a name="bootstrap_container_instance"></a>

Cuando se lanza una instancia de Amazon EC2, puede transferir los datos de usuario a la instancia de EC2. Los datos se pueden utilizar para llevar a cabo tareas de configuración automatizadas comunes e incluso poner en marcha scripts cuando la instancia arranca. En Amazon ECS, los casos de uso más comunes para los datos de usuario consisten en transferir la información de configuración al daemon de Docker y al agente de contenedor de Amazon ECS.

Puede transferir varios tipos de datos de usuario a Amazon EC2, incluidos cloud boothooks, scripts de shell y directivas `cloud-init`. Para obtener más información acerca de estos u otros tipos de formato, consulte la [documentación de Cloud-Init](https://cloudinit.readthedocs.io/en/latest/explanation/format.html). 

Para transferir los datos de usuario al utilizar el asistente de lanzamiento de Amazon EC2, consulte [Lanzamiento de una instancia de contenedor de Linux de Amazon ECS](launch_container_instance.md).

Puede configurar la instancia de contenedor para transferir los datos en la configuración del agente de contenedor o en la configuración del daemon de Docker.

## Agente de contenedor de Amazon ECS
<a name="bootstrap_container_agent"></a>

Las variantes de Linux de la AMI optimizada para Amazon ECS buscan datos de configuración del agente en el archivo `/etc/ecs/ecs.config` cuando se inicia el agente de contenedor. Puede especificar estos datos de configuración durante el lanzamiento con datos de usuario de Amazon EC2. Para obtener más información acerca de las variables de configuración del agente de contenedor de Amazon ECS disponibles, consulte [Configuración del agente de contenedor de Amazon ECS](ecs-agent-config.md).

Para establecer solo una variable de configuración del agente como, por ejemplo, el nombre del clúster, utilice **echo** para copiar la variable en el archivo de configuración:

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

Si tiene varias variables que escribir en `/etc/ecs/ecs.config`, utilice el formato `heredoc` siguiente. Este formato escribe todo entre las líneas que comienzan por **cat** y `EOF` en el archivo de configuración.

```
#!/bin/bash
cat <<'EOF' >> /etc/ecs/ecs.config
ECS_CLUSTER=MyCluster
ECS_ENGINE_AUTH_TYPE=docker
ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"username":"my_name","password":"my_password","email":"email@example.com"}}
ECS_LOGLEVEL=debug
ECS_WARM_POOLS_CHECK=true
EOF
```

Para configurar los atributos de instancia personalizados, defina la variable de entorno `ECS_INSTANCE_ATTRIBUTES`.

```
#!/bin/bash
cat <<'EOF' >> ecs.config
ECS_INSTANCE_ATTRIBUTES={"envtype":"prod"}
EOF
```

## Daemon de Docker
<a name="bootstrap_docker_daemon"></a>

Puede especificar la información de configuración del daemon de Docker con los datos de usuario de Amazon EC2. Para obtener más información sobre las opciones de configuración, consulte [la documentación del daemon de Docker](https://docs.docker.com/reference/cli/dockerd/).

**nota**  
AWS no admite configuraciones personalizadas de Docker, ya que a veces pueden entrar en conflicto con futuros cambios o características de Amazon ECS sin previo aviso.

En el ejemplo siguiente, las opciones personalizadas se agregan al archivo de configuración del daemon de Docker, que es `/etc/docker/daemon.json`, y luego se especifica en los datos del usuario cuando se lanza la instancia.

```
#!/bin/bash
cat <<EOF >/etc/docker/daemon.json
{"debug": true}
EOF
systemctl restart docker --no-block
```

En el ejemplo siguiente, las opciones personalizadas se agregan al archivo de configuración del daemon de Docker, que es `/etc/docker/daemon.json`, y luego se especifica en los datos del usuario cuando se lanza la instancia. En este ejemplo se muestra cómo activar o desactivar el docker-proxy en el archivo de configuración de daemon de Docker.

```
#!/bin/bash
cat <<EOF >/etc/docker/daemon.json
{"userland-proxy": false}
EOF
systemctl restart docker --no-block
```

# Configuración de instancias de contenedor de Linux de Amazon ECS para recibir avisos de instancias de spot
<a name="spot-instance-draining-linux-container"></a>

Amazon EC2 termina, detiene o hiberna la instancia de spot cuando el precio de spot supera el precio máximo de su solicitud o cuando ya no hay más capacidad. Amazon EC2 envía un aviso de interrupción de dos minutos de la instancia de spot para la terminación y la detención de acciones. No proporciona el aviso de dos minutos para la acción de hibernación. Si el drenaje de instancias de spot de Amazon ECS está activado en la instancia, Amazon ECS recibe el aviso de interrupción de la instancia de spot y coloca la instancia en el estado `DRAINING`. 

**importante**  
Amazon ECS no recibe ningún aviso de Amazon EC2 cuando Auto Scaling Capacity Rebalancing elimina las instancias. Para obtener más información, consulte [Reequilibrio de la capacidad de Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html).

Cuando se establece una instancia de contenedor en `DRAINING`, Amazon ECS evita que se programen nuevas tareas para su ubicación en la instancia de contenedor. Las tareas de servicio en la instancia de contenedor que se está vaciando que están en el estado `PENDING` se paran de inmediato. Si hay instancias de contenedor en el clúster que están disponibles, las tareas de servicio de sustitución se inician en ellas.

El drenaje de instancias de spot está desactivado de forma predeterminada. 

Puede activar el drenaje de instancias de spot al lanzar una instancia. Agregue el script siguiente en el campo **Datos de usuario**. Reemplace *MyCluster* por el nombre del clúster en el que se va a registrar la instancia de contenedor.

```
#!/bin/bash
cat <<'EOF' >> /etc/ecs/ecs.config
ECS_CLUSTER=MyCluster
ECS_ENABLE_SPOT_INSTANCE_DRAINING=true
EOF
```

Para obtener más información, consulte [Lanzamiento de una instancia de contenedor de Linux de Amazon ECS](launch_container_instance.md).

**Para activar el vaciado de instancias de spot para una instancia de contenedor existente**

1. Conéctese a la instancia de spot a través de SSH.

1. Edite el archivo `/etc/ecs/ecs.config` y añada lo siguiente:

   ```
   ECS_ENABLE_SPOT_INSTANCE_DRAINING=true
   ```

1. Reinicie el servicio `ecs`.
   + Para la AMI de Amazon Linux 2 optimizada para Amazon ECS:

     ```
     sudo systemctl restart ecs
     ```

1. (Opcional) Puede verificar que el agente esté en marcha y ver información acerca de la nueva instancia de contenedor consultando la operación de la API de introspección del agente. Para obtener más información, consulte [Introspección de contenedor de Amazon ECS](ecs-agent-introspection.md).

   ```
   curl http://localhost:51678/v1/metadata
   ```

# Ejecución de un script al lanzar una instancia de contenedor de Linux de Amazon ECS
<a name="start_task_at_launch"></a>

Es posible que tenga que ejecutar un contenedor específico en cada instancia de contenedor para tratar problemas de seguridad o de operaciones tales como la supervisión, seguridad, métricas, detección de servicios o registro.

Para ello, puede configurar sus instancias de contenedor para llamar al comando **docker run** con el script de datos de usuario durante el lanzamiento o en algún sistema de inicio como Upstart o **systemd**. Aunque este método funciona, tiene algunas desventajas ya que Amazon ECS no conoce el contenedor y no puede monitorear la CPU, la memoria, los puertos ni ningún otro recurso utilizado. A fin de garantizar que Amazon ECS pueda contabilizar correctamente todos los recursos de tareas, cree una definición de tareas para que el contenedor las ejecute en las instancias de contenedor. A continuación, utilice Amazon ECS para ubicar la tarea en el momento del lanzamiento con los datos de usuario de Amazon EC2.

En el siguiente procedimiento, el script de datos de usuario de Amazon EC2 utiliza la API de introspección de Amazon ECS para identificar la instancia de contenedor. A continuación, utiliza la AWS CLI y el comando **start-task** para ejecutar una tarea especificada en sí mismo durante el inicio. 

**Para iniciar una tarea en el momento del lanzamiento de una instancia de contenedor**

1. Modifique el rol de IAM `ecsInstanceRole` para añadir permisos para la operación `StartTask` de la API. Para obtener más información, consulte [Actualización de los permisos de un rol](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_update-role-permissions.html) en la *Guía del usuario de AWS Identity and Access Management*.

1. Lance una o más instancias de contenedor mediante la AMI de Amazon Linux 2 optimizada para Amazon ECS. Lance nuevas instancias de contenedor y utilice el siguiente script de ejemplo en Datos de usuario de EC2. Reemplace *your\$1cluster\$1name* por el clúster de la instancia de contenedor en el que desea registrarse y *my\$1task\$1def* por la definición de tarea que desea ejecutar en la instancia en el momento del lanzamiento. 

   Para obtener más información, consulte [Lanzamiento de una instancia de contenedor de Linux de Amazon ECS](launch_container_instance.md).
**nota**  
El contenido multiparte de MIME a continuación utiliza un script de shell para establecer valores de configuración e instalar paquetes. También utiliza un trabajo systemd para iniciar la tarea después de la ejecución del servicio **ecs** y una vez que la API de introspección está disponible.

   ```
   Content-Type: multipart/mixed; boundary="==BOUNDARY=="
   MIME-Version: 1.0
   
   --==BOUNDARY==
   Content-Type: text/x-shellscript; charset="us-ascii"
   
   #!/bin/bash
   # Specify the cluster that the container instance should register into
   cluster=your_cluster_name
   
   # Write the cluster configuration variable to the ecs.config file
   # (add any other configuration variables here also)
   echo ECS_CLUSTER=$cluster >> /etc/ecs/ecs.config
   
   START_TASK_SCRIPT_FILE="/etc/ecs/ecs-start-task.sh"
   cat <<- 'EOF' > ${START_TASK_SCRIPT_FILE}
   	exec 2>>/var/log/ecs/ecs-start-task.log
   	set -x
   	
   	# Install prerequisite tools
   	yum install -y jq aws-cli
   	
   	# Wait for the ECS service to be responsive
   	until curl -s http://localhost:51678/v1/metadata
   	do
   		sleep 1
   	done
   
   	# Grab the container instance ARN and AWS Region from instance metadata
   	instance_arn=$(curl -s http://localhost:51678/v1/metadata | jq -r '. | .ContainerInstanceArn' | awk -F/ '{print $NF}' )
   	cluster=$(curl -s http://localhost:51678/v1/metadata | jq -r '. | .Cluster' | awk -F/ '{print $NF}' )
   	region=$(curl -s http://localhost:51678/v1/metadata | jq -r '. | .ContainerInstanceArn' | awk -F: '{print $4}')
   
   	# Specify the task definition to run at launch
   	task_definition=my_task_def
   
   	# Run the AWS CLI start-task command to start your task on this container instance
   	aws ecs start-task --cluster $cluster --task-definition $task_definition --container-instances $instance_arn --started-by $instance_arn --region $region
   EOF
   
   # Write systemd unit file
   UNIT="ecs-start-task.service"
   cat <<- EOF > /etc/systemd/system/${UNIT}
         [Unit]
         Description=ECS Start Task
         Requires=ecs.service
         After=ecs.service
    
         [Service]
         Restart=on-failure
         RestartSec=30
         ExecStart=/usr/bin/bash ${START_TASK_SCRIPT_FILE}
   
         [Install]
         WantedBy=default.target
   EOF
   
   # Enable our ecs.service dependent service with `--no-block` to prevent systemd deadlock
   # See https://github.com/aws/amazon-ecs-agent/issues/1707
   systemctl enable --now --no-block "${UNIT}"
   --==BOUNDARY==--
   ```

1. Compruebe que sus instancias de contenedor se lancen en el clúster correcto y que sus tareas se hayan iniciado.

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

   1. En la barra de navegación, seleccione la región en la que se encuentra el clúster.

   1. En el panel de navegación, seleccione **Clusters** y seleccione el clúster que aloja sus instancias de contenedor.

   1. En la página **Clúster**, elija **Tareas** y, a continuación, elija las tareas.

      Cada instancia de contenedor que lanzó debe tener la tarea ejecutándose en ella.

      Si no ve las tareas, puede iniciar sesión en sus instancias de contenedor con SSH y comprobar la información de depuración del archivo `/var/log/ecs/ecs-start-task.log`.

# Aumento de las interfaces de red de instancias de contenedor de Linux de Amazon ECS
<a name="container-instance-eni"></a>

**nota**  
Esta característica no está disponible en Fargate.

Cada tarea que usa el modo de red `awsvpc` recibe su propia interfaz de red elástica (ENI), que se asocia a la instancia de contenedor que la aloja. Existe un límite predeterminado en cuanto al número de interfaces de red que pueden asociarse a una instancia de Amazon EC2, y la interfaz de red principal cuenta como una. Por ejemplo, de forma predeterminada una instancia de `c5.large` puede tener asociadas hasta tres ENI. La interfaz de red principal para la instancia cuenta como una, por lo que puede asociar a la instancia dos ENI adicionales. Dado que cada tarea que utiliza el modo de red `awsvpc` requiere una ENI, normalmente solo puede ejecutar dos de esas tareas en este tipo de instancia.

Amazon ECS es compatible con el inicio de instancias de contenedor con mayor densidad de ENI al usar tipos de instancias de Amazon EC2 compatibles. Cuando se utilizan estos tipos de instancias y se activa la configuración de cuenta `awsvpcTrunking`, aparecen ENI adicionales disponibles en las instancias de contenedor recién lanzadas. Esta configuración le permite colocar más tareas en cada instancia de contenedor. Para utilizar la consola con el objeto de activar la característica, consulte [Modificación de la configuración de la cuenta de Amazon ECS](ecs-modifying-longer-id-settings.md). Para utilizar la AWS CLI con el objeto de activar la característica, consulte [Administración de la configuración de la cuenta de Amazon ECS mediante la AWS CLI](account-setting-management-cli.md). 

Por ejemplo, una instancia `c5.large` con `awsvpcTrunking` tiene un límite de ENI aumentado de doce. La instancia de contenedor tendrá la interfaz de red principal, y Amazon ECS crea y asocia una interfaz de red “troncal” a la instancia de contenedor. Por lo tanto, esta configuración le permite lanzar diez tareas en la instancia de contenedor, en lugar de las dos tareas actuales.

La interfaz de red troncal está completamente administrada por Amazon ECS y se elimina cuando se termina o se anula el registro de su instancia de contenedor en el clúster. Para obtener más información, consulte [Opciones de red de tareas de Amazon ECS para EC2](task-networking.md).

## Consideraciones
<a name="eni-trunking-considerations"></a>

Tenga en cuenta lo siguiente al utilizar la característica de enlace troncal de ENI.
+ Solo admiten aumento de los límites de ENI las variantes Linux de la AMI optimizada para Amazon ECS u otras variantes de Amazon Linux con la versión `1.28.1` o una posterior del agente de contenedor, y la versión `1.28.1-2` o una posterior del paquete ecs-init. Si utiliza la variante de Linux más reciente de la AMI optimizada para Amazon ECS, deberá cumplir estos requisitos. Los contenedores de Windows no son en este momento compatibles.
+ Solo las nuevas instancias de Amazon EC2 iniciadas después de habilitar `awsvpcTrunking` reciben el aumento de límites de ENI y la interfaz de red troncal. Las instancias lanzadas anteriormente no reciben estas características, independientemente de las acciones realizadas.
+ Las instancias de Amazon EC2 deben tener desactivadas las solicitudes DNS IPv4 basadas en recursos. Para desactivar esta opción, anule la opción **Habilitar solicitudes DNS IPV4 (registro A) basadas en recursos** al crear una nueva instancia mediante la consola de Amazon EC2. Para deshabilitar esta opción mediante el AWS CLI, utilice el siguiente comando.

  ```
  aws ec2 modify-private-dns-name-options --instance-id i-xxxxxxx --no-enable-resource-name-dns-a-record --no-dry-run
  ```
+ No se admiten instancias de Amazon EC2 en subredes compartidas. No se registrarán en un clúster si se utilizan.
+ Las tareas deben utilizar el modo de red `awsvpc` y la EC2. Las tareas que utilizan Fargate siempre han recibido una ENI exclusiva, independientemente de cuántas se lancen, por lo que esta característica no es necesaria.
+ Las tareas se deben lanzar en la misma Amazon VPC que la instancia de contenedor. Las tareas no se iniciarán con un error de atributo si no están dentro de la misma VPC.
+ Al lanzar una nueva instancia de contenedor, la instancia pasa a un estado `REGISTERING` mientras la interfaz de red elástica troncal se aprovisiona para la instancia. Si el registro da error, la instancia pasa a un estado `REGISTRATION_FAILED`. Para solucionar un error de registro, describa la instancia de contenedor para visualizar el campo `statusReason` que describe el motivo del error. A continuación, la instancia de contenedor se puede terminar o anular manualmente su registro. Una vez que se haya anulado el registro de la instancia de contenedor o terminado correctamente, Amazon ECS eliminará la ENI troncal.
**nota**  
Amazon ECS emite eventos de cambio de estado de instancia de contenedor que se pueden monitorear para las instancias que pasan a un estado `REGISTRATION_FAILED`. Para obtener más información, consulte [Eventos de cambio de estado de instancia de contenedor de Amazon ECS](ecs_container_instance_events.md).
+ Una vez terminada la instancia de contenedor, la instancia pasa a un estado `DEREGISTERING` mientras se desaprovisiona la interfaz de red elástica troncal. La instancia después pasa a un estado `INACTIVE`.
+ Si se detiene una instancia de contenedor en una subred pública con el aumento de los límites de ENI y, a continuación, se reinicia, la instancia pierde su dirección IP pública y el agente de contenedor pierde su conexión.
+ Cuando se habilita `awsvpcTrunking`, las instancias de contenedor reciben un ENI adicional que usa el grupo de seguridad predeterminado de la VPC y es administrado por Amazon ECS.

  Una VPC predeterminada incluye una subred pública en cada zona de disponibilidad, una puerta de enlace de Internet y la configuración para habilitar la resolución DNS. La subred es una subred pública, ya que la tabla de enrutamiento principal envía a la puerta de enlace de Internet el tráfico de la subred que está destinado a Internet. Puede convertir una subred predeterminada en una subred privada eliminando la ruta del destino 0.0.0.0/0 al puerto de enlace a Internet. Sin embargo, si hace esto, ninguna instancia de contenedor que se esté ejecutando en esa subred podrá obtener acceso a Internet. Puede agregar o eliminar reglas del grupo de seguridad para controlar el tráfico que entra y sale de sus subredes. Para obtener más información, consulte [Reglas del grupo de seguridad](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html) en la *Guía del usuario de Amazon Virtual Private Cloud*.

## Requisitos previos
<a name="eni-trunking-launching"></a>

Antes de iniciar una instancia de contenedor con aumento de límites de ENI, deben completarse los siguientes requisitos previos.
+ Se debe crear el rol vinculado al servicio para Amazon ECS. El rol vinculado al servicio de Amazon ECS proporciona a Amazon ECS los permisos para realizar llamadas a otros servicios de AWS en su nombre. Este rol se crea automáticamente al crear un clúster, o bien al crear o actualizar un servicio en la Consola de administración de AWS. Para obtener más información, consulte [Uso de roles vinculados al servicio para Amazon ECS](using-service-linked-roles.md). También puede crear el rol vinculado a un servicio con el siguiente comando de la AWS CLI:

  ```
  aws iam [create-service-linked-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-service-linked-role.html) --aws-service-name ecs.amazonaws.com
  ```
+ El rol de IAM de su cuenta o instancia de contenedor debe inscribirse en la configuración de la cuenta `awsvpcTrunking`. Le recomendamos crear dos roles de instancia de contenedor (`ecsInstanceRole`). A continuación, puede habilitar la configuración de la cuenta de `awsvpcTrunking` para un rol y usar ese rol para las tareas que requieren el enlace troncal de ENI. Para obtener más información sobre el rol de instancia de contenedor, consulte [Rol de IAM de instancia de contenedor de Amazon ECS](instance_IAM_role.md).

Una vez que se cumplan los requisitos previos, puede iniciar una nueva instancia de contenedor con uno de los tipos de instancia de Amazon EC2 compatibles, y la instancia tendrá el aumento de límites de ENI. Para ver una lista de los tipos de instancia admitidos, consulte [Instancias admitidas para un aumento de las interfaces de red de contenedores de Amazon ECS](eni-trunking-supported-instance-types.md). La instancia de contenedor debe tener la versión `1.28.1` o posterior del agente de contenedor y la versión `1.28.1-2` o posterior del paquete ecs-init. Si utiliza la variante de Linux más reciente de la AMI optimizada para Amazon ECS, deberá cumplir estos requisitos. Para obtener más información, consulte [Lanzamiento de una instancia de contenedor de Linux de Amazon ECS](launch_container_instance.md).

**importante**  
Las instancias de Amazon EC2 deben tener desactivadas las solicitudes DNS IPv4 basadas en recursos. Para deshabilitar esta opción, asegúrese de que **Habilitar solicitudes DNS IPV4 (registro A) basadas en recursos** se anula la selección de al crear una nueva instancia mediante la consola de Amazon EC2. Para deshabilitar esta opción mediante el AWS CLI, utilice el siguiente comando.  

```
aws ec2 modify-private-dns-name-options --instance-id i-xxxxxxx --no-enable-resource-name-dns-a-record --no-dry-run
```

**Para ver las instancias de contenedor con aumento de los límites de ENI con la AWS CLI**

Cada instancia de contenedor tiene una interfaz de red predeterminada, lo que se denomina interfaz de red troncal. Para utilizar el siguiente comando a fin de ver una lista de las instancias de contenedor con un aumento de los límites de ENI, consulte el atributo `ecs.awsvpc-trunk-id`, que indica que tiene una interfaz de red troncal.
+ [list-attributes](https://docs.aws.amazon.com/cli/latest/reference/ecs/list-attributes.html) (AWS CLI)

  ```
  aws ecs list-attributes \
        --target-type container-instance \
        --attribute-name ecs.awsvpc-trunk-id \
        --cluster cluster_name \
        --region us-east-1
  ```
+ [Get-ECSAttributeList](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-ECSAttributeList.html) (AWS Tools for Windows PowerShell)

  ```
  Get-ECSAttributeList -TargetType container-instance -AttributeName ecs.awsvpc-trunk-id -Region us-east-1
  ```

# Instancias admitidas para un aumento de las interfaces de red de contenedores de Amazon ECS
<a name="eni-trunking-supported-instance-types"></a>

A continuación, se muestran los tipos de instancias de Amazon EC2 que se admiten y la cantidad de tareas que utilizan el modo de red `awsvpc` que se pueden lanzar en cada tipo de instancias antes y después de optar por incluir la configuración de cuenta `awsvpcTrunking`. 

**importante**  
Aunque se admiten otros tipos de instancia en la misma familia de instancias, no se admiten los tipos de instancia `a1.metal`, `c5.metal`, `c5a.8xlarge`, `c5ad.8xlarge`, `c5d.metal`, `m5.metal`, `p3dn.24xlarge`, `r5.metal`, `r5.8xlarge` y `r5d.metal`.  
Las familias de instancias `c5n`, `d3`, `d3en`, `g3`, `g3s`, `g4dn`, `i3`, `i3en`, `inf1`, `m5dn`, `m5n`, `m5zn`, `mac1`, `r5b`, `r5n`, `r5dn`, `u-12tb1`, `u-6tb1`, `u-9tb1` y `z1d` no son compatibles.

**Topics**
+ [Fin general](#eni-branch-gp)
+ [Optimizada para computación](#eni-branch-co)
+ [Optimizada para memoria](#eni-branch-mo)
+ [Optimizada para almacenamiento](#eni-branch-so)
+ [Computación acelerada](#eni-branch-ac)
+ [Computación de alto rendimiento](#eni-branch-hpc)

## Fin general
<a name="eni-branch-gp"></a>


| Tipo de instancia | Límite de tareas sin enlace troncal de ENI | Límite de tareas con enlace troncal de ENI | 
| --- | --- | --- | 
| a1.medium | 1 | 10 | 
| a1.large | 2 | 10 | 
| a1.xlarge | 3 | 20 | 
| a1.2xlarge | 3 | 40 | 
| a1.4xlarge | 7 | 60 | 
| m5.large | 2 | 10 | 
| m5.xlarge | 3 | 20 | 
| m5.2xlarge | 3 | 40 | 
| m5.4xlarge | 7 | 60 | 
| m5.8xlarge | 7 | 60 | 
| m5.12xlarge | 7 | 60 | 
| m5.16xlarge | 14 | 120 | 
| m5.24xlarge | 14 | 120 | 
| m5a.large | 2 | 10 | 
| m5a.xlarge | 3 | 20 | 
| m5a.2xlarge | 3 | 40 | 
| m5a.4xlarge | 7 | 60 | 
| m5a.8xlarge | 7 | 60 | 
| m5a.12xlarge | 7 | 60 | 
| m5a.16xlarge | 14 | 120 | 
| m5a.24xlarge | 14 | 120 | 
| m5ad.large | 2 | 10 | 
| m5ad.xlarge | 3 | 20 | 
| m5ad.2xlarge | 3 | 40 | 
| m5ad.4xlarge | 7 | 60 | 
| m5ad.8xlarge | 7 | 60 | 
| m5ad.12xlarge | 7 | 60 | 
| m5ad.16xlarge | 14 | 120 | 
| m5ad.24xlarge | 14 | 120 | 
| m5d.large | 2 | 10 | 
| m5d.xlarge | 3 | 20 | 
| m5d.2xlarge | 3 | 40 | 
| m5d.4xlarge | 7 | 60 | 
| m5d.8xlarge | 7 | 60 | 
| m5d.12xlarge | 7 | 60 | 
| m5d.16xlarge | 14 | 120 | 
| m5d.24xlarge | 14 | 120 | 
| m5d.metal | 14 | 120 | 
| m6a.large | 2 | 10 | 
| m6a.xlarge | 3 | 20 | 
| m6a.2xlarge | 3 | 40 | 
| m6a.4xlarge | 7 | 60 | 
| m6a.8xlarge | 7 | 90 | 
| m6a.12xlarge | 7 | 120 | 
| m6a.16xlarge | 14 | 120 | 
| m6a.24xlarge | 14 | 120 | 
| m6a.32xlarge | 14 | 120 | 
| m6a.48xlarge | 14 | 120 | 
| m6a.metal | 14 | 120 | 
| m6g.medium | 1 | 4 | 
| m6g.large | 2 | 10 | 
| m6g.xlarge | 3 | 20 | 
| m6g.2xlarge | 3 | 40 | 
| m6g.4xlarge | 7 | 60 | 
| m6g.8xlarge | 7 | 60 | 
| m6g.12xlarge | 7 | 60 | 
| m6g.16xlarge | 14 | 120 | 
| m6g.metal | 14 | 120 | 
| m6gd.medium | 1 | 4 | 
| m6gd.large | 2 | 10 | 
| m6gd.xlarge | 3 | 20 | 
| m6gd.2xlarge | 3 | 40 | 
| m6gd.4xlarge | 7 | 60 | 
| m6gd.8xlarge | 7 | 60 | 
| m6gd.12xlarge | 7 | 60 | 
| m6gd.16xlarge | 14 | 120 | 
| m6gd.metal | 14 | 120 | 
| m6i.large | 2 | 10 | 
| m6i.xlarge | 3 | 20 | 
| m6i.2xlarge | 3 | 40 | 
| m6i.4xlarge | 7 | 60 | 
| m6i.8xlarge | 7 | 90 | 
| m6i.12xlarge | 7 | 120 | 
| m6i.16xlarge | 14 | 120 | 
| m6i.24xlarge | 14 | 120 | 
| m6i.32xlarge | 14 | 120 | 
| m6i.metal | 14 | 120 | 
| m6id.large | 2 | 10 | 
| m6id.xlarge | 3 | 20 | 
| m6id.2xlarge | 3 | 40 | 
| m6id.4xlarge | 7 | 60 | 
| m6id.8xlarge | 7 | 90 | 
| m6id.12xlarge | 7 | 120 | 
| m6id.16xlarge | 14 | 120 | 
| m6id.24xlarge | 14 | 120 | 
| m6id.32xlarge | 14 | 120 | 
| m6id.metal | 14 | 120 | 
| m6idn.large | 2 | 10 | 
| m6idn.xlarge | 3 | 20 | 
| m6idn.2xlarge | 3 | 40 | 
| m6idn.4xlarge | 7 | 60 | 
| m6idn.8xlarge | 7 | 90 | 
| m6idn.12xlarge | 7 | 120 | 
| m6idn.16xlarge | 14 | 120 | 
| m6idn.24xlarge | 14 | 120 | 
| m6idn.32xlarge | 15 | 120 | 
| m6idn.metal | 15 | 120 | 
| m6in.large | 2 | 10 | 
| m6in.xlarge | 3 | 20 | 
| m6in.2xlarge | 3 | 40 | 
| m6in.4xlarge | 7 | 60 | 
| m6in.8xlarge | 7 | 90 | 
| m6in.12xlarge | 7 | 120 | 
| m6in.16xlarge | 14 | 120 | 
| m6in.24xlarge | 14 | 120 | 
| m6in.32xlarge | 15 | 120 | 
| m6in.metal | 15 | 120 | 
| m7a.medium | 1 | 4 | 
| m7a.large | 2 | 10 | 
| m7a.xlarge | 3 | 20 | 
| m7a.2xlarge | 3 | 40 | 
| m7a.4xlarge | 7 | 60 | 
| m7a.8xlarge | 7 | 90 | 
| m7a.12xlarge | 7 | 120 | 
| m7a.16xlarge | 14 | 120 | 
| m7a.24xlarge | 14 | 120 | 
| m7a.32xlarge | 14 | 120 | 
| m7a.48xlarge | 14 | 120 | 
| m7a.metal-48xl | 14 | 120 | 
| m7g.medium | 1 | 4 | 
| m7g.large | 2 | 10 | 
| m7g.xlarge | 3 | 20 | 
| m7g.2xlarge | 3 | 40 | 
| m7g.4xlarge | 7 | 60 | 
| m7g.8xlarge | 7 | 60 | 
| m7g.12xlarge | 7 | 60 | 
| m7g.16xlarge | 14 | 120 | 
| m7g.metal | 14 | 120 | 
| m7gd.medium | 1 | 4 | 
| m7gd.large | 2 | 10 | 
| m7gd.xlarge | 3 | 20 | 
| m7gd.2xlarge | 3 | 40 | 
| m7gd.4xlarge | 7 | 60 | 
| m7gd.8xlarge | 7 | 60 | 
| m7gd.12xlarge | 7 | 60 | 
| m7gd.16xlarge | 14 | 120 | 
| m7gd.metal | 14 | 120 | 
| m7i.large | 2 | 10 | 
| m7i.xlarge | 3 | 20 | 
| m7i.2xlarge | 3 | 40 | 
| m7i.4xlarge | 7 | 60 | 
| m7i.8xlarge | 7 | 90 | 
| m7i.12xlarge | 7 | 120 | 
| m7i.16xlarge | 14 | 120 | 
| m7i.24xlarge | 14 | 120 | 
| m7i.48xlarge | 14 | 120 | 
| m7i.metal-24xl | 14 | 120 | 
| m7i.metal-48xl | 14 | 120 | 
| m7i-flex.large | 2 | 4 | 
| m7i-flex.xlarge | 3 | 10 | 
| m7i-flex.2xlarge | 3 | 20 | 
| m7i-flex.4xlarge | 7 | 40 | 
| m7i-flex.8xlarge | 7 | 60 | 
| m7i-flex.12xlarge | 7 | 120 | 
| m7i-flex.16xlarge | 14 | 120 | 
| m8a.medium | 1 | 4 | 
| m8a.large | 2 | 10 | 
| m8a.xlarge | 3 | 20 | 
| m8a.2xlarge | 3 | 40 | 
| m8a.4xlarge | 7 | 60 | 
| m8a.8xlarge | 9 | 90 | 
| m8a.12xlarge | 11 | 120 | 
| m8a.16xlarge | 15 | 120 | 
| m8a.24xlarge | 15 | 120 | 
| m8a.48xlarge | 23 | 120 | 
| m8a.metal-24xl | 15 | 120 | 
| m8a.metal-48xl | 23 | 120 | 
| m8azn.medium | 2 | 4 | 
| m8azn.large | 3 | 10 | 
| m8azn.xlarge | 3 | 20 | 
| m8azn.3xlarge | 7 | 40 | 
| m8azn.6xlarge | 7 | 60 | 
| m8azn.12xlarge | 15 | 120 | 
| m8azn.24xlarge | 15 | 120 | 
| m8azn.metal-12xl | 15 | 120 | 
| m8azn.metal-24xl | 15 | 120 | 
| m8g.medium | 1 | 4 | 
| m8g.large | 2 | 10 | 
| m8g.xlarge | 3 | 20 | 
| m8g.2xlarge | 3 | 40 | 
| m8g.4xlarge | 7 | 60 | 
| m8g.8xlarge | 7 | 60 | 
| m8g.12xlarge | 7 | 60 | 
| m8g.16xlarge | 14 | 120 | 
| m8g.24xlarge | 14 | 120 | 
| m8g.48xlarge | 14 | 120 | 
| m8g.metal-24xl | 14 | 120 | 
| m8g.metal-48xl | 14 | 120 | 
| m8gb.medium | 1 | 4 | 
| m8gb.large | 2 | 10 | 
| m8gb.xlarge | 3 | 20 | 
| m8gb.2xlarge | 3 | 40 | 
| m8gb.4xlarge | 7 | 60 | 
| m8gb.8xlarge | 9 | 60 | 
| m8gb.12xlarge | 11 | 60 | 
| m8gb.16xlarge | 15 | 120 | 
| m8gb.24xlarge | 23 | 120 | 
| m8gb.48xlarge | 23 | 120 | 
| m8gb.metal-24xl | 23 | 120 | 
| m8gb.metal-48xl | 23 | 120 | 
| m8gd.medium | 1 | 4 | 
| m8gd.large | 2 | 10 | 
| m8gd.xlarge | 3 | 20 | 
| m8gd.2xlarge | 3 | 40 | 
| m8gd.4xlarge | 7 | 60 | 
| m8gd.8xlarge | 7 | 60 | 
| m8gd.12xlarge | 7 | 60 | 
| m8gd.16xlarge | 14 | 120 | 
| m8gd.24xlarge | 14 | 120 | 
| m8gd.48xlarge | 14 | 120 | 
| m8gd.metal-24xl | 14 | 120 | 
| m8gd.metal-48xl | 14 | 120 | 
| m8gn.medium | 1 | 4 | 
| m8gn.large | 2 | 10 | 
| m8gn.xlarge | 3 | 20 | 
| m8gn.2xlarge | 3 | 40 | 
| m8gn.4xlarge | 7 | 60 | 
| m8gn.8xlarge | 9 | 60 | 
| m8gn.12xlarge | 11 | 60 | 
| m8gn.16xlarge | 15 | 120 | 
| m8gn.24xlarge | 23 | 120 | 
| m8gn.48xlarge | 23 | 120 | 
| m8gn.metal-24xl | 23 | 120 | 
| m8gn.metal-48xl | 23 | 120 | 
| m8i.large | 2 | 10 | 
| m8i.xlarge | 3 | 20 | 
| m8i.2xlarge | 3 | 40 | 
| m8i.4xlarge | 7 | 60 | 
| m8i.8xlarge | 9 | 90 | 
| m8i.12xlarge | 11 | 120 | 
| m8i.16xlarge | 15 | 120 | 
| m8i.24xlarge | 15 | 120 | 
| m8i.32xlarge | 23 | 120 | 
| m8i.48xlarge | 23 | 120 | 
| m8i.96xlarge | 23 | 120 | 
| m8i.metal-48xl | 23 | 120 | 
| m8i.metal-96xl | 23 | 120 | 
| m8id.large | 2 | 10 | 
| m8id.xlarge | 3 | 20 | 
| m8id.2xlarge | 3 | 40 | 
| m8id.4xlarge | 7 | 60 | 
| m8id.8xlarge | 9 | 90 | 
| m8id.12xlarge | 11 | 120 | 
| m8id.16xlarge | 15 | 120 | 
| m8id.24xlarge | 15 | 120 | 
| m8id.32xlarge | 23 | 120 | 
| m8id.48xlarge | 23 | 120 | 
| m8id.96xlarge | 23 | 120 | 
| m8id.metal-48xl | 23 | 120 | 
| m8i.metal-96xl | 23 | 120 | 
| m8i-flex.large | 2 | 4 | 
| m8i-flex.xlarge | 3 | 10 | 
| m8i-flex.2xlarge | 3 | 20 | 
| m8i-flex.4xlarge | 7 | 40 | 
| m8i-flex.8xlarge | 9 | 60 | 
| m8i-flex.12xlarge | 11 | 120 | 
| m8i-flex.16xlarge | 15 | 120 | 
| mac2.metal | 7 | 12 | 
| mac2-m1ultra.metal | 7 | 12 | 
| mac2-m2.metal | 7 | 12 | 
| mac2-m2pro.metal | 7 | 12 | 
| mac-m4.metal | 7 | 12 | 
| mac-m4pro.metal | 7 | 12 | 

## Optimizada para computación
<a name="eni-branch-co"></a>


| Tipo de instancia | Límite de tareas sin enlace troncal de ENI | Límite de tareas con enlace troncal de ENI | 
| --- | --- | --- | 
| c5.large | 2 | 10 | 
| c5.xlarge | 3 | 20 | 
| c5.2xlarge | 3 | 40 | 
| c5.4xlarge | 7 | 60 | 
| c5.9xlarge | 7 | 60 | 
| c5.12xlarge | 7 | 60 | 
| c5.18xlarge | 14 | 120 | 
| c5.24xlarge | 14 | 120 | 
| c5a.large | 2 | 10 | 
| c5a.xlarge | 3 | 20 | 
| c5a.2xlarge | 3 | 40 | 
| c5a.4xlarge | 7 | 60 | 
| c5a.12xlarge | 7 | 60 | 
| c5a.16xlarge | 14 | 120 | 
| c5a.24xlarge | 14 | 120 | 
| c5ad.large | 2 | 10 | 
| c5ad.xlarge | 3 | 20 | 
| c5ad.2xlarge | 3 | 40 | 
| c5ad.4xlarge | 7 | 60 | 
| c5ad.12xlarge | 7 | 60 | 
| c5ad.16xlarge | 14 | 120 | 
| c5ad.24xlarge | 14 | 120 | 
| c5d.large | 2 | 10 | 
| c5d.xlarge | 3 | 20 | 
| c5d.2xlarge | 3 | 40 | 
| c5d.4xlarge | 7 | 60 | 
| c5d.9xlarge | 7 | 60 | 
| c5d.12xlarge | 7 | 60 | 
| c5d.18xlarge | 14 | 120 | 
| c5d.24xlarge | 14 | 120 | 
| c6a.large | 2 | 10 | 
| c6a.xlarge | 3 | 20 | 
| c6a.2xlarge | 3 | 40 | 
| c6a.4xlarge | 7 | 60 | 
| c6a.8xlarge | 7 | 90 | 
| c6a.12xlarge | 7 | 120 | 
| c6a.16xlarge | 14 | 120 | 
| c6a.24xlarge | 14 | 120 | 
| c6a.32xlarge | 14 | 120 | 
| c6a.48xlarge | 14 | 120 | 
| c6a.metal | 14 | 120 | 
| c6g.medium | 1 | 4 | 
| c6g.large | 2 | 10 | 
| c6g.xlarge | 3 | 20 | 
| c6g.2xlarge | 3 | 40 | 
| c6g.4xlarge | 7 | 60 | 
| c6g.8xlarge | 7 | 60 | 
| c6g.12xlarge | 7 | 60 | 
| c6g.16xlarge | 14 | 120 | 
| c6g.metal | 14 | 120 | 
| c6gd.medium | 1 | 4 | 
| c6gd.large | 2 | 10 | 
| c6gd.xlarge | 3 | 20 | 
| c6gd.2xlarge | 3 | 40 | 
| c6gd.4xlarge | 7 | 60 | 
| c6gd.8xlarge | 7 | 60 | 
| c6gd.12xlarge | 7 | 60 | 
| c6gd.16xlarge | 14 | 120 | 
| c6gd.metal | 14 | 120 | 
| c6gn.medium | 1 | 4 | 
| c6gn.large | 2 | 10 | 
| c6gn.xlarge | 3 | 20 | 
| c6gn.2xlarge | 3 | 40 | 
| c6gn.4xlarge | 7 | 60 | 
| c6gn.8xlarge | 7 | 60 | 
| c6gn.12xlarge | 7 | 60 | 
| c6gn.16xlarge | 14 | 120 | 
| c6i.large | 2 | 10 | 
| c6i.xlarge | 3 | 20 | 
| c6i.2xlarge | 3 | 40 | 
| c6i.4xlarge | 7 | 60 | 
| c6i.8xlarge | 7 | 90 | 
| c6i.12xlarge | 7 | 120 | 
| c6i.16xlarge | 14 | 120 | 
| c6i.24xlarge | 14 | 120 | 
| c6i.32xlarge | 14 | 120 | 
| c6i.metal | 14 | 120 | 
| c6id.large | 2 | 10 | 
| c6id.xlarge | 3 | 20 | 
| c6id.2xlarge | 3 | 40 | 
| c6id.4xlarge | 7 | 60 | 
| c6id.8xlarge | 7 | 90 | 
| c6id.12xlarge | 7 | 120 | 
| c6id.16xlarge | 14 | 120 | 
| c6id.24xlarge | 14 | 120 | 
| c6id.32xlarge | 14 | 120 | 
| c6id.metal | 14 | 120 | 
| c6in.large | 2 | 10 | 
| c6in.xlarge | 3 | 20 | 
| c6in.2xlarge | 3 | 40 | 
| c6in.4xlarge | 7 | 60 | 
| c6in.8xlarge | 7 | 90 | 
| c6in.12xlarge | 7 | 120 | 
| c6in.16xlarge | 14 | 120 | 
| c6in.24xlarge | 14 | 120 | 
| c6in.32xlarge | 15 | 120 | 
| c6in.metal | 15 | 120 | 
| c7a.medium | 1 | 4 | 
| c7a.large | 2 | 10 | 
| c7a.xlarge | 3 | 20 | 
| c7a.2xlarge | 3 | 40 | 
| c7a.4xlarge | 7 | 60 | 
| c7a.8xlarge | 7 | 90 | 
| c7a.12xlarge | 7 | 120 | 
| c7a.16xlarge | 14 | 120 | 
| c7a.24xlarge | 14 | 120 | 
| c7a.32xlarge | 14 | 120 | 
| c7a.48xlarge | 14 | 120 | 
| c7a.metal-48xl | 14 | 120 | 
| c7g.medium | 1 | 4 | 
| c7g.large | 2 | 10 | 
| c7g.xlarge | 3 | 20 | 
| c7g.2xlarge | 3 | 40 | 
| c7g.4xlarge | 7 | 60 | 
| c7g.8xlarge | 7 | 60 | 
| c7g.12xlarge | 7 | 60 | 
| c7g.16xlarge | 14 | 120 | 
| c7g.metal | 14 | 120 | 
| c7gd.medium | 1 | 4 | 
| c7gd.large | 2 | 10 | 
| c7gd.xlarge | 3 | 20 | 
| c7gd.2xlarge | 3 | 40 | 
| c7gd.4xlarge | 7 | 60 | 
| c7gd.8xlarge | 7 | 60 | 
| c7gd.12xlarge | 7 | 60 | 
| c7gd.16xlarge | 14 | 120 | 
| c7gd.metal | 14 | 120 | 
| c7gn.medium | 1 | 4 | 
| c7gn.large | 2 | 10 | 
| c7gn.xlarge | 3 | 20 | 
| c7gn.2xlarge | 3 | 40 | 
| c7gn.4xlarge | 7 | 60 | 
| c7gn.8xlarge | 7 | 60 | 
| c7gn.12xlarge | 7 | 60 | 
| c7gn.16xlarge | 14 | 120 | 
| c7gn.metal | 14 | 120 | 
| c7i.large | 2 | 10 | 
| c7i.xlarge | 3 | 20 | 
| c7i.2xlarge | 3 | 40 | 
| c7i.4xlarge | 7 | 60 | 
| c7i.8xlarge | 7 | 90 | 
| c7i.12xlarge | 7 | 120 | 
| c7i.16xlarge | 14 | 120 | 
| c7i.24xlarge | 14 | 120 | 
| c7i.48xlarge | 14 | 120 | 
| c7i.metal-24xl | 14 | 120 | 
| c7i.metal-48xl | 14 | 120 | 
| c7i-flex.large | 2 | 4 | 
| c7i-flex.xlarge | 3 | 10 | 
| c7i-flex.2xlarge | 3 | 20 | 
| c7i-flex.4xlarge | 7 | 40 | 
| c7i-flex.8xlarge | 7 | 60 | 
| c7i-flex.12xlarge | 7 | 120 | 
| c7i-flex.16xlarge | 14 | 120 | 
| c8a.medium | 1 | 4 | 
| c8a.large | 2 | 10 | 
| c8a.xlarge | 3 | 20 | 
| c8a.2xlarge | 3 | 40 | 
| c8a.4xlarge | 7 | 60 | 
| c8a.8xlarge | 9 | 90 | 
| c8a.12xlarge | 11 | 120 | 
| c8a.16xlarge | 15 | 120 | 
| c8a.24xlarge | 15 | 120 | 
| c8a.48xlarge | 23 | 120 | 
| c8a.metal-24xl | 15 | 120 | 
| c8a.metal-48xl | 23 | 120 | 
| c8g.medium | 1 | 4 | 
| c8g.large | 2 | 10 | 
| c8g.xlarge | 3 | 20 | 
| c8g.2xlarge | 3 | 40 | 
| c8g.4xlarge | 7 | 60 | 
| c8g.8xlarge | 7 | 60 | 
| c8g.12xlarge | 7 | 60 | 
| c8g.16xlarge | 14 | 120 | 
| c8g.24xlarge | 14 | 120 | 
| c8g.48xlarge | 14 | 120 | 
| c8g.metal-24xl | 14 | 120 | 
| c8g.metal-48xl | 14 | 120 | 
| c8gb.medium | 1 | 4 | 
| c8gb.large | 2 | 10 | 
| c8gb.xlarge | 3 | 20 | 
| c8gb.2xlarge | 3 | 40 | 
| c8gb.4xlarge | 7 | 60 | 
| c8gb.8xlarge | 9 | 60 | 
| c8gb.12xlarge | 11 | 60 | 
| c8gb.16xlarge | 15 | 120 | 
| c8gb.24xlarge | 23 | 120 | 
| c8gb.48xlarge | 23 | 120 | 
| c8gb.metal-24xl | 23 | 120 | 
| c8gb.metal-48xl | 23 | 120 | 
| c8gd.medium | 1 | 4 | 
| c8gd.large | 2 | 10 | 
| c8gd.xlarge | 3 | 20 | 
| c8gd.2xlarge | 3 | 40 | 
| c8gd.4xlarge | 7 | 60 | 
| c8gd.8xlarge | 7 | 60 | 
| c8gd.12xlarge | 7 | 60 | 
| c8gd.16xlarge | 14 | 120 | 
| c8gd.24xlarge | 14 | 120 | 
| c8gd.48xlarge | 14 | 120 | 
| c8gd.metal-24xl | 14 | 120 | 
| c8gd.metal-48xl | 14 | 120 | 
| c8gn.medium | 1 | 4 | 
| c8gn.large | 2 | 10 | 
| c8gn.xlarge | 3 | 20 | 
| c8gn.2xlarge | 3 | 40 | 
| c8gn.4xlarge | 7 | 60 | 
| c8gn.8xlarge | 9 | 60 | 
| c8gn.12xlarge | 11 | 60 | 
| c8gn.16xlarge | 15 | 120 | 
| c8gn.24xlarge | 23 | 120 | 
| c8gn.48xlarge | 23 | 120 | 
| c8gn.metal-24xl | 23 | 120 | 
| c8gn.metal-48xl | 23 | 120 | 
| c8i.large | 2 | 10 | 
| c8i.xlarge | 3 | 20 | 
| c8i.2xlarge | 3 | 40 | 
| c8i.4xlarge | 7 | 60 | 
| c8i.8xlarge | 9 | 90 | 
| c8i.12xlarge | 11 | 120 | 
| c8i.16xlarge | 15 | 120 | 
| c8i.24xlarge | 15 | 120 | 
| c8i.32xlarge | 23 | 120 | 
| c8i.48xlarge | 23 | 120 | 
| c8i.96xlarge | 23 | 120 | 
| c8i.metal-48xl | 23 | 120 | 
| c8i.metal-96xl | 23 | 120 | 
| c8id.large | 2 | 10 | 
| c8id.xlarge | 3 | 20 | 
| c8id.2xlarge | 3 | 40 | 
| c8id.4xlarge | 7 | 60 | 
| c8id.8xlarge | 9 | 90 | 
| c8id.12xlarge | 11 | 120 | 
| c8id.16xlarge | 15 | 120 | 
| c8id.24xlarge | 15 | 120 | 
| c8id.32xlarge | 23 | 120 | 
| c8id.48xlarge | 23 | 120 | 
| c8id.96xlarge | 23 | 120 | 
| c8gb.metal-48xl | 23 | 120 | 
| c8id.metal-96xl | 23 | 120 | 
| c8i-flex.large | 2 | 4 | 
| c8i-flex.xlarge | 3 | 10 | 
| c8i-flex.2xlarge | 3 | 20 | 
| c8i-flex.4xlarge | 7 | 40 | 
| c8i-flex.8xlarge | 9 | 60 | 
| c8i-flex.12xlarge | 11 | 120 | 
| c8i-flex.16xlarge | 15 | 120 | 

## Optimizada para memoria
<a name="eni-branch-mo"></a>


| Tipo de instancia | Límite de tareas sin enlace troncal de ENI | Límite de tareas con enlace troncal de ENI | 
| --- | --- | --- | 
| r5.large | 2 | 10 | 
| r5.xlarge | 3 | 20 | 
| r5.2xlarge | 3 | 40 | 
| r5.4xlarge | 7 | 60 | 
| r5.12xlarge | 7 | 60 | 
| r5.16xlarge | 14 | 120 | 
| r5.24xlarge | 14 | 120 | 
| r5a.large | 2 | 10 | 
| r5a.xlarge | 3 | 20 | 
| r5a.2xlarge | 3 | 40 | 
| r5a.4xlarge | 7 | 60 | 
| r5a.8xlarge | 7 | 60 | 
| r5a.12xlarge | 7 | 60 | 
| r5a.16xlarge | 14 | 120 | 
| r5a.24xlarge | 14 | 120 | 
| r5ad.large | 2 | 10 | 
| r5ad.xlarge | 3 | 20 | 
| r5ad.2xlarge | 3 | 40 | 
| r5ad.4xlarge | 7 | 60 | 
| r5ad.8xlarge | 7 | 60 | 
| r5ad.12xlarge | 7 | 60 | 
| r5ad.16xlarge | 14 | 120 | 
| r5ad.24xlarge | 14 | 120 | 
| r5b.16xlarge | 14 | 120 | 
| r5d.large | 2 | 10 | 
| r5d.xlarge | 3 | 20 | 
| r5d.2xlarge | 3 | 40 | 
| r5d.4xlarge | 7 | 60 | 
| r5d.8xlarge | 7 | 60 | 
| r5d.12xlarge | 7 | 60 | 
| r5d.16xlarge | 14 | 120 | 
| r5d.24xlarge | 14 | 120 | 
| r5dn.16xlarge | 14 | 120 | 
| r6a.large | 2 | 10 | 
| r6a.xlarge | 3 | 20 | 
| r6a.2xlarge | 3 | 40 | 
| r6a.4xlarge | 7 | 60 | 
| r6a.8xlarge | 7 | 90 | 
| r6a.12xlarge | 7 | 120 | 
| r6a.16xlarge | 14 | 120 | 
| r6a.24xlarge | 14 | 120 | 
| r6a.32xlarge | 14 | 120 | 
| r6a.48xlarge | 14 | 120 | 
| r6a.metal | 14 | 120 | 
| r6g.medium | 1 | 4 | 
| r6g.large | 2 | 10 | 
| r6g.xlarge | 3 | 20 | 
| r6g.2xlarge | 3 | 40 | 
| r6g.4xlarge | 7 | 60 | 
| r6g.8xlarge | 7 | 60 | 
| r6g.12xlarge | 7 | 60 | 
| r6g.16xlarge | 14 | 120 | 
| r6g.metal | 14 | 120 | 
| r6gd.medium | 1 | 4 | 
| r6gd.large | 2 | 10 | 
| r6gd.xlarge | 3 | 20 | 
| r6gd.2xlarge | 3 | 40 | 
| r6gd.4xlarge | 7 | 60 | 
| r6gd.8xlarge | 7 | 60 | 
| r6gd.12xlarge | 7 | 60 | 
| r6gd.16xlarge | 14 | 120 | 
| r6gd.metal | 14 | 120 | 
| r6i.large | 2 | 10 | 
| r6i.xlarge | 3 | 20 | 
| r6i.2xlarge | 3 | 40 | 
| r6i.4xlarge | 7 | 60 | 
| r6i.8xlarge | 7 | 90 | 
| r6i.12xlarge | 7 | 120 | 
| r6i.16xlarge | 14 | 120 | 
| r6i.24xlarge | 14 | 120 | 
| r6i.32xlarge | 14 | 120 | 
| r6i.metal | 14 | 120 | 
| r6id.large | 2 | 10 | 
| r6id.xlarge | 3 | 20 | 
| r6id.2xlarge | 3 | 40 | 
| r6id.4xlarge | 7 | 60 | 
| r6id.8xlarge | 7 | 90 | 
| r6id.12xlarge | 7 | 120 | 
| r6id.16xlarge | 14 | 120 | 
| r6id.24xlarge | 14 | 120 | 
| r6id.32xlarge | 14 | 120 | 
| r6id.metal | 14 | 120 | 
| r6idn.large | 2 | 10 | 
| r6idn.xlarge | 3 | 20 | 
| r6idn.2xlarge | 3 | 40 | 
| r6idn.4xlarge | 7 | 60 | 
| r6idn.8xlarge | 7 | 90 | 
| r6idn.12xlarge | 7 | 120 | 
| r6idn.16xlarge | 14 | 120 | 
| r6idn.24xlarge | 14 | 120 | 
| r6idn.32xlarge | 15 | 120 | 
| r6idn.metal | 15 | 120 | 
| r6in.large | 2 | 10 | 
| r6in.xlarge | 3 | 20 | 
| r6in.2xlarge | 3 | 40 | 
| r6in.4xlarge | 7 | 60 | 
| r6in.8xlarge | 7 | 90 | 
| r6in.12xlarge | 7 | 120 | 
| r6in.16xlarge | 14 | 120 | 
| r6in.24xlarge | 14 | 120 | 
| r6in.32xlarge | 15 | 120 | 
| r6in.metal | 15 | 120 | 
| r7a.medium | 1 | 4 | 
| r7a.large | 2 | 10 | 
| r7a.xlarge | 3 | 20 | 
| r7a.2xlarge | 3 | 40 | 
| r7a.4xlarge | 7 | 60 | 
| r7a.8xlarge | 7 | 90 | 
| r7a.12xlarge | 7 | 120 | 
| r7a.16xlarge | 14 | 120 | 
| r7a.24xlarge | 14 | 120 | 
| r7a.32xlarge | 14 | 120 | 
| r7a.48xlarge | 14 | 120 | 
| r7a.metal-48xl | 14 | 120 | 
| r7g.medium | 1 | 4 | 
| r7g.large | 2 | 10 | 
| r7g.xlarge | 3 | 20 | 
| r7g.2xlarge | 3 | 40 | 
| r7g.4xlarge | 7 | 60 | 
| r7g.8xlarge | 7 | 60 | 
| r7g.12xlarge | 7 | 60 | 
| r7g.16xlarge | 14 | 120 | 
| r7g.metal | 14 | 120 | 
| r7gd.medium | 1 | 4 | 
| r7gd.large | 2 | 10 | 
| r7gd.xlarge | 3 | 20 | 
| r7gd.2xlarge | 3 | 40 | 
| r7gd.4xlarge | 7 | 60 | 
| r7gd.8xlarge | 7 | 60 | 
| r7gd.12xlarge | 7 | 60 | 
| r7gd.16xlarge | 14 | 120 | 
| r7gd.metal | 14 | 120 | 
| r7i.large | 2 | 10 | 
| r7i.xlarge | 3 | 20 | 
| r7i.2xlarge | 3 | 40 | 
| r7i.4xlarge | 7 | 60 | 
| r7i.8xlarge | 7 | 90 | 
| r7i.12xlarge | 7 | 120 | 
| r7i.16xlarge | 14 | 120 | 
| r7i.24xlarge | 14 | 120 | 
| r7i.48xlarge | 14 | 120 | 
| r7i.metal-24xl | 14 | 120 | 
| r7i.metal-48xl | 14 | 120 | 
| r7iz.large | 2 | 10 | 
| r7iz.xlarge | 3 | 20 | 
| r7iz.2xlarge | 3 | 40 | 
| r7iz.4xlarge | 7 | 60 | 
| r7iz.8xlarge | 7 | 90 | 
| r7iz.12xlarge | 7 | 120 | 
| r7iz.16xlarge | 14 | 120 | 
| r7iz.32xlarge | 14 | 120 | 
| r7iz.metal-16xl | 14 | 120 | 
| r7iz.metal-32xl | 14 | 120 | 
| r8a.medium | 1 | 4 | 
| r8a.large | 2 | 10 | 
| r8a.xlarge | 3 | 20 | 
| r8a.2xlarge | 3 | 40 | 
| r8a.4xlarge | 7 | 60 | 
| r8a.8xlarge | 9 | 90 | 
| r8a.12xlarge | 11 | 120 | 
| r8a.16xlarge | 15 | 120 | 
| r8a.24xlarge | 15 | 120 | 
| r8a.48xlarge | 23 | 120 | 
| r8a.metal-24xl | 15 | 120 | 
| r8a.metal-48xl | 23 | 120 | 
| r8g.medium | 1 | 4 | 
| r8g.large | 2 | 10 | 
| r8g.xlarge | 3 | 20 | 
| r8g.2xlarge | 3 | 40 | 
| r8g.4xlarge | 7 | 60 | 
| r8g.8xlarge | 7 | 60 | 
| r8g.12xlarge | 7 | 60 | 
| r8g.16xlarge | 14 | 120 | 
| r8g.24xlarge | 14 | 120 | 
| r8g.48xlarge | 14 | 120 | 
| r8g.metal-24xl | 14 | 120 | 
| r8g.metal-48xl | 14 | 120 | 
| r8gb.medium | 1 | 4 | 
| r8gb.large | 2 | 10 | 
| r8gb.xlarge | 3 | 20 | 
| r8gb.2xlarge | 3 | 40 | 
| r8gb.4xlarge | 7 | 60 | 
| r8gb.8xlarge | 9 | 60 | 
| r8gb.12xlarge | 11 | 60 | 
| r8gb.16xlarge | 15 | 120 | 
| r8gb.24xlarge | 23 | 120 | 
| r8gb.48xlarge | 23 | 120 | 
| r8gb.metal-24xl | 23 | 120 | 
| r8gb.metal-48xl | 23 | 120 | 
| r8gd.medium | 1 | 4 | 
| r8gd.large | 2 | 10 | 
| r8gd.xlarge | 3 | 20 | 
| r8gd.2xlarge | 3 | 40 | 
| r8gd.4xlarge | 7 | 60 | 
| r8gd.8xlarge | 7 | 60 | 
| r8gd.12xlarge | 7 | 60 | 
| r8gd.16xlarge | 14 | 120 | 
| r8gd.24xlarge | 14 | 120 | 
| r8gd.48xlarge | 14 | 120 | 
| r8gd.metal-24xl | 14 | 120 | 
| r8gd.metal-48xl | 14 | 120 | 
| r8gn.medium | 1 | 4 | 
| r8gn.large | 2 | 10 | 
| r8gn.xlarge | 3 | 20 | 
| r8gn.2xlarge | 3 | 40 | 
| r8gn.4xlarge | 7 | 60 | 
| r8gn.8xlarge | 9 | 60 | 
| r8gn.12xlarge | 11 | 60 | 
| r8gn.16xlarge | 15 | 120 | 
| r8gn.24xlarge | 23 | 120 | 
| r8gn.48xlarge | 23 | 120 | 
| r8gn.metal-24xl | 23 | 120 | 
| r8gn.metal-48xl | 23 | 120 | 
| r8i.large | 2 | 10 | 
| r8i.xlarge | 3 | 20 | 
| r8i.2xlarge | 3 | 40 | 
| r8i.4xlarge | 7 | 60 | 
| r8i.8xlarge | 9 | 90 | 
| r8i.12xlarge | 11 | 120 | 
| r8i.16xlarge | 15 | 120 | 
| r8i.24xlarge | 15 | 120 | 
| r8i.32xlarge | 23 | 120 | 
| r8i.48xlarge | 23 | 120 | 
| r8i.96xlarge | 23 | 120 | 
| r8i.metal-48xl | 23 | 120 | 
| r8i.metal-96xl | 23 | 120 | 
| r8id.large | 2 | 10 | 
| r8id.xlarge | 3 | 20 | 
| r8id.2xlarge | 3 | 40 | 
| r8id.4xlarge | 7 | 60 | 
| r8id.8xlarge | 9 | 90 | 
| r8id.12xlarge | 11 | 120 | 
| r8id.16xlarge | 15 | 120 | 
| r8id.24xlarge | 15 | 120 | 
| r8id.32xlarge | 23 | 120 | 
| r8id.48xlarge | 23 | 120 | 
| r8id.96xlarge | 23 | 120 | 
| r8id.metal-48xl | 23 | 120 | 
| r8id.metal-96xl | 23 | 120 | 
| r8i-flex.large | 2 | 4 | 
| r8i-flex.xlarge | 3 | 10 | 
| r8i-flex.2xlarge | 3 | 20 | 
| r8i-flex.4xlarge | 7 | 40 | 
| r8i-flex.8xlarge | 9 | 60 | 
| r8i-flex.12xlarge | 11 | 120 | 
| r8i-flex.16xlarge | 15 | 120 | 
| u-3tb1.56xlarge | 7 | 12 | 
| u-6tb1.56xlarge | 14 | 12 | 
| u-18tb1.112xlarge | 14 | 12 | 
| u-18tb1.metal | 14 | 12 | 
| u-24tb1.112xlarge | 14 | 12 | 
| u-24tb1.metal | 14 | 12 | 
| u7i-6tb.112xlarge | 14 | 120 | 
| u7i-8tb.112xlarge | 14 | 120 | 
| u7i-12tb.224xlarge | 14 | 120 | 
| u7in-16tb.224xlarge | 15 | 120 | 
| u7in-24tb.224xlarge | 15 | 120 | 
| u7in-32tb.224xlarge | 15 | 120 | 
| u7inh-32tb.480xlarge | 15 | 120 | 
| x2gd.medium | 1 | 10 | 
| x2gd.large | 2 | 10 | 
| x2gd.xlarge | 3 | 20 | 
| x2gd.2xlarge | 3 | 40 | 
| x2gd.4xlarge | 7 | 60 | 
| x2gd.8xlarge | 7 | 60 | 
| x2gd.12xlarge | 7 | 60 | 
| x2gd.16xlarge | 14 | 120 | 
| x2gd.metal | 14 | 120 | 
| x2idn.16xlarge | 14 | 120 | 
| x2idn.24xlarge | 14 | 120 | 
| x2idn.32xlarge | 14 | 120 | 
| x2idn.metal | 14 | 120 | 
| x2iedn.xlarge | 3 | 13 | 
| x2iedn.2xlarge | 3 | 29 | 
| x2iedn.4xlarge | 7 | 60 | 
| x2iedn.8xlarge | 7 | 120 | 
| x2iedn.16xlarge | 14 | 120 | 
| x2iedn.24xlarge | 14 | 120 | 
| x2iedn.32xlarge | 14 | 120 | 
| x2iedn.metal | 14 | 120 | 
| x2iezn.2xlarge | 3 | 64 | 
| x2iezn.4xlarge | 7 | 120 | 
| x2iezn.6xlarge | 7 | 120 | 
| x2iezn.8xlarge | 7 | 120 | 
| x2iezn.12xlarge | 14 | 120 | 
| x2iezn.metal | 14 | 120 | 
| x8g.medium | 1 | 4 | 
| x8g.large | 2 | 10 | 
| x8g.xlarge | 3 | 20 | 
| x8g.2xlarge | 3 | 40 | 
| x8g.4xlarge | 7 | 60 | 
| x8g.8xlarge | 7 | 60 | 
| x8g.12xlarge | 7 | 60 | 
| x8g.16xlarge | 14 | 120 | 
| x8g.24xlarge | 14 | 120 | 
| x8g.48xlarge | 14 | 120 | 
| x8g.metal-24xl | 14 | 120 | 
| x8g.metal-48xl | 14 | 120 | 
| x8aedz.large | 3 | 10 | 
| x8aedz.xlarge | 3 | 20 | 
| x8aedz.3xlarge | 7 | 40 | 
| x8aedz.6xlarge | 7 | 60 | 
| x8aedz.12xlarge | 15 | 120 | 
| x8aedz.24xlarge | 15 | 120 | 
| x8aedz.metal-12xl | 15 | 120 | 
| x8aedz.metal-24xl | 15 | 120 | 
| x8i.large | 2 | 10 | 
| x8i.xlarge | 3 | 20 | 
| x8i.2xlarge | 3 | 40 | 
| x8i.4xlarge | 7 | 60 | 
| x8i.8xlarge | 9 | 90 | 
| x8i.12xlarge | 11 | 120 | 
| x8i.16xlarge | 15 | 120 | 
| x8i.24xlarge | 15 | 120 | 
| x8i.32xlarge | 23 | 120 | 
| x8i.48xlarge | 23 | 120 | 
| x8i.64xlarge | 23 | 120 | 
| x8i.96xlarge | 23 | 120 | 
| x8i.metal-48xl | 23 | 120 | 
| x8i.metal-96xl | 23 | 120 | 

## Optimizada para almacenamiento
<a name="eni-branch-so"></a>


| Tipo de instancia | Límite de tareas sin enlace troncal de ENI | Límite de tareas con enlace troncal de ENI | 
| --- | --- | --- | 
| i4g.large | 2 | 10 | 
| i4g.xlarge | 3 | 20 | 
| i4g.2xlarge | 3 | 40 | 
| i4g.4xlarge | 7 | 60 | 
| i4g.8xlarge | 7 | 60 | 
| i4g.16xlarge | 14 | 120 | 
| i4i.xlarge | 3 | 8 | 
| i4i.2xlarge | 3 | 28 | 
| i4i.4xlarge | 7 | 58 | 
| i4i.8xlarge | 7 | 118 | 
| i4i.12xlarge | 7 | 118 | 
| i4i.16xlarge | 14 | 248 | 
| i4i.24xlarge | 14 | 118 | 
| i4i.32xlarge | 14 | 498 | 
| i4i.metal | 14 | 498 | 
| i7i.large | 2 | 10 | 
| i7i.xlarge | 3 | 20 | 
| i7i.2xlarge | 3 | 40 | 
| i7i.4xlarge | 7 | 60 | 
| i7i.8xlarge | 7 | 90 | 
| i7i.12xlarge | 7 | 90 | 
| i7i.16xlarge | 14 | 120 | 
| i7i.24xlarge | 14 | 120 | 
| i7i.48xlarge | 14 | 120 | 
| i7i.metal-24xl | 14 | 120 | 
| i7i.metal-48xl | 14 | 120 | 
| i7ie.large | 2 | 20 | 
| i7ie.xlarge | 3 | 29 | 
| i7ie.2xlarge | 3 | 29 | 
| i7ie.3xlarge | 3 | 29 | 
| i7ie.6xlarge | 7 | 60 | 
| i7ie.12xlarge | 7 | 60 | 
| i7ie.18xlarge | 14 | 120 | 
| i7ie.24xlarge | 14 | 120 | 
| i7ie.48xlarge | 14 | 120 | 
| i7ie.metal-24xl | 14 | 120 | 
| i7ie.metal-48xl | 14 | 120 | 
| i8g.large | 2 | 10 | 
| i8g.xlarge | 3 | 20 | 
| i8g.2xlarge | 3 | 40 | 
| i8g.4xlarge | 7 | 60 | 
| i8g.8xlarge | 7 | 60 | 
| i8g.12xlarge | 7 | 60 | 
| i8g.16xlarge | 14 | 120 | 
| i8g.24xlarge | 14 | 120 | 
| i8g.48xlarge | 14 | 120 | 
| i8g.metal-24xl | 14 | 120 | 
| i8g.metal-48xl | 14 | 120 | 
| i8ge.large | 2 | 20 | 
| i8ge.xlarge | 3 | 29 | 
| i8ge.2xlarge | 3 | 29 | 
| i8ge.3xlarge | 5 | 29 | 
| i8ge.6xlarge | 9 | 60 | 
| i8ge.12xlarge | 11 | 60 | 
| i8ge.18xlarge | 15 | 120 | 
| i8ge.24xlarge | 15 | 120 | 
| i8ge.48xlarge | 23 | 120 | 
| i8ge.metal-24xl | 15 | 120 | 
| i8ge.metal-48xl | 23 | 120 | 
| im4gn.large | 2 | 10 | 
| im4gn.xlarge | 3 | 20 | 
| im4gn.2xlarge | 3 | 40 | 
| im4gn.4xlarge | 7 | 60 | 
| im4gn.8xlarge | 7 | 60 | 
| im4gn.16xlarge | 14 | 120 | 
| is4gen.medium | 1 | 4 | 
| is4gen.large | 2 | 10 | 
| is4gen.xlarge | 3 | 20 | 
| is4gen.2xlarge | 3 | 40 | 
| is4gen.4xlarge | 7 | 60 | 
| is4gen.8xlarge | 7 | 60 | 

## Computación acelerada
<a name="eni-branch-ac"></a>


| Tipo de instancia | Límite de tareas sin enlace troncal de ENI | Límite de tareas con enlace troncal de ENI | 
| --- | --- | --- | 
| dl1.24xlarge | 59 | 120 | 
| dl2q.24xlarge | 14 | 120 | 
| f2.6xlarge | 7 | 90 | 
| f2.12xlarge | 7 | 120 | 
| f2.48xlarge | 14 | 120 | 
| g4ad.xlarge | 1 | 12 | 
| g4ad.2xlarge | 1 | 12 | 
| g4ad.4xlarge | 2 | 12 | 
| g4ad.8xlarge | 3 | 12 | 
| g4ad.16xlarge | 7 | 12 | 
| g5.xlarge | 3 | 6 | 
| g5.2xlarge | 3 | 19 | 
| g5.4xlarge | 7 | 40 | 
| g5.8xlarge | 7 | 90 | 
| g5.12xlarge | 14 | 120 | 
| g5.16xlarge | 7 | 120 | 
| g5.24xlarge | 14 | 120 | 
| g5.48xlarge | 6 | 120 | 
| g5g.xlarge | 3 | 20 | 
| g5g.2xlarge | 3 | 40 | 
| g5g.4xlarge | 7 | 60 | 
| g5g.8xlarge | 7 | 60 | 
| g5g.16xlarge | 14 | 120 | 
| g5g.metal | 14 | 120 | 
| g6.xlarge | 3 | 20 | 
| g6.2xlarge | 3 | 40 | 
| g6.4xlarge | 7 | 60 | 
| g6.8xlarge | 7 | 90 | 
| g6.12xlarge | 7 | 120 | 
| g6.16xlarge | 14 | 120 | 
| g6.24xlarge | 14 | 120 | 
| g6.48xlarge | 14 | 120 | 
| g6e.xlarge | 3 | 20 | 
| g6e.2xlarge | 3 | 40 | 
| g6e.4xlarge | 7 | 60 | 
| g6g.8xlarge | 7 | 90 | 
| g6e.12xlarge | 9 | 120 | 
| g6e.16xlarge | 14 | 120 | 
| g6e.24xlarge | 19 | 120 | 
| g6e.48xlarge | 39 | 120 | 
| g6f.large | 1 | 10 | 
| g6f.xlarge | 3 | 20 | 
| g6f.2xlarge | 3 | 40 | 
| g6f.4xlarge | 7 | 60 | 
| gr6.4xlarge | 7 | 60 | 
| gr6.8xlarge | 7 | 90 | 
| gr6f.4xlarge | 7 | 60 | 
| g7e.2xlarge | 3 | 242 | 
| g7e.4xlarge | 7 | 242 | 
| g7g.8xlarge | 7 | 242 | 
| g7e.12xlarge | 9 | 242 | 
| g7e.24xlarge | 19 | 242 | 
| g7e.48xlarge | 39 | 242 | 
| inf2.xlarge | 3 | 20 | 
| inf2.8xlarge | 7 | 90 | 
| inf2.24xlarge | 14 | 120 | 
| inf2.48xlarge | 14 | 120 | 
| p4d.24xlarge | 59 | 120 | 
| p4de.24xlarge | 59 | 120 | 
| p5.4xlarge | 3 | 60 | 
| p5.48xlarge | 63 | 242 | 
| p5e.48xlarge | 63 | 242 | 
| p5en.48xlarge | 63 | 242 | 
| p6-b200.48xlarge | 31 | 242 | 
| p6-b300.48xlarge | 67 | 242 | 
| p6e-gb200.36xlarge | 38 | 120 | 
| trn1.2xlarge | 3 | 19 | 
| trn1.32xlarge | 39 | 120 | 
| trn1n.32xlarge | 79 | 242 | 
| trn2.3xlarge | 1 | 14 | 
| trn2.48xlarge | 31 | 242 | 
| trn2u.48xlarge | 31 | 242 | 
| vt1.3xlarge | 3 | 40 | 
| vt1.6xlarge | 7 | 60 | 
| vt1.24xlarge | 14 | 120 | 

## Computación de alto rendimiento
<a name="eni-branch-hpc"></a>


| Tipo de instancia | Límite de tareas sin enlace troncal de ENI | Límite de tareas con enlace troncal de ENI | 
| --- | --- | --- | 
| hpc6a.48xlarge | 1 | 120 | 
| hpc6id.32xlarge | 1 | 120 | 
| hpc7g.4xlarge | 3 | 120 | 
| hpc7g.8xlarge | 3 | 120 | 
| hpc7g.16xlarge | 3 | 120 | 
| hpc8a.96xlarge | 3 | -2 | 

# Reserva de la memoria de instancias de contenedor de Linux de Amazon ECS
<a name="memory-management"></a>

Cuando el agente de contenedor de Amazon ECS registra una instancia de contenedor en un clúster, el agente debe determinar la cantidad de memoria disponible que puede reservar la instancia de contenedor para las tareas. Debido a la sobrecarga de memoria de la plataforma y a la memoria ocupada por el kernel del sistema, este número difiere de la cantidad de memoria instalada que se anuncia para las instancias de Amazon EC2. Por ejemplo, una instancia `m4.large` tiene 8 GiB de memoria instalada. Sin embargo, esto no siempre significa que haya exactamente 8192 MiB de memoria disponible para las tareas cuando se registra la instancia de contenedor.

## Determinación de recursos de memoria de instancias administradas de ECS
<a name="ecs-mi-memory-calculation"></a>

Instancias administradas de Amazon ECS utiliza un enfoque jerárquico para determinar los requisitos de recursos de memoria para las tareas. A diferencia de ECS en EC2, que se basa en la introspección de memoria de Docker, instancias administradas de ECS calcula los requisitos de memoria directamente a partir de la carga útil de la tarea durante las decisiones de programación.

Cuando el agente de instancias administradas de ECS recibe una tarea, calcula las necesidades de memoria mediante el siguiente orden de prioridad:

1. **Memoria a nivel de tarea (máxima prioridad)**: si se especifica memoria a nivel de tarea en la definición de la tarea, el agente utiliza este valor directamente. Esto tiene prioridad sobre todos los ajustes de memoria a nivel de contenedor.

1. **Suma de memoria a nivel de contenedor (alternativa)**: si no se especifica la memoria a nivel de tarea (o es 0), el agente suma los requisitos de memoria de todos los contenedores de la tarea. Para cada contenedor, utiliza:

   1. *Reserva de memoria (límite flexible)*: si un contenedor especifica `memoryReservation` en su configuración, el agente usa este valor.

   1. *Memoria del contenedor (límite estricto)*: si `memoryReservation` no se especifica, el agente utiliza el campo `memory` del contenedor.

**Example Memoria a nivel de tarea especificada**  
Cuando se especifica la memoria a nivel de tarea, tiene prioridad sobre la configuración a nivel de contenedor:  

```
{
  "family": "my-task",
  "memory": "2048",
  "containerDefinitions": [
    {
      "name": "container1",
      "memory": 1024,
      "memoryReservation": 512
    }
  ]
}
```
El agente reserva 2048 MiB (la memoria a nivel de tarea tiene prioridad).

**Example Memoria a nivel de contenedor con reservas**  
Cuando no se especifica la memoria a nivel de tarea, el agente suma los requisitos de memoria del contenedor:  

```
{
  "family": "my-task",
  "containerDefinitions": [
    {
      "name": "container1",
      "memory": 1024,
      "memoryReservation": 512
    },
    {
      "name": "container2",
      "memory": 512
    }
  ]
}
```
El agente reserva 512 MiB (reserva de contenedor1) \$1 512 MiB (memoria de contenedor2) = 1024 MiB en total.

El agente de instancias administradas de ECS realiza el cálculo de la memoria en tres fases:

1. **Recepción de tareas**: cuando la carga útil de una tarea llega desde el plano de control del ECS, el agente calcula inmediatamente la memoria requerida.

1. **Almacenamiento de recursos**: el requisito de memoria calculado se almacena en el modelo de tareas para su uso posterior en las operaciones de contabilidad de recursos.

1. **Decisión de programación**: antes de aceptar una tarea, el agente comprueba si hay suficiente memoria disponible. Si no hay suficiente memoria disponible, la tarea se rechaza y permanece en la cola de servicios de ECS hasta que haya recursos disponibles.

**nota**  
A diferencia de ECS en EC2, instancias administradas de ECS no utiliza la variable de configuración `ECS_RESERVED_MEMORY`. La reserva de memoria para los procesos del sistema se gestiona mediante la administración de recursos de la plataforma subyacente, y el agente lleva a cabo una contabilidad precisa de los recursos en función de las definiciones de las tareas.

 Para ECS en EC2, el agente de contenedor de Amazon ECS proporciona una variable de configuración con el nombre `ECS_RESERVED_MEMORY`, que se puede utilizar para eliminar un número concreto de MiB de memoria del grupo asignado a las tareas. Este es un mecanismo eficaz que permite reservar memoria para los procesos críticos del sistema.

Si se ocupa toda la memoria de una instancia de contenedor con las tareas, es posible que las tareas compitan con los procesos críticos del sistema por la memoria y posiblemente inicien un error del sistema.

Por ejemplo, si se especifica `ECS_RESERVED_MEMORY=256` en el archivo de configuración del agente, el agente registrará la memoria total menos 256 MiB de esa instancia y las tareas de ECS no podrán asignar 256 MiB de memoria. Para obtener más información sobre las variables de configuración del agente y cómo definirlas, consulte [Configuración del agente de contenedor de Amazon ECS](ecs-agent-config.md) y [Arranque de instancias de contenedor de Linux de Amazon ECS para la transferencia de datos](bootstrap_container_instance.md).

Si especifica 8192 MiB para la tarea y ninguna de las instancias de contenedor tiene 8192 MiB o más de memoria disponible para satisfacer este requisito, la tarea no se puede ubicar en el clúster. Si utiliza un entorno informático administrado, AWS Batch debe iniciar un tipo de instancia de mayor tamaño para poder acomodar la solicitud.

El agente de contenedor de Amazon ECS utiliza la función `ReadMemInfo()` de Docker para consultar la memoria total disponible al sistema operativo. Tanto Linux como Windows cuentan con 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
```
Ejemplo de la salida de 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 8 373 026 816 bytes de memoria total, lo que se traduce en 7 985 MiB disponibles para tareas.

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

```
C:\> wmic ComputerSystem get TotalPhysicalMemory
```
Ejemplo de la salida de una instancia `m4.large` que ejecuta la AMI de Windows Server optimizada para Amazon ECS.  

```
TotalPhysicalMemory
8589524992
```
Esta instancia tiene 8 589 524 992 bytes de memoria total, lo que se traduce en 8 191 MiB disponibles para tareas.

## Visualización de la memoria de instancias de contenedor
<a name="viewing-memory"></a>

Puede consultar la cantidad de memoria que registra una instancia de contenedor a través de la consola de Amazon ECS (o mediante la operación de la API [DescribeContainerInstances](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html)). Si, para intentar maximizar el uso de recursos, proporciona la mayor cantidad de memoria posible a las tareas para un determinado tipo de instancia, puede observar la memoria disponible para esa instancia de contenedor y, a continuación, asignar a las tareas esa cantidad de memoria.

**Visualización de la memoria de la instancia de contenedor**

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

1. En el panel de navegación, seleccione **Clústeres** y elija el clúster que aloja su instancia de contenedor.

1. Elija **Infraestructura** y, a continuación, en Instancias de contenedor, elija una instancia de contenedor.

1. En la sección **Recursos**, se muestra la memoria registrada y la memoria disponible para la instancia de contenedor.

   El valor del campo **Registrada** corresponde a la memoria que la instancia de contenedor registró en Amazon ECS cuando se inició por primera vez, mientras que el valor del campo **Disponible** corresponde a la memoria que aún no se ha asignado a ninguna tarea.

# Administración remota de instancias de contenedor de Amazon ECS mediante AWS Systems Manager
<a name="ec2-run-command"></a>

Puede utilizar la función Run Command de AWS Systems Manager (Systems Manager) para administrar la configuración de las instancias de contenedor de Amazon ECS de forma segura y remota. Run Command proporciona una manera sencilla de realizar tareas administrativas comunes sin necesidad de iniciar sesión localmente en la instancia. Puede administrar cambios de configuración en los clústeres ejecutando comandos simultáneamente en varias instancia de contenedor. Ejecutar comando notifica el estado y los resultados de cada comando.

Aquí tiene algunos ejemplos de los tipos de tareas que puede llevar a cabo con Ejecutar comando:
+ Instalar o desinstalar paquetes.
+ Realizar actualizaciones de seguridad.
+ Limpiar imágenes de Docker.
+ Parar o comenzar servicios.
+ Ver recursos del sistema.
+ Ver archivos de registro.
+ Realizar operaciones de archivo.

Para obtener más información acerca de Run Command, consulte [AWS Systems Manager Run Command](https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command.html) en la *Guía del usuario de AWS Systems Manager*.

A continuación, se indican los son requisitos previos para usar Systems Manager con Amazon ECS.

1. Debe conceder permisos al rol de instancia de contenedor (**ecsInstanceRole**) para acceder a las API de Systems Manager. Para ello, asigne **AmazonSSMManagedInstanceCore** al rol `ecsInstanceRole`. Para obtener información acerca de cómo asociar una política a un rol, consulte [Actualización de los permisos de un rol](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-permissions.html) en la *Guía del usuario de AWS Identity and Access Management*.

1. Compruebe que SSM Agent esté instalado en las instancias del contenedor. Para obtener más información, consulte [Instalación y desinstalación manual de SSM Agent en instancias EC2 para Linux](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-linux.html).

Después de asociar políticas administradas de Systems Manager al `ecsInstanceRole` y de verificar que el agente de AWS Systems Manager (SSM Agent) esté instalado en las instancias de contenedor, puede comenzar a utilizar Run Command para enviar comandos a las instancias de contenedor. Para obtener información acerca de la ejecución de comandos y scripts del shell en las instancias y la visualización del resultado obtenido, consulte [Ejecución de comandos mediante Run Command de Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command.html) y [Explicaciones sobre Run Command](https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command-walkthroughs.html) en la *Guía del usuario de AWS Systems Manager.* 

Un caso de uso común es actualizar el software de la instancia de contenedor con Run Command. Puede seguir los procedimientos de la Guía del usuario de AWS Systems Manager con los siguientes parámetros.


| Parámetro | Valor | 
| --- | --- | 
|  **Documento de comandos**  | AWS-RunShellScript | 
| Comando |  <pre>$ yum update -y</pre> | 
| Instancias de destino | Sus instancias de contenedor | 

# Uso de un proxy HTTP para instancias de contenedor de Linux de Amazon ECS
<a name="http_proxy_config"></a>

Puede configurar las instancias de contenedor de Amazon ECS para que utilicen un proxy HTTP tanto para el agente de contenedor de Amazon ECS como para el daemon de Docker. Esto resulta útil si las instancias de contenedor no tienen acceso de red externo a través de una gateway de Internet de Amazon VPC, una gateway NAT o una instancia. 

Para configurar la instancia de contenedor de Linux de Amazon ECS de modo que utilice un proxy HTTP, establezca las siguientes variables en los archivos correspondiente en el momento del lanzamiento (con datos de usuario de Amazon EC2). También puede editar manualmente el archivo de configuración y, a continuación, reiniciar el agente.

`/etc/ecs/ecs.config` (AMI de Amazon Linux y Amazon Linux 2)    
`HTTP_PROXY=10.0.0.131:3128`  
Establezca este valor en el nombre de host (o dirección IP) y en el número de puerto de un proxy HTTP que se utilizará para que el agente de Amazon ECS se conecte a Internet. Por ejemplo, las instancias de contenedor podrían no tener acceso de red externo a través de una gateway de Internet de Amazon VPC, una gateway NAT o una instancia.  
`NO_PROXY=169.254.169.254,169.254.170.2,/var/run/docker.sock`  
Establezca este valor en `169.254.169.254,169.254.170.2,/var/run/docker.sock` para filtrar los metadatos de las instancias EC2, los roles de IAM para tareas y el tráfico del daemon de Docker procedente del proxy. 

`/etc/systemd/system/ecs.service.d/http-proxy.conf` (Amazon Linux 2 solamente)    
`Environment="HTTP_PROXY=10.0.0.131:3128/"`  
Establezca este valor en el nombre de host (o dirección IP) y en el número de puerto de un proxy HTTP que desee utilizar para que `ecs-init` se conecte a Internet. Por ejemplo, las instancias de contenedor podrían no tener acceso de red externo a través de una gateway de Internet de Amazon VPC, una gateway NAT o una instancia.  
`Environment="NO_PROXY=169.254.169.254,169.254.170.2,/var/run/docker.sock"`  
Establezca este valor en `169.254.169.254,169.254.170.2,/var/run/docker.sock` para filtrar los metadatos de las instancias EC2, los roles de IAM para tareas y el tráfico del daemon de Docker procedente del proxy. 

`/etc/init/ecs.override` (AMI de Amazon Linux solamente)    
`env HTTP_PROXY=10.0.0.131:3128`  
Establezca este valor en el nombre de host (o dirección IP) y en el número de puerto de un proxy HTTP que desee utilizar para que `ecs-init` se conecte a Internet. Por ejemplo, las instancias de contenedor podrían no tener acceso de red externo a través de una gateway de Internet de Amazon VPC, una gateway NAT o una instancia.  
`env NO_PROXY=169.254.169.254,169.254.170.2,/var/run/docker.sock`  
Establezca este valor en `169.254.169.254,169.254.170.2,/var/run/docker.sock` para filtrar los metadatos de las instancias EC2, los roles de IAM para tareas y el tráfico del daemon de Docker procedente del proxy. 

`/etc/systemd/system/docker.service.d/http-proxy.conf` (Amazon Linux 2 solamente)    
`Environment="HTTP_PROXY=http://10.0.0.131:3128"`  
Establezca este valor en el nombre de host (o dirección IP) y en el número de puerto de un proxy HTTP que utilizar para que el daemon de Docker se conecte a Internet. Por ejemplo, las instancias de contenedor podrían no tener acceso de red externo a través de una gateway de Internet de Amazon VPC, una gateway NAT o una instancia.  
`Environment="NO_PROXY=169.254.169.254,169.254.170.2"`  
Establezca este valor en `169.254.169.254,169.254.170.2` para filtrar metadatos de instancia EC2 desde el proxy. 

`/etc/sysconfig/docker` (solo AMI de Amazon Linux y Amazon Linux 2)    
`export HTTP_PROXY=http://10.0.0.131:3128`  
Establezca este valor en el nombre de host (o dirección IP) y en el número de puerto de un proxy HTTP que utilizar para que el daemon de Docker se conecte a Internet. Por ejemplo, las instancias de contenedor podrían no tener acceso de red externo a través de una gateway de Internet de Amazon VPC, una gateway NAT o una instancia.  
`export NO_PROXY=169.254.169.254,169.254.170.2`  
Establezca este valor en `169.254.169.254,169.254.170.2` para filtrar metadatos de instancia EC2 desde el proxy. 

Establecer estas variables de entorno en los archivos anteriores solo afecta al agente de contenedor de Amazon ECS, a `ecs-init` y al daemon de Docker. No configuran ningún otro servicio (como **yum**) para que utilice el proxy.

Para obtener información sobre cómo configurar el proxy, consulte [How do I set up an HTTP proxy for Docker and the Amazon ECS container agent in Amazon Linux 2 or AL2023](https://repost.aws/knowledge-center/ecs-http-proxy-docker-linux2).

# Configuración de instancias preinicializadas para el grupo de escalado automático de Amazon ECS
<a name="using-warm-pool"></a>

Amazon ECS admite grupos de calentamiento de Amazon EC2 Auto Scaling. Un grupo de calentamiento es un grupo de Amazon EC2 instances (Instancias de Amazon EC2) inicializadas previamente listas para ponerse en servicio. Siempre que su aplicación necesita escalar horizontalmente, Amazon EC2 Auto Scaling utiliza las instancias preinicializadas del grupo de calentamiento en lugar de lanzar instancias en frío, permite ejecutar cualquier proceso de inicialización final y, a continuación, pone la instancia en servicio.

Para obtener más información sobre grupos de calentamiento y cómo agregar un grupo de calentamiento a un grupo de Auto Scaling, consulte [Grupos de calentamiento para Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-warm-pools.html) *en la Guía del usuario de Amazon EC2 Auto Scaling*.

Cuando se crea o actualiza un grupo de calentamiento para un grupo de escalado automático para Amazon ECS, no se puede configurar la opción que devuelve las instancias al grupo de calentamiento al reducir horizontalmente (`ReuseOnScaleIn`). Para obtener más información, consulte [put-warm-pool](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/put-warm-pool.html) en la *Referencia de AWS Command Line Interface*.

Para utilizar los grupos de calentamiento con su clúster de Amazon ECS, establezca la variable de configuración del agente `ECS_WARM_POOLS_CHECK` en `true` en el campo **User data** (Datos de usuario) de la plantilla de lanzamiento del grupo de Amazon EC2 Auto Scaling. 

A continuación, mostramos un ejemplo de cómo se puede especificar la variable de configuración en el campo **User data** (Datos de usuario) de una plantilla de lanzamiento de Amazon EC2. Reemplace *MyCluster* por el nombre del clúster.

```
#!/bin/bash
cat <<'EOF' >> /etc/ecs/ecs.config
ECS_CLUSTER=MyCluster
ECS_WARM_POOLS_CHECK=true
EOF
```

Esta variable `ECS_WARM_POOLS_CHECK` solo se admite en versiones de agente `1.59.0` y posterior. Para obtener más información sobre la variable, consulte [Configuración del agente de contenedor de Amazon ECS](ecs-agent-config.md).

# Actualización del agente de contenedor de Amazon ECS
<a name="ecs-agent-update"></a>

Ocasionalmente, es posible que tenga que actualizar el agente de contenedor de Amazon ECS para obtener correcciones de errores y nuevas características. La actualización del agente de contenedor de Amazon ECS no interrumpe las tareas ni los servicios en marcha en la instancia de contenedor. El proceso de actualización del agente difiere en función de si la instancia de contenedor se lanzó con una AMI optimizada para Amazon ECS u otro sistema operativo.

**nota**  
Las actualizaciones del agente no se aplican a instancias de contenedor de Windows. Le recomendamos que lance nuevas instancias de contenedor para actualizar la versión del agente en sus clústeres Windows.

## Comprobación de la versión del agente de contenedor de Amazon ECS
<a name="checking_agent_version"></a>

Puede comprobar la versión del agente de contenedor que se está ejecutando en sus instancias de contenedor para ver si necesita actualizarlo. La vista de la instancia de contenedor en la consola de Amazon ECS proporciona la versión del agente. Utilice el siguiente procedimiento para comprobar la versión del agente.

------
#### [ Amazon ECS console ]

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

1. En la barra de navegación, elija la región en la que se encuentra registrada la instancia externa.

1. En el panel de navegación, elija **Clusters** (Clústeres) y seleccione el clúster que aloja la instancia externa.

1. En la página de **Cluster : *name*** (Clúster; nombre), elija la pestaña **Infrastructure** (Infraestructura).

1. En **Container instances** (Instancias de contenedor), tenga en cuenta la columna **Agent version** (Versión de agente) para sus instancias de contenedor. Si la instancia de contenedor no contiene la versión más reciente del agente de contenedor, la consola genera un mensaje de alerta y marca la versión del agente obsoleta.

   Si la versión de su agente está desactualizada, puede actualizar el agente de contenedor con los siguientes procedimientos:
   + Si la instancia de contenedor está ejecutando una AMI optimizada para Amazon ECS, consulte [Actualización del agente de contenedor de Amazon ECS en una AMI optimizada para Amazon ECS](agent-update-ecs-ami.md).
   + Si la instancia de contenedor no está ejecutando una AMI optimizada para Amazon ECS, consulte [Actualización manual del agente de contenedor de Amazon ECS (para AMI no optimizadas para Amazon ECS)](manually_update_agent.md).
**importante**  
Para actualizar la versión del agente de Amazon ECS de versiones anteriores a la v1.0.0 en la AMI optimizada para Amazon ECS, le recomendamos que termine la instancia de contenedor actual y lance una instancia nueva con la versión de la AMI más reciente. Cualquier instancia de contenedor que utilice una versión de vista previa se debe retirar y sustituir por la AMI más reciente. Para obtener más información, consulte [Lanzamiento de una instancia de contenedor de Linux de Amazon ECS](launch_container_instance.md).

------
#### [ Amazon ECS container agent introspection API  ]

También puede utilizar la API de introspección del agente de contenedor de Amazon ECS para comprobar la versión del agente desde la propia instancia de contenedor. Para obtener más información, consulte [Introspección de contenedor de Amazon ECS](ecs-agent-introspection.md).

**Para comprobar si el agente de contenedor de Amazon ECS ejecuta la versión más reciente a través de la API de introspección**

1. Inicie sesión en su instancia de contenedor mediante SSH.

1. Consulte la API de introspección.

   ```
   [ec2-user ~]$ curl -s 127.0.0.1:51678/v1/metadata | python3 -mjson.tool
   ```
**nota**  
La API de introspección agregó información de `Version` en la versión v1.0.0 del agente de contenedor de Amazon ECS. Si no tiene `Version` a la hora de consultar la API de introspección o la API de introspección no está presente en el agente en absoluto, entonces la versión que ejecuta es v0.0.3 o anterior. Debería actualizar la versión.

------

# Actualización del agente de contenedor de Amazon ECS en una AMI optimizada para Amazon ECS
<a name="agent-update-ecs-ami"></a>

Si está utilizando la AMI optimizada para Amazon ECS, dispone de varias opciones para obtener la versión más reciente del agente de contenedor de Amazon ECS (se muestran por orden de recomendación):
+ Termine las instancias de contenedor actuales y lance la versión más reciente de la AMI de Amazon Linux 2 optimizada para Amazon ECS (ya sea manualmente o actualizando la configuración de lanzamiento de Auto Scaling con la AMI más reciente). Esto proporciona una instancia de contenedor nueva con las versiones probadas y validadas más recientes de Amazon Linux, Docker, `ecs-init` y el agente de contenedor de Amazon ECS. Para obtener más información, consulte [AMI de Linux optimizadas para Amazon ECS](ecs-optimized_AMI.md).
+ Conecte a la instancia con SSH y actualice el paquete `ecs-init` (y sus dependencias) a la versión más reciente. Esta operación ofrece las versiones probadas y validadas más recientes de Docker y `ecs-init` que están disponibles en los repositorios de Amazon Linux, así como la versión más reciente del agente de contenedor de Amazon ECS. Para obtener más información, consulte [Para actualizar el paquete `ecs-init` en la AMI optimizada para Amazon ECS](#procedure_update_ecs-init).
+ Actualice el agente de contenedor con la operación `UpdateContainerAgent` de la API, ya sea a través de la consola, con la AWS CLI o con los SDK de AWS. Para obtener más información, consulte [Actualización del agente de contenedor de Amazon ECS mediante la operación de la API `UpdateContainerAgent`](#agent-update-api).

**nota**  
Las actualizaciones del agente no se aplican a instancias de contenedor de Windows. Le recomendamos que lance nuevas instancias de contenedor para actualizar la versión del agente en sus clústeres Windows.<a name="procedure_update_ecs-init"></a>

**Para actualizar el paquete `ecs-init` en la AMI optimizada para Amazon ECS**

1. Inicie sesión en su instancia de contenedor mediante SSH.

1. Actualice el paquete `ecs-init` con el siguiente comando.

   ```
   sudo yum update -y ecs-init
   ```
**nota**  
El paquete `ecs-init` y el agente de contenedor de Amazon ECS se actualizan de forma inmediata. Sin embargo, las versiones más recientes de Docker no se cargan hasta que se reinicia el daemon de Docker. Para efectuar el reinicio, puede reiniciar la instancia o ejecutar los siguientes comandos en su instancia:  
AMI de Amazon Linux 2 optimizada para Amazon ECS:  

     ```
     sudo systemctl restart docker
     ```
AMI de Amazon Linux optimizada para Amazon ECS:  

     ```
     sudo service docker restart && sudo start ecs
     ```

## Actualización del agente de contenedor de Amazon ECS mediante la operación de la API `UpdateContainerAgent`
<a name="agent-update-api"></a>

**importante**  
La API `UpdateContainerAgent` solo se admite en variantes de Linux de la AMI optimizada para Amazon ECS, a excepción de la AMI de Amazon Linux 2 (arm64) optimizada para Amazon ECS. Para instancias de contenedor que utilizan la AMI de Amazon Linux 2 (arm64) optimizada para Amazon ECS, actualice el paquete `ecs-init` para actualizar el agente. Para instancias de contenedor que están ejecutando otros sistemas operativos, consulte [Actualización manual del agente de contenedor de Amazon ECS (para AMI no optimizadas para Amazon ECS)](manually_update_agent.md). Si utiliza instancias de contenedor de Windows, le recomendamos que lance nuevas instancias de contenedor para actualizar la versión del agente en los clústeres Windows.

El proceso de la API `UpdateContainerAgent` comienza cuando solicita una actualización del agente, ya sea a través de la consola o con la AWS CLI o los SDK de AWS. Amazon ECS compara la versión actual del agente con la versión del agente más reciente disponible y si es posible una actualización. Si no es posible una actualización, por ejemplo, si el agente ya está ejecutando la versión más reciente, se devuelve `NoUpdateAvailableException`.

Las fases en el proceso de actualización mostradas más arriba son las siguientes:

`PENDING`  
Hay una actualización de agente disponible y el proceso de actualización se ha iniciado.

`STAGING`  
El agente ha comenzado a descargar la actualización del agente. Si el agente no puede descargar la actualización o si el contenido de la actualización es incorrecto o está dañada, entonces el agente envía una notificación del error y la actualización pasa al estado `FAILED`.

`STAGED`  
La descarga del agente se ha completado y se ha verificado el contenido del agente.

`UPDATING`  
El servicio `ecs-init` se reinicia y recoge la nueva versión del agente. Si, por alguna razón, el agente no puede reiniciarse, la actualización pasa al estado `FAILED`; de lo contrario, el agente indica a Amazon ECS que la actualización está completa.

**nota**  
Las actualizaciones del agente no se aplican a instancias de contenedor de Windows. Le recomendamos que lance nuevas instancias de contenedor para actualizar la versión del agente en sus clústeres Windows.

**Para actualizar el agente de contenedor de Amazon ECS en una AMI optimizada para Amazon ECS desde la consola**

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

1. En la barra de navegación, elija la región en la que se encuentra registrada la instancia externa.

1. En el panel de navegación, elija **Clusters** y seleccione el clúster.

1. En la página de **Cluster : *name*** (Clúster; nombre), elija la pestaña **Infrastructure** (Infraestructura).

1. En **Instancias de contenedor**, seleccione las instancias que desea actualizar y, a continuación, elija **Acciones**, **Actualización del agente**.

# Actualización manual del agente de contenedor de Amazon ECS (para AMI no optimizadas para Amazon ECS)
<a name="manually_update_agent"></a>

Ocasionalmente, es posible que tenga que actualizar el agente de contenedor de Amazon ECS para obtener correcciones de errores y nuevas características. La actualización del agente de contenedor de Amazon ECS no interrumpe las tareas ni los servicios en marcha en la instancia de contenedor.
**nota**  
Las actualizaciones del agente no se aplican a instancias de contenedor de Windows. Le recomendamos que lance nuevas instancias de contenedor para actualizar la versión del agente en sus clústeres Windows.

1. Inicie sesión en su instancia de contenedor mediante SSH.

1. Compruebe si su agente utiliza la variable de entorno `ECS_DATADIR` para guardar su estado.

   ```
   ubuntu:~$ docker inspect ecs-agent | grep ECS_DATADIR
   ```

   Salida:

   ```
   "ECS_DATADIR=/data",
   ```
**importante**  
Si el comando anterior no devuelve la variable de entorno `ECS_DATADIR`, debe detener las tareas en ejecución en esta instancia de contenedor antes de actualizar el agente. Los agentes más recientes con la variable de entorno `ECS_DATADIR` guardan su estado y usted puede actualizarlos mientras que las tareas se ejecuten sin problemas.

1. Detenga el agente de contenedor de Amazon ECS.

   ```
   ubuntu:~$ docker stop ecs-agent
   ```

1. Elimine el contenedor de agente.

   ```
   ubuntu:~$ docker rm ecs-agent
   ```

1. Asegúrese de que el directorio `/etc/ecs` y el archivo de configuración del agente de contenedor de Amazon ECS existan en `/etc/ecs/ecs.config`.

   ```
   ubuntu:~$ sudo mkdir -p /etc/ecs && sudo touch /etc/ecs/ecs.config
   ```

1. Edite el archivo `/etc/ecs/ecs.config` y asegúrese de que contenga al menos las siguientes declaraciones de variables. Si no desea que su instancias de contenedor se registre en el clúster predeterminado, especifique el nombre del clúster como el valor para `ECS_CLUSTER`.

   ```
   ECS_DATADIR=/data
   ECS_ENABLE_TASK_IAM_ROLE=true
   ECS_ENABLE_TASK_IAM_ROLE_NETWORK_HOST=true
   ECS_LOGFILE=/log/ecs-agent.log
   ECS_AVAILABLE_LOGGING_DRIVERS=["json-file","awslogs"]
   ECS_LOGLEVEL=info
   ECS_CLUSTER=default
   ```

   Para obtener más información acerca de estas y otras opciones de tiempo de ejecución de agente, consulte [Configuración del agente de contenedor de Amazon ECS](ecs-agent-config.md).
**nota**  
Si lo desea, puede almacenar las variables de entorno del agente en Amazon S3 (se pueden descargar en las instancias de contenedor en el momento del lanzamiento utilizando datos de usuario de Amazon EC2). Se recomienda su uso para información confidencial como las credenciales de autenticación para repositorios privados. Para obtener más información, consulte [Almacenamiento de la configuración de instancia de contenedor de Amazon ECS en Amazon S3](ecs-config-s3.md) y [Uso de imágenes de contenedor que no sean de AWS en Amazon ECS](private-auth.md).

1. Extraiga la imagen más reciente del agente de contenedor de Amazon ECS de Amazon Elastic Container Registry Public.

   ```
   ubuntu:~$ docker pull public.ecr.aws/ecs/amazon-ecs-agent:latest
   ```

   Salida:

   ```
   Pulling repository amazon/amazon-ecs-agent
   a5a56a5e13dc: Download complete
   511136ea3c5a: Download complete
   9950b5d678a1: Download complete
   c48ddcf21b63: Download complete
   Status: Image is up to date for amazon/amazon-ecs-agent:latest
   ```

1. Ejecute el agente de contenedor de Amazon ECS más reciente en la instancia de contenedor.
**nota**  
Utilice las políticas de reinicio de Docker o un administrador de procesos (como **upstart** o **systemd**) para tratar al agente de contenedor como un servicio o un daemon y asegurarse de que se reinicie después de finalizar su ejecución. Para eso, la AMI optimizada para Amazon ECS utiliza el RPM `ecs-init`, y puede consultar el [código fuente para este RPM](https://github.com/aws/amazon-ecs-init) en GitHub. 

   En el siguiente ejemplo, el comando de ejecución del agente está dividido en líneas separadas para mostrar cada opción. Para obtener más información acerca de estas y otras opciones de tiempo de ejecución de agente, consulte [Configuración del agente de contenedor de Amazon ECS](ecs-agent-config.md).
**importante**  
Los sistemas operativos con SELinux habilitado requieren la opción `--privileged` en el comando **docker run**. Además, para las instancias de contenedor con SELinux habilitado, recomendamos añadir la opción `:Z` a los montajes de volúmenes `/log` y `/data`. No obstante, los montajes de hosts para estos volúmenes deben existir antes de que ejecute el comando; de lo contrario, recibirá un error `no such file or directory`. Realice la siguiente acción si tiene dificultades para ejecutar el agente de Amazon ECS en una instancia de contenedor con SELinux habilitado:  
Cree los puntos de montaje de volumen del host en su instancia de contenedor.  

     ```
     ubuntu:~$ sudo mkdir -p /var/log/ecs /var/lib/ecs/data
     ```
Añada la opción `--privileged` al siguiente comando **docker run**.
Añada la opción `:Z` a los montajes del volumen de contenedor `/log` y `/data` (por ejemplo, `--volume=/var/log/ecs/:/log:Z`) para el siguiente comando **docker run**.

   ```
   ubuntu:~$ sudo docker run --name ecs-agent \
   --detach=true \
   --restart=on-failure:10 \
   --volume=/var/run:/var/run \
   --volume=/var/log/ecs/:/log \
   --volume=/var/lib/ecs/data:/data \
   --volume=/etc/ecs:/etc/ecs \
   --volume=/etc/ecs:/etc/ecs/pki \
   --net=host \
   --env-file=/etc/ecs/ecs.config \
   amazon/amazon-ecs-agent:latest
   ```
**nota**  
Si recibe el mensaje `Error response from daemon: Cannot start container`, puede eliminar el contenedor con errores con el comando **sudo docker rm ecs-agent** e intentar volver a ejecutar el agente. 