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
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.
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
-
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.
-
Conecte-se à sua instância.
-
Instale a versão mais recente do Docker na instância.
-
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 ECS20220607
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
-
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
-
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
-
(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 clusterMyCluster
.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 ter 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.
-
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
.