Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Como faço para criar e usar AMIs personalizadas no Amazon ECS?
Quero configurar e usar o CentOS, SUSE Enterprise Server ou a imagem de máquina da Amazon (AMI) personalizada baseada em RHEL em um cluster do Amazon Elastic Container Service (Amazon ECS).
Breve descrição
Para criar uma AMI personalizada para uso com o Amazon ECS, faça o seguinte:
- Crie uma AMI.
- Instale o Docker em seu sistema operacional.
- Instale o pacote ecs-init.
- (Opcional) Instale o AWS Systems Manager Agent (SSM Agent) para ECS.
- Ative o serviço do ECS e confirme se o atendente de contêiner do ECS está ativo.
- Limpe a imagem para uso futuro.
- Crie uma nova imagem do Amazon Elastic Compute Cloud (Amazon EC2).
- Execute uma instância de contêiner do Amazon ECS Linux e adicione o UserData necessário ao executar a instância para configurar o arquivo ecs.config.
Resolução
Crie uma AMI
Há três opções para criar uma AMI:
- Para criar uma AMI personalizada com base na AMI Amazon Linux otimizada para ECS, use as ECS-optimized AMI Build Recipes (Receitas de criação de AMI otimizada para ECS) com o HashiCorp Packer para criar a imagem.
- Use EC2 Image Builder para ajudar você a construir e gerenciar a manutenção das suas imagens.
- Execute uma instância do Amazon EC2 e, em seguida, configure a instância para incluir os componentes necessários para o ECS. Para criar uma AMI com os requisitos do ECS incorporados e na AMI na qual você deseja que sua AMI do ECS se baseie, consulte Como iniciar uma instância do EC2 a partir de uma AMI personalizada? Depois que a instância estiver em execução, consulte Conectar-se à instância do Linux usando um cliente SSH.
Instale o Docker
Para instalar o Docker para seu sistema operacional e arquitetura do sistema, consulte as instruções de Instalação do Docker Engine no site do Docker.
Instale o pacote ecs-int
1. Faça o download do pacote ecs-int da Amazon para CentOS, SUSE Enterprise Server, ou RHEL executando um dos seguintes comandos:
Observação: Substitua região pela região da AWS em que você iniciou a instância.
Para x86_64 CentOS 7 / 8, SUSE Enterprise Server 15, ou RHEL 7:
$ curl -o amazon-ecs-init.rpm https://s3.<region>.amazonaws.com/amazon-ecs-agent-<region>/amazon-ecs-init-latest.x86_64.rpm
Para aarch64 CentOS 7 / 8 ou RHEL 7:
$ curl -o amazon-ecs-init.rpm https://s3.<region>.amazonaws.com/amazon-ecs-agent-<region>/amazon-ecs-init-latest.aarch64.rpm
2. Instale o pacote rpm que você baixou para a sua instância executando um dos seguintes comandos:
Para pacotes rpm para CentOS 7 / 8 e RHEL 7:
$ sudo yum install -y ./amazon-ecs-init.rpm
Para pacotes rpm para SUSE Enterprise Server 15:
$ sudo zypper install -y --allow-unsigned-rpm ./amazon-ecs-init.rpm
(Opcional) Instale o SSM Agent para ECS
Para usar o Amazon ECS Exec para o atributo de depuração, você deve instalar o SSM Agent para Amazon ECS.
- Execute o comando a seguir para baixar e extrair os binários do SSM Agent:
$ mkdir -p ssm-binaries && cd ssm-binaries
- Execute um dos seguintes comandos para CentOS, SUSE Enterprise Server ou RHEL:
Observação: Substitua region pela região em que você iniciou a instância.
Para x86_64 CentOS 7 / 8, SUSE Enterprise Server 15, ou RHEL 7:
$ curl -o amazon-ssm-agent.tar.gz https://amazon-ssm-<region>.s3.<region>.amazonaws.com/latest/linux_amd64/amazon-ssm-agent-binaries.tar.gz
Para aarch64 CentOS 7 / 8 ou RHEL 7:
$ curl -o amazon-ssm-agent.tar.gz https://amazon-ssm-<region>.s3.<region>.amazonaws.com/latest/linux_arm64/amazon-ssm-agent-binaries.tar.gz
- Execute o comando a seguir para extrair os arquivos do atendente:
$ tar -xzvf amazon-ssm-agent.tar.gz
- Obtenha a versão do SSM Agent e crie um diretório em /var/lib/ecs/deps/execute-command/bin/. Nomeie o diretório com a versão do SSM Agent. Veja a seguir um exemplo de comando para obter a versão do SSM Agent:
$ ./amazon-ssm-agent -version SSM Agent version: 3.2.286.0 $ export SSM_VERSION=3.2.286.0 $ sudo mkdir -p /var/lib/ecs/deps/execute-command/bin/$SSM_VERSION
- Execute os seguintes comandos para copiar os arquivos binários do SSM Agent para o diretório:
$ sudo cp amazon-ssm-agent /var/lib/ecs/deps/execute-command/bin/$SSM_VERSION/amazon-ssm-agent $ sudo cp ssm-agent-worker /var/lib/ecs/deps/execute-command/bin/$SSM_VERSION/ssm-agent-worker $ sudo cp ssm-session-worker /var/lib/ecs/deps/execute-command/bin/$SSM_VERSION/ssm-session-worker
- Execute o comando a seguir para copiar os certificados TLS para o SSM Agent:
$ sudo mkdir -p /var/lib/ecs/deps/execute-command/certs $ sudo cp /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem /var/lib/ecs/deps/execute-command/certs/tls-ca-bundle.pem $ sudo chmod 400 /var/lib/ecs/deps/execute-command/certs/tls-ca-bundle.pem
Ative o serviço do ECS e confirme se o atendente de contêiner do ECS está ativo
1. Para habilitar o serviço do ECS, execute o seguinte comando:
$ sudo systemctl enable --now ecs
- Execute o comando a seguir para confirmar que o serviço do ECS está ativado e se o atendente de contêiner do ECS está ativo:
$ sudo systemctl status ecs $ sudo docker ps
As saídas são semelhantes ao seguinte:
ecs.service - Amazon Elastic Container Service - container agent Loaded: loaded (/lib/systemd/system/ecs.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2022-02-22 08:39:02 UTC; 11min ago (...)
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 108cfb8a10d2 amazon/amazon-ecs-agent:latest "/agent" 9 minutes ago Up 9 minutes (healthy) ecs-agent
Limpe a imagem
1. Para limpar a imagem para uso futuro, interrompa o pacote ecs-init e os processos do Docker executando os seguintes comandos:
$ sudo systemctl stop ecs $ sudo systemctl stop docker
2. Remova todos os arquivos de log da instância atual para evitar preservá-los ao salvar a imagem.. Use o script de exemplo nas práticas recomendas de segurança para EC2 Image Builder para limpar vários arquivos ad instância.
3. Para limpar os dados específicos ECS, execute os seguintes comandos:
$ sudo rm -rf /var/log/ecs/* $ sudo rm /var/lib/ecs/data/agent.db
Crie uma nova imagem do Amazon EC2
Use sua imagem configurada da etapa anterior para criar uma nova imagem executando o seguinte comando:
$ aws ec2 create-image --description "My ECS Image" --instance-id i-012345678910 --name Custom-ECS-Image --reboot
A saída é semelhante ao seguinte:
{ "ImageId": "ami-01234567890101" }
Execute uma instância
Para executar uma instância, consulte Iniciar uma instância de contêiner do Linux do Amazon ECS.
Com sua nova AMI, execute o comando a seguir para confirmar se o UserData contém o comando para gravar no arquivo ecs.config:
**Observação:**Substitua your\ _cluster\ _name pelo nome do seu cluster.
#!/bin/bash echo ECS_CLUSTER=your_cluster_name >> /etc/ecs/ecs.config
- Tópicos
- Containers
- Idioma
- Português

Conteúdo relevante
- feita há 3 meses
AWS OFICIALAtualizada há um ano