

# Instâncias de contêineres do EC2 para Amazon ECS
<a name="ecs-agent-versions"></a>

O agente do Amazon ECS é um processo executado em cada instância de contêiner registrada em seu cluster. Ele facilita a comunicação entre as instâncias de contêiner e o Amazon ECS.

**nota**  
Em instâncias de contêiner Linux, o contêiner do agente monta diretórios de nível superior, como `/lib`, `/lib64` e `/proc`. Isso é necessário para recursos e funcionalidades do ECS, como volumes do Amazon EBS, modo de rede `awsvpc`, Amazon ECS Service Connect e FireLens para Amazon ECS.

Cada agente de contêiner do Amazon ECS oferece suporte a um conjunto diferente de recursos e fornece correções de erros de versões anteriores. Quando possível, sempre recomendamos usar a versão mais recente do agente de contêiner do Amazon ECS. Para atualizar o agente de contêiner para a versão mais recente, consulte [Atualizar o agente de contêiner do Amazon ECS](ecs-agent-update.md).

O agente de contêiner do Amazon ECS contém a imagem `amazon-ecs-pause`. O Amazon ECS usa essa imagem em tarefas que usam o modo de rede `awsvpc`.

Para ver quais recursos e aprimoramentos estão incluídos em cada versão de agente, consulte [https://github.com/aws/amazon-ecs-agent/releases](https://github.com/aws/amazon-ecs-agent/releases).

**Importante**  
A versão mínima do Docker para métricas confiáveis é a versão Docker `v20.10.13` e posteriores, que está incluída na AMI otimizada para o Amazon ECS `20220607` e posteriores.  
As versões `1.20.0` e posteriores do agente do Amazon ECS descontinuaram o suporte para as versões do Docker anteriores à `18.01.0`.

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

Quando o agente de contêiner do Amazon ECS registra uma instância do Amazon EC2 no cluster, a instância do Amazon EC2 relata seu status como `ACTIVE` e o status de conexão do agente como `TRUE`. Essa instância de contêiner pode aceitar solicitações de tarefas de processamento.

Se você interrompe (sem concluir) uma instância de contêiner, o status permanece como `ACTIVE`, mas o status de conexão do agente muda para `FALSE` em instantes. As tarefas que estavam sendo executadas na instância de contêiner são interrompidas. Se você reiniciar a instância de contêiner, o agente de contêiner se reconectará com o serviço do Amazon ECS e será possível, novamente, executar tarefas na instância.

Se você alterar o status de uma instância de contêiner para `DRAINING`, as novas tarefas não serão posicionadas na instância de contêiner. Todas as tarefas de serviço em execução na instância de contêiner são removidas, se possível, de modo que você possa realizar atualizações de sistema. Para obter mais informações, consulte [Drenagem de instâncias de contêiner do Amazon ECS](container-instance-draining.md).

Se você cancela o registro ou encerra uma instância de contêiner, seu status muda para `INACTIVE` imediatamente, e ela não é mais referida não quando você lista suas instâncias de contêiner. No entanto, você ainda pode descrever a instância de contêiner por uma hora depois do encerramento. Depois desse período, a descrição de instância não estará mais disponível.

É possível drenar as instâncias manualmente ou criar um hook do ciclo de vida do grupo do Auto Scaling para definir o status da instância como `DRAINING`. Para obter mais informações sobre hooks do ciclo de vida do Auto Scaling, consulte [Hooks do ciclo de vida do Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html).

## Compatibilidade com o Docker
<a name="docker-support"></a>

O Amazon ECS é compatível com as duas últimas versões principais do Docker publicadas no Amazon Linux. Atualmente, isso inclui o Docker 20.10.x e o Docker 25.x.

A versão mínima exigida do Docker para o Amazon ECS pode ser encontrada no [arquivo de especificação do agente do Amazon ECS](https://github.com/aws/amazon-ecs-agent/blob/dev/packaging/amazon-linux-ami-integrated/ecs-agent.spec#L53) no GitHub.

Ao usar a AMI otimizada para Amazon ECS, o Docker é pré-instalado e configurado para funcionar com o agente de contêiner do Amazon ECS. A AMI inclui uma versão do Docker que é testada e compatível com o Amazon ECS.

**nota**  
Embora o Amazon ECS seja compatível com várias versões do Docker, recomendamos usar a versão do Docker que vem com a AMI otimizada para Amazon ECS para obter a melhor compatibilidade e suporte.

## AMIs otimizadas para Amazon ECS
<a name="ecs-optimized-ami"></a>

Para obter mais informações sobre a AMI otimizada para o Amazon ECS, consulte [AMIs do Linux otimizadas para o Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html).

## Mais informações
<a name="additional-information"></a>

As páginas a seguir fornecem informações adicionais sobre as alterações:
+ [Log de alterações do agente do Amazon ECS](https://github.com/aws/amazon-ecs-agent/blob/master/CHANGELOG.md) no GitHub
+ [Notas de release do Amazon Linux 2](https://docs.aws.amazon.com/AL2/latest/relnotes/relnotes-al2.html).
+ [Notas de lançamento do Docker Engine](https://docs.docker.com/engine/release-notes/27/) na documentação do Docker
+ [Documentação do driver NVIDIA](https://docs.nvidia.com/datacenter/tesla/index.html) na documentação da NVIDIA

## Parâmetros de configuração do log do agente de contêiner do Amazon ECS
<a name="agent-logs"></a>

O agente de contêiner do Amazon ECS armazena logs nas instâncias de contêiner.

Para o agente de contêiner versão 1.36.0 e posteriores, por padrão, os logs estão localizados em `/var/log/ecs/ecs-agent.log` nas instâncias do Linux e em `C:\ProgramData\Amazon\ECS\log\ecs-agent.log` nas instâncias do Windows.

Para o agente de contêiner versão 1.35.0 e posteriores, por padrão, os logs estão localizados em `/var/log/ecs/ecs-agent.log.timestamp` nas instâncias do Linux e em `C:\ProgramData\Amazon\ECS\log\ecs-agent.log.timestamp` nas instâncias do Windows.

Por padrão, os logs do agente são rotacionados de hora em hora com o máximo de 24 logs armazenados.

Veja a seguir as variáveis de configuração do agente de contêiner que podem ser usadas para alterar o comportamento padrão de log do agente. Para obter informações detalhadas sobre todos os parâmetros de configuração disponíveis, consulte [Configuração do agente de contêiner do Amazon ECS](ecs-agent-config.md) o [README do agente do Amazon ECS](https://github.com/aws/amazon-ecs-agent/blob/master/README.md) no GitHub.

Para o agente de contêiner versão 1.36.0 e posteriores, veja a seguir um arquivo de log de exemplo quando o formato `logfmt` é usado.

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

Veja a seguir um arquivo de log de exemplo quando o formato JSON é usado.

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