

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á.

# Implantar contêineres usando o Elastic Beanstalk
<a name="deploy-containers-by-using-elastic-beanstalk"></a>

*Thomas Scott e Jean-Baptiste Guillois, Amazon Web Services*

## Resumo
<a name="deploy-containers-by-using-elastic-beanstalk-summary"></a>

Na Nuvem da Amazon Web Services (AWS), o AWS Elastic Beanstalk oferece suporte ao Docker como uma plataforma disponível, para que os contêineres possam ser executados com o ambiente criado. Esse padrão mostra como implantar contêineres usando o serviço Elastic Beanstalk. A implantação desse padrão usará o ambiente de servidor web baseado na plataforma Docker.

Para usar o Elastic Beanstalk para implantar e escalar aplicativos e serviços web, você carrega seu código e a implantação é tratada automaticamente. Provisionamento de capacidade, balanceamento de carga, ajuste de escala automático e monitoramento da integridade do aplicativo também estão incluídos. Ao usar o Elastic Beanstalk, você pode assumir o controle total sobre os recursos da AWS que ele cria em seu nome. Não há custo adicional para o Elastic Beanstalk. Você paga apenas pelos recursos da AWS que são usados para armazenar e executar seus aplicativos.

Esse padrão inclui instruções para implantação usando a [Interface de linhas de comandos do AWS Elastic Beanstalk (EB CLI)](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-install-advanced.html) e o Console de Gerenciamento da AWS.

**Casos de uso**

Os casos de uso do Elastic Beanstalk incluem: 
+ Implementar um ambiente de protótipo para demonstrar um aplicativo de frontend. (Esse padrão usa um Dockerfile** **como exemplo.)
+ Implantar uma API para lidar com solicitações de API para um determinado domínio.
+ Implante uma solução de orquestração usando o Docker-Compose (`docker-compose.yml` não** **é usado como exemplo prático nesse padrão).

## Pré-requisitos e limitações
<a name="deploy-containers-by-using-elastic-beanstalk-prereqs"></a>

**Pré-requisitos **
+ Uma conta da AWS
+ AWS EB CLI instalada localmente
+ Docker instalado em uma máquina local

**Limitações**
+ Há um limite de extração do Docker de 100 pulls por seis horas por endereço IP no plano gratuito.

## Arquitetura
<a name="deploy-containers-by-using-elastic-beanstalk-architecture"></a>

**Pilha de tecnologias de destino**
+ Instâncias do Amazon Elastic Compute Cloud (Amazon EC2)
+ Grupo de segurança
+ Application Load Balancer
+ Auto Scaling group (Grupo do Auto Scaling)

**Arquitetura de destino**

![Arquitetura para a implantação de contêineres com o Elastic Beanstalk.](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/dfabcdc2-747f-40e2-a603-08ea31ba71d3/images/1d17ff09-1aea-4c72-adb5-eaf741601428.png)


**Automação e escala**

O AWS Elastic Beanstalk pode escalar automaticamente com base no número de solicitações feitas. Os recursos da AWS criados para um ambiente incluem um Application Load Balancer, um grupo de Auto Scaling e uma ou mais instâncias da Amazon. EC2  

O balanceador de carga fica na frente das EC2 instâncias da Amazon, que fazem parte do grupo Auto Scaling. O Amazon EC2 Auto Scaling inicia automaticamente EC2 instâncias adicionais da Amazon para acomodar o aumento da carga em seu aplicativo. Se a carga em seu aplicativo diminuir, o Amazon EC2 Auto Scaling interrompe as instâncias, mas mantém pelo menos uma instância em execução.

**Triggers de ajuste de escala automático**

O grupo Auto Scaling em seu ambiente do Elastic Beanstalk usa dois CloudWatch alarmes da Amazon para iniciar operações de escalabilidade. Os triggers padrão são dimensionados quando a média de tráfego de rede de saída de cada instância é mais alta que 6 MB ou mais baixa que 2 MB durante um período de cinco minutos. Para usar o Amazon EC2 Auto Scaling de forma eficaz, configure gatilhos apropriados para seu aplicativo, tipo de instância e requisitos de serviço. Você pode dimensionar com base em várias estatísticas, incluindo latência, E/S de disco, utilização de CPU e a contagem de solicitações. Para obter mais informações, consulte [Triggers de ajuste de escala automático](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environments-cfg-autoscaling-triggers.html).

## Ferramentas
<a name="deploy-containers-by-using-elastic-beanstalk-tools"></a>

**Serviços da AWS**
+ A ‭[AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)‭ é uma ferramenta de código aberto que permite que você interaja com serviços da AWS usando comandos no shell da linha de comando.
+ A [AWS EB Command Line Interface (EB CLI)](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-install.html) é um cliente de linha de comando que você pode usar para criar, configurar e gerenciar ambientes do Elastic Beanstalk.
+ O [Elastic Load Balancing (ELB)](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) distribui o tráfego de entrada de aplicativos ou de rede em vários destinos. Por exemplo, você pode distribuir tráfego entre instâncias, contêineres e endereços IP do Amazon Elastic Compute Cloud (Amazon EC2) em uma ou mais zonas de disponibilidade.

**Outros serviços**
+ O [Docker](https://www.docker.com/) empacota o software em unidades padronizadas chamadas contêineres que incluem bibliotecas, ferramentas do sistema, código e runtime.

**Código **

O código desse padrão está disponível no repositório GitHub [Cluster Sample Application](https://github.com/aws-samples/cluster-sample-app).

## Épicos
<a name="deploy-containers-by-using-elastic-beanstalk-epics"></a>

### Compile com um Dockerfile
<a name="build-with-a-dockerfile"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Clone o repositório remoto. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containers-by-using-elastic-beanstalk.html) | Desenvolvedor de aplicativos, administrador da AWS, AWS DevOps | 
| Inicialize o projeto Elastic Beanstalk Docker. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containers-by-using-elastic-beanstalk.html) | Desenvolvedor de aplicativos, administrador da AWS, AWS DevOps | 
| Teste o projeto localmente | [See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containers-by-using-elastic-beanstalk.html) | Desenvolvedor de aplicativos, administrador da AWS, AWS DevOps | 

### Implante usando a EB CLI
<a name="deploy-using-eb-cli"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Execute o comando de implantação | [See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containers-by-using-elastic-beanstalk.html) | Desenvolvedor de aplicativos, administrador da AWS, AWS DevOps | 
| Acesse a versão implantada. | Depois que o comando de implantação for concluído, acesse o projeto usando o comando `eb open`. | Desenvolvedor de aplicativos, administrador da AWS, AWS DevOps | 

### Implante usando o console
<a name="deploy-using-the-console"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Implante o aplicativo usando o navegador. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/deploy-containers-by-using-elastic-beanstalk.html) | Desenvolvedor de aplicativos, administrador da AWS, AWS DevOps | 
| Acesse a versão implantada. | Após a implantação, acesse o aplicativo implantado e escolha a URL fornecida. | Desenvolvedor de aplicativos, administrador da AWS, AWS DevOps | 

## Recursos relacionados
<a name="deploy-containers-by-using-elastic-beanstalk-resources"></a>
+ [Ambientes de servidor da web](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts-webserver.html)
+ [Instalar a EB CLI no macOS](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-install-osx.html)
+ [Instalar a CLI do EB manualmente](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-install-advanced.html)

## Mais informações
<a name="deploy-containers-by-using-elastic-beanstalk-additional"></a>

**Vantagens de usar o Elastic Beanstalk**
+ Provisionamento automático da infraestrutura
+ Gerenciamento automático da plataforma subjacente
+ Correções e atualizações automáticas para oferecer suporte ao aplicativo
+ Ajuste de escala automático da aplicação
+ Capacidade de personalizar o número de nós
+ Capacidade de acessar os componentes da infraestrutura, se necessário
+ Facilidade de implantação em relação a outras soluções de implantação de contêineres