AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
Como soluciono problemas de um atendente do Amazon ECS desconectado?
Minhas instâncias de contêiner do Amazon Elastic Container Service (Amazon ECS) estão desconectadas.
Breve descrição
É normal que seu atendente de contêiner do Amazon ECS se desconecte e se reconecte várias vezes em uma hora como parte da operação normal. Esses eventos de alteração não são motivo de preocupação. Eventos de conexão que duram apenas alguns minutos podem não indicar problemas com o atendente de contêiner ou com sua instância de contêiner.
No entanto, se o atendente de contêiner permanecer em estado desconectado por mais tempo, a instância de contêiner não poderá operar como parte do seu cluster do Amazon ECS. Esse problema pode ser causado por um dos seguintes motivos:
- Problemas de rede impedem a comunicação entre a instância e o Amazon ECS.
- O atendente de contêiner não tem as permissões necessárias do AWS Identity and Access Management (AWS IAM) para se comunicar com os endpoints do Amazon ECS.
- Há problemas com o host ou o daemon do Docker dentro da instância de contêiner.
- Há contenção de recursos no host subjacente.
Observação: É uma prática recomendada usar a versão mais recente do atendente de contêiner do Amazon ECS.
Resolução
Observação: A resolução a seguir se aplica às AMIs do Amazon Linux 2 otimizadas para o Amazon ECS.
É possível usar chaves SSH para se conectar às suas instâncias do Amazon EC2. Se você não tiver as chaves SSH geradas, poderá usar o Gerenciador de Sessões, um recurso do AWS Systems Manager, para se conectar à sua instância. Por padrão, o Systems Manager Agent é instalado nas AMIs do Amazon Linux 2 e na AMI base otimizada para ECS do Amazon Linux 2.
Verifique se o atendente de contêiner está sendo executado na instância de contêiner
Para verificar o status e a conectividade do atendente de contêiner do Amazon ECS, execute um dos seguintes comandos em sua instância de contêiner:
$ sudo systemctl status ecs $ sudo docker ps -f name=ecs-agent
A saída especifica ativo (em execução) e é semelhante à seguinte:
ecs.service - Amazon Elastic Container Service - container agent Loaded: loaded (/usr/lib/systemd/system/ecs.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2022-02-15 15:51:09 UTC; 37min ago Docs: https://aws.amazon.com/documentation/ecs/ Process: 30039 ExecStopPost=/usr/libexec/amazon-ecs-init post-stop (code=exited, status=0/SUCCESS) Process: 29987 ExecStop=/usr/libexec/amazon-ecs-init stop (code=exited, status=0/SUCCESS) Process: 30077 ExecStartPre=/usr/libexec/amazon-ecs-init pre-start (code=exited, status=0/SUCCESS) Main PID: 30123 (amazon-ecs-init) Tasks: 5 Memory: 3.7M CGroup: /system.slice/ecs.service └─30123 /usr/libexec/amazon-ecs-init start CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES eb1dc8d4ab3b amazon/amazon-ecs-agent:latest "/agent" 3 days ago Up 3 days (healthy) ecs-agent
Se o problema for causado por um atendente desconectado, execute o seguinte comando para reiniciar o atendente ECS:
$ sudo systemctl restart ecs
Observação: Não há saída retornada após a execução dos comandos anteriores.
Para verificar se o atendente está em execução, execute o seguinte comando:
sudo systemctl status ecs
Verifique se o serviço do Docker está sendo executado na instância de contêiner
Para verificar se o serviço do Docker está sendo executado na instância de contêiner afetada, execute o seguinte comando:
sudo systemctl status docker
A saída especifica ativo (em execução) e é semelhante à seguinte:
docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled) Active: active (running) since Fri 2022-02-11 17:42:32 UTC; 3 days ago Docs: https://docs.docker.com Process: 4307 ExecStartPre=/usr/libexec/docker/docker-setup-runtimes.sh (code=exited, status=0/SUCCESS) Process: 4296 ExecStartPre=/bin/mkdir -p /run/docker (code=exited, status=0/SUCCESS) Main PID: 4315 (dockerd) Tasks: 24 Memory: 360.5M CGroup: /system.slice/docker.service ├─4315 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --default-ulimit nofile=32768:65536 ├─6010 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 80 -container-ip 172.17.0.2 -container-port 80 └─6016 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 80 -container-ip 172.17.0.2 -container-port 80
Se o serviço do Docker estiver inativo, execute o seguinte comando para reiniciá-lo:
sudo systemctl restart docker
Observação: Não há saída retornada após a execução dos comandos anteriores.
Para verificar se o serviço do Docker foi reiniciado, execute o seguinte comando:
sudo systemctl status docker
Revise os arquivos de log do atendente de contêiner e do Docker
Se sua instância de contêiner ainda estiver desconectada, revise os arquivos de log no host do contêiner para o atendente de contêiner e para o Docker.
Verifique os seguintes arquivos de log para ver se há palavras-chave, como "error", "warn", ou "agent transition state":
- Veja os logs mais recentes do atendente de contêiner do Amazon ECS em /var/log/ecs/ecs-agent.log
Observação: É possível visualizar o log girado filtrando como /var/log/ecs/ecs-agent-log.timestamp - Veja o log de inicialização do Amazon ECS em /var/log/ecs/ecs-init.log
- Veja os logs de execução de dados do usuário em /var/log/cloud-init.log
- Visualize os logs do Daemon do Docker com o comando sudo journalctl -u docker
Se você usa Linux, também pode review the exit code (revisar o código de saída) para obter mais informações sobre o atendente de contêiner interrompido. Para obter mais informações, consulte exitcodes no site do GitHub.
Para obter o código de saída, execute o seguinte comando:
docker inspect your container ID
Substitua seu ID de contêiner pelo ID do contêiner interrompido.
Observação: É possível usar o coletor de logs do Amazon ECS para coletar logs gerais do sistema operacional, logs do Docker e logs do atendente de contêiner do Amazon ECS.
Verifique se o perfil de instância do IAM tem as permissões necessárias
Se o atendente de contêiner ainda estiver desconectado, verifique se o perfil de instância do IAM associado à instância de contêiner tem as permissões do IAM necessárias:
-
Use SSH ou o Gerenciador de Sessões para se conectar à instância.
-
Para visualizar os metadados da instância no perfil de instância associado à instância, execute o seguinte comando:
curl http://169.254.169.254/latest/meta-data/iam/infoA saída é semelhante ao seguinte:
{ "Code" : "Success", "LastUpdated" : "2022-02-16T22:42:17Z", "InstanceProfileArn" : "arn:aws:iam::1122334455:instance-profile/ecsInstanceRole", "InstanceProfileId" : "AIPA4VIZXOFF55F72XIZN" } -
Verifique se o perfil do IAM contém as permissões corretas para suas instâncias de contêiner.
-
Para verificar erros específicos de credenciais, execute um comando semelhante ao seguinte para verificar no log do atendente de contêiner uma lista de logs do ECS:
cat /var/log/ecs/ecs-agent.log.YYYY-MM-DD-##Substitua YYYY-MM-DD-## pelo carimbo de data/hora relevante.
Observação: O log do atendente de contêiner é alternado a cada hora. O sufixo muda automaticamente para refletir a data e a hora atuais. Atualize o comando para incluir o intervalo de data e o ID de log de quando o problema ocorreu.
Verifique se sua instância de contêiner tem recursos suficientes para executar o atendente do ECS
Se suas tarefas tiverem uma alta utilização de memória/CPU, sua instância de contêiner pode não ter recursos suficientes para executar o atendente do ECS.
O atendente de contêiner do Amazon ECS usa a função ReadMemInfo() do Docker para consultar a quantidade de memória disponível para o sistema operacional.
Execute o comando a seguir em sua instância de contêiner para ver a memória total que é reconhecida pelo sistema operacional:
free -b
Exemplo de saída para uma instância t2.large executando o Amazon Linux AMI otimizado para Amazon ECS:
total used free shared buff/cache available Mem: 8361193472 298577920 7325388800 405504 737226752 7844274176 Swap: 0 0 0
É possível optar por reservar memória para o atendente de contêiner do Amazon ECS e outros processos críticos do sistema em suas instâncias de contêiner. Reservar essa memória ajuda a garantir que os contêineres da sua tarefa não disputem pela mesma memória. Para obter mais informações, consulte Reserva de memória da instância de contêiner do Linux do Amazon ECS.
Verifique se a variável de ambiente ECS_CLUSTER tem o nome de cluster correto
Se o parâmetro de configuração do atendente de contêiner do Amazon ECS ECS_CLUSTER tiver o nome de cluster incorreto, a instância de contêiner não poderá se juntar ao cluster. Para verificar o conteúdo do arquivo /etc/ecs/ecs.config para verificar esse parâmetro, execute o seguinte comando:
cat /etc/ecs/ecs.config
Verifique se o atendente do ECS pode se comunicar com os endpoints do ECS
Para se conectar aos endpoints do ECS, as listas de controle de acesso da rede e o grupo de segurança da instância de contêiner devem permitir conexões de saída na porta 443 (HTTPS).
Para verificar as conexões de saída com os endpoints do ECS (ACS/TCS), execute um dos seguintes comandos em sua instância de contêiner:
sudo yum install telnet -y$ telnet ecs.region.amazonaws.com 443
-ou-
$ curl https://ecs.region.amazonaws.com
Revise as seguintes práticas recomendadas:
- A menos que sua aplicação exija um sistema operacional específico ou uma versão do Docker que não seja, use a AMI otimizada para o Amazon ECS para executar seus workloads do ECS.
- Use a versão mais recente do atendente de contêiner do Amazon ECS. A versão mais recente inclui atributos aprimorados e fornece atualizações importantes.
- Configure tarefas com limites de CPU e memória.
Informações relacionadas
Solução de problemas do Amazon ECS
Criar o perfil da instância de contêiner
Visualização de logs de atendente de contêiner do Amazon ECS
- Tópicos
- Containers
- Idioma
- Português

Conteúdo relevante
- feita há 2 meses
- feita há 5 meses