Usando a ramificação da plataforma Docker gerenciada pelo ECS no Elastic Beanstalk - AWS Elastic Beanstalk

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usando a ramificação da plataforma Docker gerenciada pelo ECS no Elastic Beanstalk

Este tópico fornece uma visão geral das ramificações da plataforma Docker gerenciada pelo Elastic Beanstalk ECS para Amazon Linux 2 e Amazon Linux 2023. Ele também fornece informações de configuração específicas para a plataforma gerenciada Docker ECS.

Migração do Docker de vários contêineres em AL1

Em 18 de julho de 2022, o Elastic Beanstalk definiu o status de todas as ramificações da plataforma baseadas no Amazon Linux AMI () como descontinuadas. AL1 Embora este capítulo forneça informações de configuração para essa plataforma descontinuada, é altamente recomendável que você migre para a ramificação mais recente da plataforma compatível. Se você está usando atualmente o Docker de vários contêineres aposentado em execução na ramificação da AL1 plataforma, você pode migrar para a ramificação mais recente da plataforma ECS Running on 023. AL2 A ramificação mais recente da plataforma é compatível com todos os recursos da ramificação da plataforma que foi retirada. Não é necessária nenhuma alteração no código-fonte. Para obter mais informações, consulte Migrando seu aplicativo Elastic Beanstalk do Docker de vários contêineres gerenciado pelo ECS para o ECS no Amazon Linux 2023 AL1 .

Visão geral da plataforma Docker gerenciada pelo ECS

O Elastic Beanstalk usa o Amazon Elastic Container Service (Amazon ECS) para coordenar implantações de contêiner em ambientes do Docker gerenciado pelo ECS. O Amazon ECS fornece ferramentas para gerenciar um cluster de instâncias executando contêineres do Docker. O Elastic Beanstalk cuida das tarefas do Amazon ECS, incluindo criação de cluster, definição de tarefas e execução. Cada uma das instâncias do ambiente executa o mesmo conjunto de contêineres que são definidos em um arquivo Dockerrun.aws.json v2. Para aproveitar ao máximo o Docker, o Elastic Beanstalk permite criar um ambiente em que suas instâncias da EC2 Amazon executam vários contêineres do Docker lado a lado.

O diagrama a seguir mostra um exemplo de ambiente do Elastic Beanstalk configurado com três contêineres Docker em execução em EC2 cada instância da Amazon em um grupo de Auto Scaling:

Elastic Beanstalk environment with load balancer, auto scaling group, and containerized tasks.

Recursos do Amazon ECS criados pelo Elastic Beanstalk

Quando você cria um ambiente usando a plataforma Docker gerenciada pelo ECS, o Elastic Beanstalk cria e configura automaticamente vários recursos do Amazon Elastic Container Service enquanto cria o ambiente. Ao fazer isso, ele cria os contêineres necessários em cada EC2 instância da Amazon.

  • Cluster do Amazon ECS: as instâncias de contêiner no Amazon ECS são organizadas em clusters. Quando é ele usado com o Elastic Beanstalk, sempre é criado um cluster para cada ambiente do Docker gerenciado pelo ECS. Um cluster ECS também contém provedores de capacidade de grupo do Auto Scaling e outros recursos.

  • Definição de tarefas do Amazon ECS: o Elastic Beanstalk usa o arquivo Dockerrun.aws.json v2 no projeto para gerar a definição de tarefas do Amazon ECS que é usada para configurar instâncias de contêiner no ambiente.

  • Tarefa do Amazon ECS: o Elastic Beanstalk se comunica com o Amazon ECS para executar uma tarefa em todas as instâncias do ambiente para coordenar a implantação de contêineres. Em um ambiente escalável, o Elastic Beanstalk inicia uma nova tarefa sempre que uma instância é adicionada ao cluster.

  • Agente de contêiner do Amazon ECS: o agente é executado em um contêiner do Docker nas instâncias do ambiente. O agente consulta o serviço do Amazon ECS e aguarda uma tarefa para executar.

  • Volumes de dados do Amazon ECS — Além dos volumes que você define na Dockerrun.aws.json v2, o Elastic Beanstalk insere definições de volume na definição da tarefa para facilitar a coleta de registros.

    O Elastic Beanstalk cria volumes de log na instância de contêiner, um para cada contêiner, em /var/log/containers/containername. Esses volumes são denominados awseb-logs-containername e são fornecidos para os contêineres que devem ser montados. Consulte Formato de definição de contêiner para detalhes sobre como montá-los.

Para obter mais informações sobre os recursos do Amazon ECS, consulte o Guia do desenvolvedor do Amazon Elastic Container Service.

Arquivo Dockerrun.aws.json v2

As instâncias do contêiner exigem um arquivo de configuração chamado Dockerrun.aws.json. Instâncias de contêiner se referem às EC2 instâncias da Amazon executando o Docker gerenciado pelo ECS em um ambiente do Elastic Beanstalk. Esse arquivo é específico do Elastic Beanstalk e pode ser usado individualmente ou combinado com código-fonte e conteúdo em um pacote de fonte para criar um ambiente na plataforma Docker.

nota

O formato da versão 2 Dockerrun.aws.json adiciona suporte para vários contêineres por EC2 instância da Amazon e só pode ser usado com uma plataforma Docker gerenciada pelo ECS. O formato difere significativamente das outras versões do arquivo de configuração compatíveis com as ramificações da plataforma Docker que não são gerenciadas pelo ECS.

Consulte o Dockerrun.aws.json v2 para obter detalhes sobre o formato atualizado e um arquivo de exemplo.

Imagens de Docker

A plataforma Docker gerenciada pelo ECS para o Elastic Beanstalk exige que as imagens sejam pré-criadas e armazenadas em um repositório de imagens online público ou privado antes de criar um ambiente do Elastic Beanstalk.

nota

A criação de imagens personalizadas durante a implantação com um Dockerfile não é compatível com a plataforma Docker gerenciada pelo ECS no Elastic Beanstalk. Crie suas imagens e implante-as em um repositório online antes de criar um ambiente do Elastic Beanstalk.

Especifique as imagens por nome em Dockerrun.aws.json v2.

Para configurar o Elastic Beanstalk para autenticar em um repositório privado, inclua o parâmetro authentication no arquivo Dockerrun.aws.json v2.

Falha nas implantações de contêiner

Se uma tarefa do Amazon ECS falhar, um ou mais contêineres em seu ambiente Elastic Beanstalk não serão iniciados. O Elastic Beanstalk não reverte ambientes de vários contêineres devido a falha em uma tarefa do Amazon ECS. Se um contêiner não for iniciado no ambiente, implante novamente a versão atual ou uma versão funcional anterior do console do Elastic Beanstalk.

Para implantar uma versão existente
  1. Abra o console do Elastic Beanstalk na região do seu ambiente.

  2. Clique em Actions, à direita do nome do aplicativo, e depois clique em View application versions.

  3. Selecione uma versão do aplicativo e clique em Deploy.

Estendendo as plataformas Docker baseadas em ECS para o Elastic Beanstalk

O Elastic Beanstalk oferece recursos de extensibilidade que permitem que você aplique seus próprios comandos, scripts, software e configurações às implantações de seus aplicativos. O fluxo de trabalho de implantação para as ramificações da plataforma ECS AL2 e AL2 023 varia um pouco das outras plataformas baseadas em Linux. Para obter mais informações, consulte Fluxo de trabalho de implantação de instâncias para o ECS em execução no Amazon Linux 2 e versões posteriores.