

# Instancias de contenedor de EC2 de Amazon ECS
<a name="ecs-agent-versions"></a>

El agente de Amazon ECS es un proceso que se ejecuta en todas las instancias de contenedor que estén registradas en el clúster. Facilita la comunicación entre sus instancias de contenedor y Amazon ECS.

**nota**  
En las instancias de contenedores de Linux, el contenedor de agente monta directorios de nivel superior como `/lib`, `/lib64` y `/proc`. Esto es necesario para las características y funcionalidades de ECS, como los volúmenes de Amazon EBS, el modo de red `awsvpc`, Amazon ECS Service Connect y FireLens para Amazon ECS.

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

El agente de contenedor de Amazon ECS contiene la imagen `amazon-ecs-pause`. Amazon ECS utiliza esta imagen para las tareas que utilizan el modo de red `awsvpc`.

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

## Ciclo de vida
<a name="container-lifecycle"></a>

Cuando el agente de contenedor de Amazon ECS registra una instancia de Amazon EC2 en el clúster, la instancia de Amazon EC2 notifica su estado como `ACTIVE` y su estado de conexión del agente como `TRUE`. Esta instancia de contenedor puede aceptar solicitudes de ejecución de tareas.

Si detiene (no termina) una instancia de contenedor, el estado permanece `ACTIVE`, pero el estado de conexión del agente cambia a `FALSE` en pocos minutos. Cualquier tarea que se estuviera ejecutando en la instancia de contenedor se para. Si vuelve a comenzar la instancia de contenedor, el agente de contenedor vuelve a conectarse al servicio de Amazon ECS, y usted podrá volver a ejecutar tareas en la instancia.

Si cambia el estado de una instancia de contenedor a `DRAINING`, las nuevas tareas no se colocan en la instancia de contenedor. Cualquier tarea de servicio que se ejecute en la instancia de contenedor se elimina, si es posible, para que pueda llevar a cabo las actualizaciones del sistema. Para obtener más información, consulte [Drenaje de instancias de contenedor de Amazon ECS](container-instance-draining.md).

Si cancela el registro o termina una instancia de contenedor, el estado de la instancia de contenedor cambia a `INACTIVE` de inmediato y la instancia de contenedor ya no se notifica cuando se enumeran las instancias de contenedor. No obstante, puede seguir describiendo la instancia de contenedor para una hora tras la terminación. Después de una hora, la descripción de la instancia ya no está disponible.

Puede drenar las instancias manualmente o crear un enlace del ciclo de vida del grupo de Auto Scaling para establecer el estado de la instancia en `DRAINING`. Para obtener más información sobre los enlaces de ciclo de vida de Auto Scaling, consulte [Enlaces de ciclo de vida de Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html).

## Compatibilidad con Docker
<a name="docker-support"></a>

Amazon ECS es compatible con las dos últimas versiones principales de Docker publicadas en Amazon Linux. Actualmente, esto incluye Docker 20.10.x y Docker 25.x.

La versión mínima de Docker necesaria para Amazon ECS se encuentra en el [archivo de especificaciones del agente de Amazon ECS](https://github.com/aws/amazon-ecs-agent/blob/dev/packaging/amazon-linux-ami-integrated/ecs-agent.spec#L53) en GitHub.

Al utilizar la AMI optimizada para Amazon ECS, Docker está previamente instalado y configurado para funcionar con el agente de contenedor de Amazon ECS. La AMI incluye una versión de Docker probada y compatible con Amazon ECS.

**nota**  
Si bien Amazon ECS admite varias versiones de Docker, recomendamos usar la versión de Docker que viene con la AMI optimizada para Amazon ECS para obtener la mejor compatibilidad.

## AMI optimizada para Amazon ECS
<a name="ecs-optimized-ami"></a>

Para obtener más información acerca de la AMI optimizada para Amazon ECS, consulte [AMI de Linux optimizada para Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html).

## Información adicional
<a name="additional-information"></a>

En las páginas siguientes se proporciona información adicional acerca de los cambios:
+ [Registro de cambios del agente de Amazon ECS](https://github.com/aws/amazon-ecs-agent/blob/master/CHANGELOG.md) en GitHub
+ [Notas de la versión de Amazon Linux 2](https://docs.aws.amazon.com/AL2/latest/relnotes/relnotes-al2.html).
+ [Notas de la versión de Docker Engine](https://docs.docker.com/engine/release-notes/27/) en la documentación de Docker
+ [Documentación de controlador NVIDIA](https://docs.nvidia.com/datacenter/tesla/index.html) en la documentación de NVIDIA

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

**Se aplica a**: instancias de EC2

El agente de contenedor de Amazon ECS admite una serie de opciones de configuración, la mayoría de las cuales se establecen a través de variables de entorno. 

Si la instancia de contenedor se lanzó con la variante de Linux de la AMI optimizada para Amazon ECS, puede establecer estas variables de entorno en el archivo `/etc/ecs/ecs.config` y, a continuación, reiniciar el agente. También puede escribir estas variables de configuración en sus instancias de contenedor con datos de usuario de Amazon EC2 en el momento del lanzamiento. 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).

Si la instancia de contenedor se lanzó con la variante de Windows de la AMI optimizada para Amazon ECS, puede establecer estas variables de entorno en el comando PowerShell SetEnvironmentVariable y luego reiniciar el agente. Para obtener más información, consulte [Ejecución de comandos al lanzar una instancia de EC2 con la entrada de datos de usuario](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) en la *Guía del usuario de Amazon EC2* y [Arranque de instancias de contenedor de Windows de Amazon ECS para la transferencia de datos](bootstrap_windows_container_instance.md).

Si está iniciando manualmente el agente de contenedor de Amazon ECS (para AMI no optimizadas para Amazon ECS), puede utilizar estas variables de entorno en el comando **docker run** que utiliza para iniciar el agente. Utilice estas variables con la sintaxis `--env=VARIABLE_NAME=VARIABLE_VALUE`. En el caso de información confidencial, por ejemplo credenciales de autenticación para repositorios privados, debe almacenar las variables de entorno del agente en un archivo y transmitirlas a la vez con la opción `--env-file path_to_env_file`. Puede utilizar los siguientes comandos para agregar las variables.

```
sudo systemctl stop ecs
sudo vi /etc/ecs/ecs.config 
# And add the environment variables with VARIABLE_NAME=VARIABLE_VALUE format.
sudo systemctl start ecs
```

## Ejecución del agente de Amazon ECS con el espacio de nombres PID del host
<a name="ecs-agent-pid-namespace"></a>

De forma predeterminada, el agente de Amazon ECS se ejecuta con su propio espacio de nombres PID. En las siguientes configuraciones, puede configurar el agente de Amazon ECS para que se ejecute con el espacio de nombres PID del host:
+ El modo de aplicación de SELinux está activado.
+ La política de seguridad SELinux de Docker está establecida como verdadera.

Puede configurar este comportamiento estableciendo la variable de entorno `ECS_AGENT_PID_NAMESPACE_HOST` en `true` en su archivo `/etc/ecs/ecs.config`. Cuando esta variable esté habilitada, `ecs-init` iniciará el contenedor del agente de Amazon ECS con el espacio de nombres PID del host (`--pid=host`), lo que permitirá que el agente se inicie correctamente en entornos que utilizan SELinux. Esta característica está disponible en las versiones de agente `1.94.0` de Amazon ECS y posteriores.

Para habilitar esta característica, agregue la siguiente línea a su archivo `/etc/ecs/ecs.config`:

```
ECS_AGENT_PID_NAMESPACE_HOST=true
```

Tras realizar este cambio, reinicie el agente de Amazon ECS para que surta efecto:

```
sudo systemctl restart ecs
```

Las siguientes características no funcionarán cuando el modo de aplicación de SELinux esté activado y la política de seguridad de Docker esté configurada como verdadera, incluso cuando esté configurado `ECS_AGENT_PID_NAMESPACE_HOST=true`.
+ Amazon ECS Exec
+ Tarea adjunta de Amazon EBS
+ Service Connect
+ FireLens para Amazon ECS

## Parámetros disponibles
<a name="ecs-agent-availparam"></a>

Para obtener más información acerca de la utilización del agente de contenedor, consulte [Parámetros de configuración del agente de contenedor de Amazon ECS](https://github.com/aws/amazon-ecs-agent/blob/master/README.md).

# Almacenamiento de la configuración de instancia de contenedor de Amazon ECS en Amazon S3
<a name="ecs-config-s3"></a>

La configuración del agente de contenedor de Amazon ECS se controla mediante la variable de entorno. Las variantes de Linux de la AMI optimizada para Amazon ECS buscan estas variables en `/etc/ecs/ecs.config` cuando se inicia el agente de contenedor y el agente se configura en consecuencia. Las variables de entorno no sensibles, como `ECS_CLUSTER`, se pueden transmitir a la instancia de contenedor en el lanzamiento a través de los datos de usuario de Amazon EC2 y escribir en este archivo sin consecuencias. No obstante, otro tipo de información confidencial, como las credenciales de AWS o la variable `ECS_ENGINE_AUTH_DATA`, no deben pasarse nunca a una instancia en los datos de usuario ni escribirse en `/etc/ecs/ecs.config` de manera que les permita aparecer en un archivo `.bash_history`.

El almacenamiento de la información de configuración en un bucket privado de Amazon S3 y la concesión de acceso de solo lectura al rol de IAM de instancia de contenedor es una forma práctica y segura de permitir la configuración de instancia de contenedor en el momento del lanzamiento. Puede almacenar una copia del archivo `ecs.config` en un bucket privado. Puede utilizar los datos de usuario de Amazon EC2 para instalar la AWS CLI y copiar la información de configuración en `/etc/ecs/ecs.config` cuando se lance la instancia.

**Para almacenar un archivo `ecs.config` en Amazon S3**

1. Debe conceder permisos al rol de instancia de contenedor (**ecsInstanceRole**) para que tenga acceso de solo lectura a Amazon S3. Para ello, asigne **AmazonS3ReadOnlyAccess** 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. Cree un `ecs.config` archivo con variables de configuración del agente Amazon ECS válidas con el siguiente formato. En este ejemplo, se configura la autenticación de registros privados. Para obtener más información, consulte [Uso de imágenes de contenedor que no sean de AWS en Amazon ECS](private-auth.md).

   ```
   ECS_ENGINE_AUTH_TYPE=dockercfg
   ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"auth":"zq212MzEXAMPLE7o6T25Dk0i","email":"email@example.com"}}
   ```
**nota**  
Para obtener una lista completa de las variables de configuración del agente Amazon ECS disponibles, consulte [Amazon ECS Container Agent](https://github.com/aws/amazon-ecs-agent/blob/master/README.md) en GitHub.

1. Para almacenar el archivo de configuración, cree un bucket privado en Amazon S3. Para obtener más información, consulte [Creación de un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) en la *Guía del usuario de Amazon Simple Storage Service*. 

1. Cargue el archivo `ecs.config` en el bucket de S3. Para obtener más información, consulte [Carga de objetos](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html) en la *Guía del desarrollador de Amazon Simple Storage Service*.

**Para cargar un archivo `ecs.config` desde Amazon S3 en el momento del lanzamiento**

1. Complete los procedimientos indicados anteriormente en esta sección para permitir el acceso de solo lectura de Amazon S3 a las instancias de contenedor y almacenar un archivo `ecs.config` en un bucket de S3 privado.

1. Lance nuevas instancias de contenedor y utilice el siguiente script de ejemplo en Datos de usuario de EC2. El script instala la AWS CLI y copia el archivo de configuración en `/etc/ecs/ecs.config`. Para obtener más información, consulte [Lanzamiento de una instancia de contenedor de Linux de Amazon ECS](launch_container_instance.md).

   ```
   #!/bin/bash
   yum install -y aws-cli
   aws s3 cp s3://your_bucket_name/ecs.config /etc/ecs/ecs.config
   ```

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

Si desea registrar una instancia de Amazon EC2 en su clúster de Amazon ECS y dicha instancia no utiliza una AMI basada en la AMI optimizada para Amazon ECS, puede instalar el agente de contenedor de Amazon ECS manualmente mediante el siguiente procedimiento. Para ello, puede descargar el agente desde uno de los buckets de Amazon S3 de la región o desde Amazon Elastic Container Registry Public. Si lo descarga de uno de los buckets de Amazon S3 de la región, puede verificar la validez del archivo del agente de contenedor mediante la firma PGP.

**nota**  
Las unidades `systemd` de los servicios de Amazon ECS y de Docker tienen la instrucción de esperar a que `cloud-init` finalice antes de comenzar ambos servicios. El proceso `cloud-init` no se considera finalizado hasta que los datos de usuario de Amazon EC2 hayan terminado de ejecutarse. Por lo tanto, el inicio de Amazon ECS o de Docker a través de los datos de usuario de Amazon EC2 puede provocar un bloqueo. Para comenzar el agente de contenedor mediante los datos de usuario de Amazon EC2, puede utilizar `systemctl enable --now --no-block ecs.service`.

## Instalación del agente de contenedor de Amazon ECS en una instancia de EC2 que no es de Amazon Linux
<a name="ecs-agent-install-nonamazonlinux"></a>

Para instalar el agente de contenedor de Amazon ECS en una instancia de Amazon EC2, puede descargar el agente desde uno de los buckets de Amazon S3 de la región e instalarlo.

**nota**  
Cuando utilice una AMI que no sea de Amazon Linux, la instancia de Amazon EC2 requiere que el `cgroupfs` sea compatible con el controlador `cgroup` para que el agente de Amazon ECS admita los límites de recursos de nivel de tarea. Para obtener más información, consulte [Agente de Amazon ECS en Github](https://github.com/aws/amazon-ecs-agent).

A continuación, se muestran los archivos del agente de contenedor de Amazon ECS más recientes por región para cada arquitectura del sistema, a modo de referencia.


| Región | Nombre de la región | Archivos deb de init de Amazon ECS | Archivos rpm de init de Amazon ECS | 
| --- | --- | --- | --- | 
| us-east-2 | Este de EE. UU. (Ohio) |  [Amazon ECS init amd64](https://s3.us-east-2.amazonaws.com/amazon-ecs-agent-us-east-2/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.us-east-2.amazonaws.com/amazon-ecs-agent-us-east-2/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.us-east-2.amazonaws.com/amazon-ecs-agent-us-east-2/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.us-east-2.amazonaws.com/amazon-ecs-agent-us-east-2/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| us-east-1 | Este de EE. UU. (Norte de Virginia) |  [Amazon ECS init amd64](https://s3.us-east-1.amazonaws.com/amazon-ecs-agent-us-east-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.us-east-1.amazonaws.com/amazon-ecs-agent-us-east-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.us-east-1.amazonaws.com/amazon-ecs-agent-us-east-1/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.us-east-1.amazonaws.com/amazon-ecs-agent-us-east-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| us-west-1 | Oeste de EE. UU. (Norte de California) |  [Amazon ECS init amd64](https://s3.us-west-1.amazonaws.com/amazon-ecs-agent-us-west-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.us-west-1.amazonaws.com/amazon-ecs-agent-us-west-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.us-west-1.amazonaws.com/amazon-ecs-agent-us-west-1/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.us-west-1.amazonaws.com/amazon-ecs-agent-us-west-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| us-west-2 | Oeste de EE. UU. (Oregón) |  [Amazon ECS init amd64](https://s3.us-west-2.amazonaws.com/amazon-ecs-agent-us-west-2/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.us-west-2.amazonaws.com/amazon-ecs-agent-us-west-2/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.us-west-2.amazonaws.com/amazon-ecs-agent-us-west-2/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.us-west-2.amazonaws.com/amazon-ecs-agent-us-west-2/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| ap-east-1 | Asia-Pacífico (Hong Kong) |  [Amazon ECS init amd64](https://s3.ap-east-1.amazonaws.com/amazon-ecs-agent-ap-east-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.ap-east-1.amazonaws.com/amazon-ecs-agent-ap-east-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.ap-east-1.amazonaws.com/amazon-ecs-agent-ap-east-1/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.ap-east-1.amazonaws.com/amazon-ecs-agent-ap-east-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| ap-northeast-1 | Asia-Pacífico (Tokio) |  [Amazon ECS init amd64](https://s3.ap-northeast-1.amazonaws.com/amazon-ecs-agent-ap-northeast-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.ap-northeast-1.amazonaws.com/amazon-ecs-agent-ap-northeast-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.ap-northeast-1.amazonaws.com/amazon-ecs-agent-ap-northeast-1/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.ap-northeast-1.amazonaws.com/amazon-ecs-agent-ap-northeast-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| ap-northeast-2 | Asia-Pacífico (Seúl) |  [Amazon ECS init amd64](https://s3.ap-northeast-2.amazonaws.com/amazon-ecs-agent-ap-northeast-2/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.ap-northeast-2.amazonaws.com/amazon-ecs-agent-ap-northeast-2/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.ap-northeast-2.amazonaws.com/amazon-ecs-agent-ap-northeast-2/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.ap-northeast-2.amazonaws.com/amazon-ecs-agent-ap-northeast-2/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| ap-south-1 | Asia-Pacífico (Mumbai) |  [Amazon ECS init amd64](https://s3.ap-south-1.amazonaws.com/amazon-ecs-agent-ap-south-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.ap-south-1.amazonaws.com/amazon-ecs-agent-ap-south-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.ap-south-1.amazonaws.com/amazon-ecs-agent-ap-south-1/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.ap-south-1.amazonaws.com/amazon-ecs-agent-ap-south-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| ap-southeast-1 | Asia-Pacífico (Singapur) |  [Amazon ECS init amd64](https://s3.ap-southeast-1.amazonaws.com/amazon-ecs-agent-ap-southeast-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.ap-southeast-1.amazonaws.com/amazon-ecs-agent-ap-southeast-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.ap-southeast-1.amazonaws.com/amazon-ecs-agent-ap-southeast-1/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.ap-southeast-1.amazonaws.com/amazon-ecs-agent-ap-southeast-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| ap-southeast-2 | Asia-Pacífico (Sídney) |  [Amazon ECS init amd64](https://s3.ap-southeast-2.amazonaws.com/amazon-ecs-agent-ap-southeast-2/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.ap-southeast-2.amazonaws.com/amazon-ecs-agent-ap-southeast-2/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.ap-southeast-2.amazonaws.com/amazon-ecs-agent-ap-southeast-2/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.ap-southeast-2.amazonaws.com/amazon-ecs-agent-ap-southeast-2/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| ca-central-1 | Canadá (centro) |  [Amazon ECS init amd64](https://s3.ca-central-1.amazonaws.com/amazon-ecs-agent-ca-central-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.ca-central-1.amazonaws.com/amazon-ecs-agent-ca-central-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.ca-central-1.amazonaws.com/amazon-ecs-agent-ca-central-1/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.ca-central-1.amazonaws.com/amazon-ecs-agent-ca-central-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| eu-central-1 | Europa (Fráncfort) |  [Amazon ECS init amd64](https://s3.eu-central-1.amazonaws.com/amazon-ecs-agent-eu-central-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.eu-central-1.amazonaws.com/amazon-ecs-agent-eu-central-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.eu-central-1.amazonaws.com/amazon-ecs-agent-eu-central-1/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.eu-central-1.amazonaws.com/amazon-ecs-agent-eu-central-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| eu-west-1 | Europa (Irlanda) |  [Amazon ECS init amd64](https://s3.eu-west-1.amazonaws.com/amazon-ecs-agent-eu-west-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.eu-west-1.amazonaws.com/amazon-ecs-agent-eu-west-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.eu-west-1.amazonaws.com/amazon-ecs-agent-eu-west-1/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.eu-west-1.amazonaws.com/amazon-ecs-agent-eu-west-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| eu-west-2 | Europa (Londres) |  [Amazon ECS init amd64](https://s3.eu-west-2.amazonaws.com/amazon-ecs-agent-eu-west-2/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.eu-west-2.amazonaws.com/amazon-ecs-agent-eu-west-2/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.eu-west-2.amazonaws.com/amazon-ecs-agent-eu-west-2/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.eu-west-2.amazonaws.com/amazon-ecs-agent-eu-west-2/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| eu-west-3 | Europa (París) |  [Amazon ECS init amd64](https://s3.eu-west-3.amazonaws.com/amazon-ecs-agent-eu-west-3/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.eu-west-3.amazonaws.com/amazon-ecs-agent-eu-west-3/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.eu-west-3.amazonaws.com/amazon-ecs-agent-eu-west-3/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.eu-west-3.amazonaws.com/amazon-ecs-agent-eu-west-3/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| sa-east-1 | América del Sur (São Paulo) |  [Amazon ECS init amd64](https://s3.sa-east-1.amazonaws.com/amazon-ecs-agent-sa-east-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.sa-east-1.amazonaws.com/amazon-ecs-agent-sa-east-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.sa-east-1.amazonaws.com/amazon-ecs-agent-sa-east-1/amazon-ecs-init-latest.x86_64.rpm) [Amazon ECS init aarch64](https://s3.sa-east-1.amazonaws.com/amazon-ecs-agent-sa-east-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| us-gov-east-1 | AWS GovCloud (Este de EE. UU.) |  [Amazon ECS init amd64](https://s3.us-gov-east-1.amazonaws.com/amazon-ecs-agent-us-gov-east-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.us-gov-east-1.amazonaws.com/amazon-ecs-agent-us-gov-east-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.us-gov-east-1.amazonaws.com/amazon-ecs-agent-us-gov-east-1/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.us-gov-east-1.amazonaws.com/amazon-ecs-agent-us-gov-east-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| us-gov-west-1 | AWS GovCloud (Oeste de EE. UU.) |  [Amazon ECS init amd64](https://s3.us-gov-west-1.amazonaws.com/amazon-ecs-agent-us-gov-west-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.us-gov-west-1.amazonaws.com/amazon-ecs-agent-us-gov-west-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.us-gov-west-1.amazonaws.com/amazon-ecs-agent-us-gov-west-1/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.us-gov-west-1.amazonaws.com/amazon-ecs-agent-us-gov-west-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 

**Para instalar el agente de contenedor de Amazon ECS en una instancia de Amazon EC2 con una AMI que no sea de Amazon Linux**

1. Lance una instancia de Amazon EC2 con un rol de IAM que permita obtener acceso a Amazon ECS. Para obtener más información, consulte [Rol de IAM de instancia de contenedor de Amazon ECS](instance_IAM_role.md).

1. Conéctese a la instancia.

1. Instale la última versión de Docker en su instancia.

1. Compruebe la versión de Docker para verificar que su sistema cumpla con el requisito de la versión mínima. Para obtener más información sobre la compatibilidad de Docker, consulte [Instancias de contenedor de EC2 de Amazon ECS](ecs-agent-versions.md).

   ```
   docker --version
   ```

1. Descargue el archivo del agente correspondiente de Amazon ECS correspondiente correspondiente a su sistema y arquitectura del sistema del sistema e instálelo.

   Para arquitecturas `deb`:

   ```
   ubuntu:~$ curl -O https://s3.us-west-2.amazonaws.com/amazon-ecs-agent-us-west-2/amazon-ecs-init-latest.amd64.deb
   ubuntu:~$ sudo dpkg -i amazon-ecs-init-latest.amd64.deb
   ```

   Para arquitecturas `rpm`:

   ```
   fedora:~$ curl -O https://s3.us-west-2.amazonaws.com/amazon-ecs-agent-us-west-2/amazon-ecs-init-latest.x86_64.rpm
   fedora:~$ sudo yum localinstall -y amazon-ecs-init-latest.x86_64.rpm
   ```

1. Edite el archivo `/lib/systemd/system/ecs.service` y agregue la siguiente línea al final de la sección `[Unit]`.

   ```
   After=cloud-final.service
   ```

1. (Opcional) Para registrar la instancia en un clúster distinto del clúster `default`, edite el archivo `/etc/ecs/ecs.config` y agregue los siguientes contenidos. Por ejemplo, lo siguiente especifica el clúster `MyCluster`:

   ```
   ECS_CLUSTER=MyCluster
   ```

   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. Inicie el servicio `ecs`.

   ```
   ubuntu:~$ sudo systemctl start ecs
   ```

## Ejecución del agente de Amazon ECS en el modo de red del host
<a name="container_agent_host"></a>

Al ejecutar el agente de contenedor de Amazon ECS, `ecs-init` creará el contenedor del agente de contenedores con el modo de red `host`. Este es el único modo de red compatible para el contenedor de agente de contenedores. 

Esto permite bloquear el acceso al [punto de conexión de servicio de metadatos de la instancia de Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) (`http://169.254.169.254`) para los contenedores que inicia el agente de contenedor. Esto garantiza que los contenedores no puedan obtener acceso a las credenciales del rol de IAM desde el perfil de instancia de contenedor y obliga a que las tareas utilicen solo las credenciales del rol de tarea de IAM. Para obtener más información, consulte [Rol de IAM de tarea de Amazon ECS](task-iam-roles.md).

Esto también lo hace para que el agente de contenedor no compita por las conexiones y el tráfico de red en el puente `docker0`.

## Parámetros de configuración del registro del agente de contenedor de Amazon ECS
<a name="agent-logs"></a>

El agente de contenedor de Amazon ECS almacena registros en las instancias de contenedor.

Para el agente de contenedor versión 1.36.0 y posterior, los registros se encuentran de forma predeterminada en `/var/log/ecs/ecs-agent.log` en instancias de Linux y en `C:\ProgramData\Amazon\ECS\log\ecs-agent.log` en instancias de Windows.

Para el agente de contenedor versión 1.35.0 y anterior, los registros se encuentran de forma predeterminada en `/var/log/ecs/ecs-agent.log.timestamp` en instancias de Linux y en `C:\ProgramData\Amazon\ECS\log\ecs-agent.log.timestamp` en instancias de Windows.

De forma predeterminada, los registros de agente rotan cada hora y se almacena un máximo de 24 registros.

A continuación se muestran las variables de configuración del agente de contenedor que se pueden utilizar para cambiar el comportamiento de registro de agente predeterminado. Para obtener información detallada sobre todos los parámetros de configuración disponibles, consulte [Configuración del agente de contenedor de Amazon ECS](ecs-agent-config.md) o el [README del agente de Amazon ECS](https://github.com/aws/amazon-ecs-agent/blob/master/README.md) en GitHub.

Para el agente de contenedor versión 1.36.0 y posterior, a continuación se ofrece un archivo de registro de ejemplo cuando se utiliza el formato `logfmt`.

```
level=info time=2019-12-12T23:43:29Z msg="Loading configuration" module=agent.go
level=info time=2019-12-12T23:43:29Z msg="Image excluded from cleanup: amazon/amazon-ecs-agent:latest" module=parse.go
level=info time=2019-12-12T23:43:29Z msg="Image excluded from cleanup: amazon/amazon-ecs-pause:0.1.0" module=parse.go
level=info time=2019-12-12T23:43:29Z msg="Amazon ECS agent Version: 1.36.0, Commit: ca640387" module=agent.go
level=info time=2019-12-12T23:43:29Z msg="Creating root ecs cgroup: /ecs" module=init_linux.go
level=info time=2019-12-12T23:43:29Z msg="Creating cgroup /ecs" module=cgroup_controller_linux.go
level=info time=2019-12-12T23:43:29Z msg="Loading state!" module=statemanager.go
level=info time=2019-12-12T23:43:29Z msg="Event stream ContainerChange start listening..." module=eventstream.go
level=info time=2019-12-12T23:43:29Z msg="Restored cluster 'auto-robc'" module=agent.go
level=info time=2019-12-12T23:43:29Z msg="Restored from checkpoint file. I am running as 'arn:aws:ecs:us-west-2:0123456789:container-instance/auto-robc/3330a8a91d15464ea30662d5840164cd' in cluster 'auto-robc'" module=agent.go
```

A continuación se ofrece un archivo de registro de ejemplo cuando se utiliza el formato JSON.

```
{"time": "2019-11-07T22:52:02Z", "level": "info", "msg": "Starting Amazon Elastic Container Service Agent", "module": "engine.go"}
```

# Configuración de instancias de contenedor de Amazon ECS para imágenes de Docker privadas
<a name="private-auth-container-instances"></a>

El agente de contenedor de Amazon ECS puede realizar autenticaciones en registros privados, mediante autenticación básica. Cuando se habilita la autenticación de registros privados, puede utilizar las imágenes de Docker privadas en sus definiciones de tareas. Esta característica solo se admite en tareas que utilizan EC2.

Otro método para habilitar la autenticación de registros privados es usar AWS Secrets Manager para almacenar sus credenciales de registros privados de forma segura y hacer referencia a ellas en su definición de contenedor. Esto permite que las tareas usen imágenes de los repositorios privados. Este método es compatible con las tareas que utilizan EC2 o Fargate. Para obtener más información, consulte [Uso de imágenes de contenedor que no sean de AWS en Amazon ECS](private-auth.md).

El agente de contenedor de Amazon ECS busca dos variables de entorno cuando se lanza:
+ `ECS_ENGINE_AUTH_TYPE`, que especifica el tipo de datos de autenticación que se están enviando.
+ `ECS_ENGINE_AUTH_DATA`, que contiene las credenciales de autenticación reales.

Las variantes Linux de la AMI optimizada para Amazon ECS exploran el archivo `/etc/ecs/ecs.config` en busca de estas variables cuando se lanza la instancia de contenedor y cada vez que se inicia el servicio (mediante el comando **sudo start ecs**). Las AMI no optimizadas para Amazon ECS deben almacenar estas variables de entorno en un archivo y pasarlas con la opción `--env-file path_to_env_file` al comando **docker run** que inicia el agente de contenedor.

**importante**  
Recomendamos no introducir estas variables de entorno de autenticación en el momento del lanzamiento de la instancia con los datos de usuario de Amazon EC2 ni transferirlas con la opción `--env` al **docker run**comando . Estos métodos no son adecuados para la información confidencial como las credenciales de autenticación. Para obtener información sobre cómo añadir de forma segura credenciales de autenticación a sus instancias de contenedor, consulte [Almacenamiento de la configuración de instancia de contenedor de Amazon ECS en Amazon S3](ecs-config-s3.md).

## Formatos de autenticación
<a name="docker-auth-formats"></a>

Existen dos formatos disponibles para autenticación de registros privados, `dockercfg` y `docker`.

**Formato de autenticación dockercfg**  
El formato `dockercfg` utiliza la información de autenticación almacenada en el archivo de configuración que se crea cuando se ejecuta el comando **docker login**. Puede crear este archivo ejecutando el comando **docker login** en el sistema local y especificar el nombre de usuario, la contraseña y la dirección de correo electrónico del registro. También puede iniciar sesión en una instancia de contenedor y ejecutar el comando en ella. Dependiendo de su versión de Docker, este archivo se guarda como `~/.dockercfg` o `~/.docker/config.json`.

```
cat ~/.docker/config.json
```

Salida:

```
{
  "auths": {
    "https://index.docker.io/v1/": {
      "auth": "zq212MzEXAMPLE7o6T25Dk0i"
    }
  }
}
```

**importante**  
Las versiones más nuevas de Docker crean un archivo de configuración como se muestra más arriba con un objeto `auths` exterior. El agente de Amazon ECS solo admite los datos de autenticación `dockercfg` que están en el formato siguiente, sin el objeto `auths`. Si tiene instalada la utilidad **jq**, puede extraer estos datos con el siguiente comando: **cat \$1/.docker/config.json \$1 jq .auths**

```
cat ~/.docker/config.json | jq .auths
```

Salida:

```
{
  "https://index.docker.io/v1/": {
    "auth": "zq212MzEXAMPLE7o6T25Dk0i",
    "email": "email@example.com"
  }
}
```

En el ejemplo anterior, se deben agregar las siguientes variables de entorno al archivo de variables de entorno (`/etc/ecs/ecs.config` para la AMI optimizada para Amazon ECS) que el agente de contenedor de Amazon ECS carga en tiempo de ejecución. Si no está utilizando la AMI optimizada para Amazon ECS e inicia el agente manualmente con **docker run**, especifique el archivo de variables de entorno con la opción `--env-file path_to_env_file` al iniciar el agente.

```
ECS_ENGINE_AUTH_TYPE=dockercfg
ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"auth":"zq212MzEXAMPLE7o6T25Dk0i","email":"email@example.com"}}
```

Puede configurar varios registros privados con la sintaxis siguiente:

```
ECS_ENGINE_AUTH_TYPE=dockercfg
ECS_ENGINE_AUTH_DATA={"repo.example-01.com":{"auth":"zq212MzEXAMPLE7o6T25Dk0i","email":"email@example-01.com"},"repo.example-02.com":{"auth":"fQ172MzEXAMPLEoF7225DU0j","email":"email@example-02.com"}}
```

**Formato de autenticación de Docker**  
El formato `docker` utiliza una representación JSON para el servidor de registro en el que el agente se debe autenticar. También incluye los parámetros de autenticación requeridos por dicho registro (por ejemplo, nombre de usuario, contraseña y la dirección de correo electrónico de dicha cuenta). Para una cuenta de Docker Hub, la representación JSON tiene el siguiente aspecto:

```
{
  "https://index.docker.io/v1/": {
    "username": "my_name",
    "password": "my_password",
    "email": "email@example.com"
  }
}
```

En este ejemplo, se deben agregar las siguientes variables de entorno al archivo de variables de entorno (`/etc/ecs/ecs.config` para la AMI optimizada para Amazon ECS) que el agente de contenedor de Amazon ECS carga en tiempo de ejecución. Si no está utilizando la AMI optimizada para Amazon ECS e inicia el agente manualmente con **docker run**, especifique el archivo de variables de entorno con la opción `--env-file path_to_env_file` al iniciar el agente.

```
ECS_ENGINE_AUTH_TYPE=docker
ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"username":"my_name","password":"my_password","email":"email@example.com"}}
```

Puede configurar varios registros privados con la sintaxis siguiente:

```
ECS_ENGINE_AUTH_TYPE=docker
ECS_ENGINE_AUTH_DATA={"repo.example-01.com":{"username":"my_name","password":"my_password","email":"email@example-01.com"},"repo.example-02.com":{"username":"another_name","password":"another_password","email":"email@example-02.com"}}
```

## Procedimiento
<a name="enabling-private-registry"></a>

Utilice el siguiente procedimiento para activar registros privados para las instancias de contenedor.

**Para habilitar los registros privados en la AMI optimizada para Amazon ECS**

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

1. Abra el archivo `/etc/ecs/ecs.config` y añada los valores `ECS_ENGINE_AUTH_TYPE` y `ECS_ENGINE_AUTH_DATA` para su registro y cuenta:

   ```
   sudo vi /etc/ecs/ecs.config
   ```

   En este ejemplo se autentica una cuenta de usuario de Docker Hub:

   ```
   ECS_ENGINE_AUTH_TYPE=docker
   ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"username":"my_name","password":"my_password","email":"email@example.com"}}
   ```

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

   ```
   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 detener el agente. Los agentes más recientes con la variable de entorno `ECS_DATADIR` guardan su estado y usted puede detenerlos e iniciarlos mientras que las tareas se ejecuten sin problemas. Para obtener más información, consulte [Actualización del agente de contenedor de Amazon ECS](ecs-agent-update.md).

1. Detenga el servicio `ecs`:

   ```
   sudo stop ecs
   ```

   Salida:

   ```
   ecs stop/waiting
   ```

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

     ```
     sudo systemctl restart ecs
     ```
   + Para la AMI de Amazon Linux optimizada para Amazon ECS:

     ```
     sudo stop ecs && sudo start 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
   ```

# Limpieza automática de tareas e imágenes de Amazon ECS
<a name="automated_image_cleanup"></a>

Cada vez que se coloca una tarea en una instancia de contenedor, el agente de contenedor de Amazon ECS comprueba si las imágenes a las que se hace referencia en la tarea son las más recientes de la etiqueta especificada en el repositorio. De lo contrario, el comportamiento predeterminado permite que el agente extraiga las imágenes desde sus repositorios respectivos. Si actualiza las imágenes con frecuencia en las tareas y servicios, el almacenamiento de la instancia de contenedor se puede rellenar rápidamente con imágenes de Docker que ya no utiliza y probablemente no volverá a utilizar. Por ejemplo, podría utilizar una canalización de integración e implementación continuas (CI/CD).

**nota**  
El comportamiento de extracción de imágenes del agente de Amazon ECS se puede personalizar mediante el parámetro `ECS_IMAGE_PULL_BEHAVIOR`. Para obtener más información, consulte [Configuración del agente de contenedor de Amazon ECS](ecs-agent-config.md).

Del mismo modo, los contenedores que pertenecen a tareas detenidas también pueden consumir almacenamiento de la instancia de contenedor con información de registro, volúmenes de datos y otros artefactos. Estos artefactos son útiles para la depuración de contenedores que se han detenido de forma inesperada, pero la mayor parte de este almacenamiento se puede liberar con seguridad tras un periodo de tiempo. 

De forma predeterminada, el agente de contenedor de Amazon ECS limpia automáticamente las tareas detenidas y las imágenes de Docker que no está utilizando ninguna tarea en las instancias de contenedor.

**nota**  
La característica de limpieza automatizada de imágenes requiere al menos la versión 1.13.0 del agente de contenedor de Amazon ECS. Para actualizar el agente a la versión más reciente, consulte [Actualización del agente de contenedor de Amazon ECS](ecs-agent-update.md).

Las siguientes variables de configuración del agente están disponibles para ajustar la experiencia de limpieza de imágenes y tareas automatizada. Para obtener más información acerca de cómo se establecen estas variables en las instancias de contenedor, consulte [Configuración del agente de contenedor de Amazon ECS](ecs-agent-config.md).

`ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION`  
El tiempo de espera predeterminado para eliminar los contenedores de una tarea detenida. Si el valor se establece en menos que 1 segundo, el valor se ignora. De forma predeterminada, este parámetro se establece en 3 horas, pero puede reducir este período a solo 1 minuto, si lo necesita para su aplicación.  
El proceso de limpieza de imágenes no puede eliminar una imagen en tanto en cuando haya un contenedor que haga referencia a la misma. Una vez retirados los contenedores, las imágenes no referenciadas se convierten en candidatas para la limpieza en función de los parámetros de configuración de la limpieza de imágenes.

`ECS_DISABLE_IMAGE_CLEANUP`  
Si establece esta variable como `true`, la limpieza de imagen automatizada se desactiva en la instancia de contenedor y no se elimina ninguna imagen automáticamente.

`ECS_IMAGE_CLEANUP_INTERVAL`  
Esta variable especifica con qué frecuencia debe comprobar el proceso de limpieza de imagen las imágenes para eliminarlas. El valor predeterminado es cada 30 minutos, pero puede reducir este período a solo 10 minutos para eliminar las imágenes con más frecuencia.

`ECS_IMAGE_MINIMUM_CLEANUP_AGE`  
Esta variable especifica la cantidad de tiempo mínima entre la extracción de una imagen y el momento en que puede convertirse en candidata a su eliminación. Esto se utiliza para evitar la limpieza de las imágenes que se acaban de extraer. El valor predeterminado es una hora.

`ECS_NUM_IMAGES_DELETE_PER_CYCLE`  
Esta variable especifica cuántas imágenes se pueden eliminar durante un ciclo de limpieza único. El valor predeterminado es 5 y el mínimo es 1.

Cuando el agente de contenedor de Amazon ECS está en ejecución y no se ha desactivado la limpieza automatizada de imágenes, el agente comprueba si hay imágenes de Docker a las que no se hace referencia en los contenedores en ejecución o detenidos a una frecuencia determinada por la variable `ECS_IMAGE_CLEANUP_INTERVAL`. Si se encuentran imágenes sin utilizar y son más antiguas del tiempo de limpieza mínimo especificado por la variable `ECS_IMAGE_MINIMUM_CLEANUP_AGE`, el agente elimina hasta el número máximo de imágenes especificadas por la variable `ECS_NUM_IMAGES_DELETE_PER_CYCLE`. Se eliminan primero las imágenes a las que se ha hecho referencia menos recientemente. Una vez que las imágenes se han eliminado, el agente espera hasta el siguiente intervalo y vuelve a repetir el proceso.