QuickStart: Implante um aplicativo Docker 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á.

QuickStart: Implante um aplicativo Docker no Elastic Beanstalk

Este QuickStart tutorial mostra o processo de criação de um aplicativo Docker e sua implantação em um AWS Elastic Beanstalk ambiente.

nota

Este QuickStart tutorial é destinado para fins de demonstração. Não use o aplicativo criado neste tutorial para tráfego de produção.

Sua AWS conta

Se você ainda não é AWS cliente, precisa criar uma AWS conta. A inscrição permite que você acesse o Elastic Beanstalk AWS e outros serviços de que você precisa.

Se você já tem uma AWS conta, você pode passar paraPré-requisitos.

Inscreva-se para um Conta da AWS

Se você não tiver um Conta da AWS, conclua as etapas a seguir para criar um.

Para se inscrever em um Conta da AWS
  1. Abra https://portal.aws.amazon.com/billing/signup.

  2. Siga as instruções online.

    Parte do procedimento de inscrição envolve receber uma chamada telefônica e inserir um código de verificação no teclado do telefone.

    Quando você se inscreve em um Conta da AWS, um Usuário raiz da conta da AWSé criado. O usuário raiz tem acesso a todos os Serviços da AWS e atributos na conta. Como prática recomendada de segurança, atribua o acesso administrativo a um usuário e use somente o usuário-raiz para executar tarefas que exigem acesso de usuário-raiz.

AWS envia um e-mail de confirmação após a conclusão do processo de inscrição. A qualquer momento, é possível visualizar as atividades da conta atual e gerenciar sua conta acessando https://aws.amazon.com/ e selecionando Minha conta.

Criar um usuário com acesso administrativo

Depois de se inscrever em um Conta da AWS, proteja seu Usuário raiz da conta da AWS AWS IAM Identity Center, habilite e crie um usuário administrativo para que você não use o usuário root nas tarefas diárias.

Proteja seu Usuário raiz da conta da AWS
  1. Faça login AWS Management Consolecomo proprietário da conta escolhendo Usuário raiz e inserindo seu endereço de Conta da AWS e-mail. Na próxima página, insira sua senha.

    Para obter ajuda ao fazer login usando o usuário raiz, consulte Fazer login como usuário raiz no Guia do usuário do Início de Sessão da AWS .

  2. Habilite a autenticação multifator (MFA) para o usuário raiz.

    Para obter instruções, consulte Habilitar um dispositivo de MFA virtual para seu usuário Conta da AWS raiz (console) no Guia do usuário do IAM.

Criar um usuário com acesso administrativo
  1. Habilitar o IAM Identity Center.

    Para obter instruções, consulte Habilitar AWS IAM Identity Center no Guia do usuário do AWS IAM Identity Center .

  2. No Centro de Identidade do IAM, conceda o acesso administrativo para um usuário.

    Para ver um tutorial sobre como usar o Diretório do Centro de Identidade do IAM como fonte de identidade, consulte Configurar o acesso do usuário com o padrão Diretório do Centro de Identidade do IAM no Guia AWS IAM Identity Center do usuário.

Iniciar sessão como o usuário com acesso administrativo
  • Para fazer login com seu usuário do Centro de Identidade do IAM, use o URL de login que foi enviado ao seu endereço de e-mail quando você criou o usuário do Centro do Usuário do IAM.

    Para obter ajuda para fazer login usando um usuário do IAM Identity Center, consulte Como fazer login no portal de AWS acesso no Guia Início de Sessão da AWS do usuário.

Atribuir acesso a usuários adicionais
  1. No Centro de Identidade do IAM, crie um conjunto de permissões que siga as práticas recomendadas de aplicação de permissões com privilégio mínimo.

    Para obter instruções, consulte Create a permission set no Guia do usuário do AWS IAM Identity Center .

  2. Atribua usuários a um grupo e, em seguida, atribua o acesso de autenticação única ao grupo.

    Para obter instruções, consulte Add groups no Guia do usuário do AWS IAM Identity Center .

Pré-requisitos

Para seguir os procedimentos neste manual, você precisa de um terminal de linha de comando ou de um shell para executar os comandos. Nas listagens, os comandos são mostrados precedidos por um símbolo de prompt ($) e pelo nome do diretório atual, quando apropriado.

~/eb-project$ this is a command this is output

No Linux e no macOS, você pode usar seu gerenciador de pacotes e de shell preferido. No Windows, você pode instalar o Windows Subsystem for Linux para obter uma versão integrada ao Windows do Ubuntu e do Bash.

EB CLI

Este tutorial também usa a Interface de Linhas de Comando do Elastic Beanstalk (CLI do EB). Para obter detalhes sobre a instalação e configuração da CLI do EB, consulte Instalar a EB CLI e Configurar a EB CLI.

Docker

Para seguir este tutorial, você precisará de uma instalação local funcional do Docker. Para obter mais informações, consulte Obter o Docker no site de documentação do Docker.

Verifique se o daemon do Docker está funcionando executando o comando a seguir.

~$ docker info

Etapa 1: criar um aplicativo e um contêiner Docker

Neste exemplo, criamos uma imagem Docker do aplicativo Flask de amostra que também é referenciado em. Implantar uma aplicação Flask no Elastic Beanstalk

O aplicativo consiste em dois arquivos:

  • app.py— o arquivo Python que contém o código que será executado no contêiner.

  • Dockerfile— o Dockerfile para criar sua imagem.

Coloque os dois arquivos na raiz de um diretório.

~/eb-docker-flask/ |-- Dockerfile |-- app.py

Adicione o seguinte conteúdo ao seuDockerfile.

exemplo ~/eb-docker-flask/Dockerfile
FROM python:3.12 COPY . /app WORKDIR /app RUN pip install Flask==3.0.2 EXPOSE 5000 CMD [ "python3", "-m" , "flask", "run", "--host=0.0.0.0"]

Adicione o conteúdo a seguir ao seu app.py arquivo.

exemplo ~/eb-docker-flask/app.py
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello Elastic Beanstalk! This is a Docker application'

Crie seu contêiner Docker, marcando a imagem com. eb-docker-flask

~/eb-docker-flask$ docker build -t eb-docker-flask

Etapa 2: Execute seu aplicativo localmente

Use o comando docker build para criar sua imagem de contêiner localmente, marcando a imagem com. eb-docker-flask O ponto (.) no final do comando especifica que o caminho é um diretório local.

~/eb-docker-flask$ docker run -dp 127.0.0.1:5000:5000 eb-docker-flask .

Execute seu contêiner com o comando docker run. O comando imprimirá o ID do contêiner em execução. A -d opção executa o docker no modo de segundo plano. A -p opção expõe seu aplicativo na porta 5000. Por padrão, o Elastic Beanstalk envia tráfego para a porta 5000 na plataforma Docker.

~/eb-docker-flask$ docker run -dp 127.0.0.1:5000:5000 eb-docker-flask container-id

Navegue até http://127.0.0.1:5000/ em seu navegador. Você deve ver o texto “Hello Elastic Beanstalk! Este é um aplicativo Docker”.

Execute o comando docker kill para encerrar o contêiner.

~/eb-docker-flask$ docker kill container-id

Etapa 3: implantar seu aplicativo Docker com o EB CLI

Execute os comandos a seguir para criar um ambiente do Elastic Beanstalk para esse aplicativo.

Para criar um ambiente e implantar seu aplicativo Docker
  1. Inicialize o repositório da EB CLI com o comando eb init:

    ~/eb-docker-flask$ eb init -p docker docker-tutorial us-east-2 Application docker-tutorial has been created.

    Esse comando cria um aplicativo chamado docker-tutorial e configura seu repositório local para criar ambientes com a versão mais recente da plataforma Docker.

  2. (Opcional) Execute eb init novamente para configurar um par de chaves padrão para que você possa usar SSH para se conectar à instância do EC2 que está executando seu aplicativo:

    ~/eb-docker-flask$ eb init Do you want to set up SSH for your instances? (y/n): y Select a keypair. 1) my-keypair 2) [ Create new KeyPair ]

    Selecione um par de chaves se você já tiver um, ou siga os as instruções na tela para criar um. Se nenhum prompt aparecer ou se for necessário alterar as configurações posteriormente, execute eb init -i.

  3. Crie um ambiente e implante o aplicativo nele com eb create. O Elastic Beanstalk cria automaticamente um arquivo zip para seu aplicativo e o inicia na porta 5000.

    ~/eb-docker-flask$ eb create docker-tutorial

    O Elastic Beanstalk leva cerca de cinco minutos para criar seu ambiente.

Etapa 4: Execute seu aplicativo no Elastic Beanstalk

Quando o processo de criação de seu ambiente for concluído, abra seu site comeb open.

~/eb-docker-flask$ eb open

Parabéns! Você implantou um aplicativo Docker com o Elastic Beanstalk! Isso abre uma janela do navegador usando o nome de domínio criado para o seu aplicativo.

Etapa 5: limpar

Você pode encerrar seu ambiente quando terminar de trabalhar com seu aplicativo. O Elastic Beanstalk AWS encerra todos os recursos associados ao seu ambiente.

Para encerrar seu ambiente do Elastic Beanstalk com a CLI do EB, execute o comando a seguir.

~/eb-docker-flask$ eb terminate

AWS recursos para seu aplicativo

Você acabou de criar um aplicativo de instância única. Ele serve como um aplicativo de amostra simples com uma única instância do EC2, portanto, não requer balanceamento de carga ou escalonamento automático. Para aplicativos de instância única, o Elastic Beanstalk cria os seguintes recursos: AWS

  • Instância do EC2: uma máquina virtual do Amazon EC2 configurada para executar aplicações Web na plataforma de sua escolha.

    Cada plataforma executa um conjunto diferente de software, arquivos de configuração e scripts para oferecer suporte a uma versão de linguagem, framework, contêiner da Web específicos ou a uma combinação deles. A maioria das plataformas usa o Apache ou nginx como um proxy reverso que processa tráfego da web na frente do aplicativo web, encaminha solicitações para ele, atende ativos estáticos e gera logs de acesso e de erro.

  • Grupo de segurança de instância: um grupo de segurança do Amazon EC2 configurado para permitir tráfego de entrada na porta 80. Esse recurso permite que o tráfego HTTP do load balancer chegue à instância do EC2 que executa seu aplicativo Web. Por padrão, o tráfego não é permitido em outras portas.

  • Bucket do Amazon S3: um local de armazenamento do seu código-fonte, logs e outros artefatos criados quando o Elastic Beanstalk é utilizado.

  • CloudWatch Alarmes da Amazon — Dois CloudWatch alarmes que monitoram a carga nas instâncias em seu ambiente e são acionados se a carga for muito alta ou muito baixa. Quando um alarme é acionado, o seu grupo de Auto Scaling pode aumentar ou diminuir.

  • AWS CloudFormation stack — O Elastic AWS CloudFormation Beanstalk usa para lançar os recursos em seu ambiente e propagar as alterações de configuração. Os recursos são definidos em um modelo que você pode visualizar no console do AWS CloudFormation.

  • Nome de domínio: um nome de domínio que encaminha para a aplicação Web no formato subdomínio.região.elasticbeanstalk.com.

O Elastic Beanstalk gerencia todos esses recursos. Quando você encerra o ambiente, o Elastic Beanstalk encerra todos os recursos dele.

Próximas etapas

Depois que um ambiente estiver executando um aplicativo, você poderá implantar uma nova versão do aplicativo ou um aplicativo diferente a qualquer momento. A implantação de uma nova versão do aplicativo é muito rápida, pois não é necessário provisionar ou reiniciar as instâncias do EC2. Você também pode explorar seu novo ambiente usando o console do Elastic Beanstalk. Para obter etapas detalhadas, consulte Explore seu ambiente no capítulo Introdução deste guia.

Depois de implantar um ou dois aplicativos de amostra e estar pronto para começar a desenvolver e executar aplicativos Docker localmente, consulte

Implemente com o console do Elastic Beanstalk

Você também pode usar o console do Elastic Beanstalk para iniciar o aplicativo de amostra. Para obter etapas detalhadas, consulte Criar um aplicativo de exemplo no capítulo Introdução deste guia.