Instalar o agente de contêiner do Amazon ECS - Amazon Elastic Container Service

Instalar o agente de contêiner do Amazon ECS

Se desejar registrar uma instância do Amazon EC2 com o cluster do Amazon ECS e essa instância não estiver usando uma AMI baseada na AMI otimizada para o Amazon ECS, você poderá instalar o agente de contêiner do Amazon ECS manualmente usando o procedimento apresentado a seguir. Para fazer isso, você pode efetuar o download do agente de um dos buckets regionais do Amazon S3 ou do Amazon Elastic Container Registry Public. Se você efetuar o download de um dos buckets regionais do Amazon S3, como opção, poderá verificar a validade do arquivo do agente de contêiner usando a assinatura PGP.

nota

As unidades systemd para os serviços do Amazon ECS e do Docker têm uma diretiva para aguardar a conclusão de cloud-init antes de iniciar ambos os serviços. O processo cloud-init só será considerado concluído quando a execução dos dados do usuário do Amazon EC2 estiver concluída. Portanto, iniciar o Amazon ECS ou o Docker por meio dos dados de usuário do Amazon EC2 pode causar um deadlock. Para iniciar o agente de contêiner usando dados de usuário do Amazon EC2, é possível usar systemctl enable --now --no-block ecs.service.

Instalar o agente de contêiner do Amazon ECS em uma instância que não seja do EC2 do Amazon Linux

Para instalar o agente de contêiner do Amazon ECS em uma instância do Amazon EC2, é possível efetuar o download do agente de um dos buckets regionais do Amazon S3 e instalá-lo.

nota

Ao usar uma AMI que não seja do Amazon Linux, sua instância do Amazon EC2 requer suporte do cgroupfs para o driver cgroup para que o agente do Amazon ECS ofereça suporte a limites de recursos em nível de tarefa. Para obter mais informações, consulte Amazon ECS agent on GitHub (Agente do Amazon ECS no GitHub).

Os arquivos do agente de contêiner do Amazon ECS mais recentes, por região, para cada arquitetura de sistema, são listados a seguir para referência.

Região Nome da região Arquivos de deb init do Amazon ECS Arquivos de rpm init do Amazon ECS
us-east-2 Leste dos EUA (Ohio)

Amazon ECS amd64 init (amd64)

Amazon ECS arm64 init (arm64)

Amazon ECS x86_64 init (x86_64)

Amazon ECS aarch64 init (aarch64)

us-east-1 Leste dos EUA (Norte da Virgínia)

Amazon ECS amd64 init (amd64)

Amazon ECS arm64 init (arm64)

Amazon ECS x86_64 init (x86_64)

Amazon ECS aarch64 init (aarch64)

us-west-1 Oeste dos EUA (N. da Califórnia)

Amazon ECS amd64 init (amd64)

Amazon ECS arm64 init (arm64)

Amazon ECS x86_64 init (x86_64)

Amazon ECS aarch64 init (aarch64)

us-west-2 Oeste dos EUA (Oregon)

Amazon ECS amd64 init (amd64)

Amazon ECS arm64 init (arm64)

Amazon ECS x86_64 init (x86_64)

Amazon ECS aarch64 init (aarch64)

ap-east-1 Ásia-Pacífico (Hong Kong)

Amazon ECS amd64 init (amd64)

Amazon ECS arm64 init (arm64)

Amazon ECS x86_64 init (x86_64)

Amazon ECS aarch64 init (aarch64)

ap-northeast-1 Ásia-Pacífico (Tóquio)

Amazon ECS amd64 init (amd64)

Amazon ECS arm64 init (arm64)

Amazon ECS x86_64 init (x86_64)

Amazon ECS aarch64 init (aarch64)

ap-northeast-2 Ásia-Pacífico (Seul)

Amazon ECS amd64 init (amd64)

Amazon ECS arm64 init (arm64)

Amazon ECS x86_64 init (x86_64)

Amazon ECS aarch64 init (aarch64)

ap-south-1 Ásia-Pacífico (Mumbai)

Amazon ECS amd64 init (amd64)

Amazon ECS arm64 init (arm64)

Amazon ECS x86_64 init (x86_64)

Amazon ECS aarch64 init (aarch64)

ap-southeast-1 Ásia-Pacífico (Singapura)

Amazon ECS amd64 init (amd64)

Amazon ECS arm64 init (arm64)

Amazon ECS x86_64 init (x86_64)

Amazon ECS aarch64 init (aarch64)

ap-southeast-2 Ásia-Pacífico (Sydney)

Amazon ECS amd64 init (amd64)

Amazon ECS arm64 init (arm64)

Amazon ECS x86_64 init (x86_64)

Amazon ECS aarch64 init (aarch64)

ca-central-1 Canadá (Central)

Amazon ECS amd64 init (amd64)

Amazon ECS arm64 init (arm64)

Amazon ECS x86_64 init (x86_64)

Amazon ECS aarch64 init (aarch64)

eu-central-1 Europa (Frankfurt)

Amazon ECS amd64 init (amd64)

Amazon ECS arm64 init (arm64)

Amazon ECS x86_64 init (x86_64)

Amazon ECS aarch64 init (aarch64)

eu-west-1 Europa (Irlanda)

Amazon ECS amd64 init (amd64)

Amazon ECS arm64 init (arm64)

Amazon ECS x86_64 init (x86_64)

Amazon ECS aarch64 init (aarch64)

eu-west-2 Europa (Londres)

Amazon ECS amd64 init (amd64)

Amazon ECS arm64 init (arm64)

Amazon ECS x86_64 init (x86_64)

Amazon ECS aarch64 init (aarch64)

eu-west-3 Europa (Paris)

Amazon ECS amd64 init (amd64)

Amazon ECS arm64 init (arm64)

Amazon ECS x86_64 init (x86_64)

Amazon ECS aarch64 init (aarch64)

sa-east-1 América do Sul (São Paulo)

Amazon ECS amd64 init (amd64)

Amazon ECS arm64 init (arm64)

Amazon ECS x86_64 init

Amazon ECS aarch64 init (aarch64)

us-gov-east-1 AWS GovCloud (Leste dos EUA)

Amazon ECS amd64 init (amd64)

Amazon ECS arm64 init (arm64)

Amazon ECS x86_64 init (x86_64)

Amazon ECS aarch64 init (aarch64)

us-gov-west-1 AWS GovCloud (Oeste dos EUA)

Amazon ECS amd64 init (amd64)

Amazon ECS arm64 init (arm64)

Amazon ECS x86_64 init (x86_64)

Amazon ECS aarch64 init (aarch64)

Para instalar o agente de contêiner do Amazon ECS em uma instância do Amazon EC2 usando uma AMI que não seja do Amazon Linux
  1. Inicie uma instância do Amazon EC2 com uma função do IAM que permita acesso ao Amazon ECS. Para ter mais informações, consulte Função do IAM de instância de contêiner do Amazon ECS.

  2. Conecte-se à sua instância.

  3. Instale a versão mais recente do Docker na instância.

  4. Verifique a versão do Docker para verificar se seu sistema atende à exigência de versão mínima.

    nota

    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 à 1.9.0.

    docker --version
  5. Baixe o arquivo de agente do Amazon ECS apropriado para seu sistema operacional e arquitetura de sistema e instale-o.

    Para arquiteturas 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 arquiteturas 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
  6. Edite o arquivo /lib/systemd/system/ecs.service e adicione a linha apresentada a seguir no final da seção [Unit].

    After=cloud-final.service
  7. (Opcional) Para registrar a instância com um cluster diferente do cluster default, edite o arquive /etc/ecs/ecs.config e adicione o seguinte conteúdo. O exemplo seguinte especifica o cluster MyCluster.

    ECS_CLUSTER=MyCluster

    Para obter mais informações sobre essas e outras opções de runtime de agente, consulte Configuração do agente de contêiner do Amazon ECS.

    nota

    É possível, opcionalmente, armazenar suas variáveis de ambiente do agente no Amazon S3 (que podem ser baixadas para as instâncias de contêiner no momento da inicialização usando os dados de usuário do Amazon EC2). Isso é recomendado para informações confidenciais, como credenciais de autenticação para repositórios privados. Para obter mais informações, consulte Armazenamento da configuração da instância de contêiner do Amazon ECS no Amazon S3 e Uso de imagens de contêiner que não são da AWS no Amazon ECS.

  8. Inicie o serviço ecs.

    ubuntu:~$ sudo systemctl start ecs

Execução do agente do Amazon ECS com o modo de rede de host

Durante a execução do agente de contêiner do Amazon ECS, ecs-init criará o contêiner do agente de contêiner com o modo de rede de host. Esse é o único modo de rede com suporte para o contêiner do agente de contêiner.

Isso permite que você bloqueie o acesso ao Endpoint de serviço de metadados da instância do Amazon EC2 (http://169.254.169.254) para os contêineres iniciados pelo agente de contêiner. Isso garante que os contêineres não possam acessar as credenciais de função do IAM do perfil da instância de contêiner e impõe que as tarefas usem apenas as credenciais de função de tarefa do IAM. Para ter mais informações, consulte Perfil do IAM para tarefas do Amazon ECS.

Isso também permite que o agente de contêiner não dispute conexões e tráfego de rede na ponte docker0.