

# 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

## 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"}
```