O documento discute o serviço AWS Elastic Beanstalk, que permite aos desenvolvedores implantar e gerenciar aplicações na nuvem da AWS de forma rápida e simples. O Elastic Beanstalk automatiza a configuração e provisionamento de infraestrutura necessária para rodar aplicações web, removendo a necessidade de gerenciar servidores, banco de dados e outros recursos manualmente. O documento também fornece instruções sobre como implantar aplicações no Elastic Beanstalk usando a linha de comando ou console da AWS.
4. * As of 30 April 2016
2009
48
280
722
82
2011 2013 2015
Passo de inovação na AWS
Ouvimos nossos clientes e criamos
o que eles precisam
5. Alguns Desafios dos Clientes
Implantar código e não se preocupar o
provisionamento e gerenciamento da
infraestrutura
Não ter expertise ou tempo disponível
Escalabilidade automática de
aplicações
6. Elastic Beanstalk
Maneira mais simples para
implantar e escalar aplicações
Java, .NET, PHP, Node.js, Python,
Ruby, Go e Docker
Faça o upload de sua aplicação e
deixe o Beanstalk gerenciar a
infraestrutura necessária
7. Elastic Beanstalk vs. Faça você mesmo
Seu código
Servidor HTTP
Servidor de Aplicação
Interpretador
Sistema Operacional
Host
Foco na construção
de sua aplicação
Fornecido por você
Fornecido e gerenciado pelo Elastic Beanstalk
On-instance configuration
8. Elastic Beanstalk vs. Faça você mesmo
• Instância única ou com balanceador
• Camada Web e Camada de Workers
• Provisiona a infra necessária:
balanceador de carga, auto scaling,
security groups, bds (opcional), etc.
• Provê um único domínio para
aplicação: app.elasticbeanstalk.com)
Stack de Infraestrutura
9. Versionamento da aplicação e configuração
Configurações salvas
Guarde as conf. dos
seus ambientes para
replicação futura
Versão das apps
Versões armazenadas
no S3. Código pode
vir do Git.
11. Rápido e Simples de Começar
Maneira mais rápida e simples de se
implantar uma aplicação na AWS
Faça o upload de sua aplicação e deixe
o Beanstalk gerenciar a infraestrutura
necessária
12. Produtividade para o Desenvolvedor
Provisiona a infraestrutura e gerencia a
stack das aplicações por você
Foco na criação de códigos ao invés de
gastar tempo gerenciando infraestrutura
14. Total Controle dos Recursos
Mantenha o controle total sobre os
recursos na AWS
Assuma o controle de alguns (ou todos)
os elementos de sua infraestrutura
15. Casos de Uso Comuns
• Websites
• API backends
• Mobile backends
• Processamento assíncrono
16. Preço e Disponibilidade
• Atualmente disponível em todas as regiões da AWS
• Não há cobrança adicional pelo AWS Elastic Beanstalk
• Pague somente pelos recursos (ex: instâncias EC2, ELBs ou
RDS, etc) criados para rodar suas aplicações
18. Informações para implantar uma aplicação
01
02
03
04
Região
Tipo de Stack
Instância única
Balanceador e
AutoScaling
ou
Banco de Dados (RDS) Optional
Seu código Plataformas
19. Como implantar aplicações
1. Com o AWS Management Console
2. Com o AWS Toolkit para Eclipse ou
Visual Studio IDE
3. Com o EB CLI (command line)
20. Implantando uma aplicação via CLI
$ git clone
https://github.com/awsla
bs/eb-node-express-
sample.git
Baixe uma aplicação exemplo:2
$ eb init
Crie seu app3
Siga os prompts e configure
o ambiente
4
5 Crie os recursos e lance a
aplicação:
$ eb create
$ pip install --upgrade
awsebcli
Instale o EB CLI:1
21. Atualizando via CLI
Atualize seu código1
$ git add .
$ git commit –m “v2.0”
$ eb deploy
Adicione e faça o commit no repositório2
Abra a aplicação quando o deploy terminar:3
$ eb open
26. Teste e faça o tunning de sua aplicação
• Escolha as métricas de performance que você
deseja otimizar (ex: latência, usuários concorrentes,
requisições web, etc.)
• Faça o teste de carga de sua aplicação
• Configure Autoscaling para otimizar as métricas de performance
• Faça o tunning do backend (DynamoDB, RDS, etc.) para
performance ótima;
27. Implantação – Rolling updates
1. Defina a % de instâncias implantadas por vez
2. Implante x% e continue somente se as instâncias
estiverem saudáveis
3. Rollback automático em caso de falhas
28. Prós:
• Implantações são rápidas (20-60 s)
Contras:
• Rollback mais demorado pois a versão
anterior da aplicação precisa ser
reimplantada
Implantação – Rolling updates
29. Implantação – Zero Downtime
1. Crie um novo ambiente para uma aplicação
2. Implante a nova versão da app no novo ambiente
3. Use o “Swap Environment URLs” para direcionar os
usuários para o novo ambiente de produção
30. Prós:
• Implantação com Zero downtime
• Rollback rápido: ambiente com a versão anterior não foi
modificado
Contras:
• Implantações levam mais tempo do que o modelo rolling
(2-5 min) pois um novo ambiente precisa ser criado
• Cache de DNS, não respeitam o TTL
Implantação – Zero Downtime
31. Logs, métricas e alarmes
• Habilite a rotação de logs para que sejam automaticamente
gravadas no S3
• Entender métricas disponíveis para o seu ambiente e o que
eles significam
• Configure alarmes para monitorar automaticamente métricas
críticas e enviar notificações quando estiverem fora do intervalo
de operação normal
32. Coloque Tags em seus ambientes
• Torna mais fácil a busca de recursos de um determinado
ambiente
• Pode ser utilizada para monitorar custos associado a um
ambiente ou aplicação
• Elastic Beanstalk automaticamente coloca tags nos
ambientes:
• Environment name
• Environment ID
33. Conclusão
• Elastic Beanstalk é a maneira mais simples e conveniente de
subir aplicações na AWS
• Possui recursos poderosos
• Pague somente pelos recursos utilizados
Note to AWS Employees: Please note that we are no longer providing a bar chart comparing 2015 year-to-date to previous years in this deck. We will provide a final launch number at the close of each year going forward. It is ok however to verbally disclose the current year-to-date launch count in your own presentations/customer materials however.
<>
AWS Elastic Beanstalk is an easy-to-use service for deploying and scaling web applications and services developed with Java, .NET, PHP, Node.js, Python, Ruby, and Docker on familiar servers such as Apache, Nginx, Passenger, and IIS.
You can simply upload your code and Elastic Beanstalk automatically handles the deployment, from capacity provisioning, load balancing, auto-scaling to application health monitoring. At the same time, you retain full control over the AWS resources powering your application and can access the underlying resources at any time.
AWS Elastic Beanstalk is an easy-to-use service for deploying and scaling web applications and services developed with Java, .NET, PHP, Node.js, Python, Ruby, and Docker on familiar servers such as Apache, Nginx, Passenger, and IIS.
You can simply upload your code and Elastic Beanstalk automatically handles the deployment, from capacity provisioning, load balancing, auto-scaling to application health monitoring. At the same time, you retain full control over the AWS resources powering your application and can access the underlying resources at any time.
Elastic Beanstalk is the fastest and simplest way to deploy your application on AWS. You simply use the AWS Management Console, a Git repository, or an integrated development environment (IDE) such as Eclipse or Visual Studio to upload your application, and Elastic Beanstalk automatically handles the deployment details of capacity provisioning, load balancing, auto-scaling, and application health monitoring. Within minutes, your application will be ready to use without any infrastructure or resource configuration work on your part.
Elastic Beanstalk provisions and operates the infrastructure and manages the application stack for you, so you don't have to spend the time or develop the expertise. Instead, you can focus on writing code rather than spending time managing and configuring servers, databases, load balancers, firewalls, and networks.
Elastic Beanstalk automatically scales your application up and down based on your applications specific need using easily adjustable Auto Scaling settings. For example, you can use CPU utilization metrics to trigger Auto Scaling actions. With Elastic Beanstalk, your application can handle peaks in workload or traffic while minimizing your costs.
You have the freedom to select the AWS resources, such as Amazon EC2 instance type, that are optimal for your application. Additionally, Elastic Beanstalk lets you "open the hood" and retain full control over the AWS resources powering your application. If you decide you want to take over some (or all) of the elements of your infrastructure, you can do so seamlessly by using Elastic Beanstalk's management capabilities.
Canary deployments
Detect failures early and roll back
Swaps the CNAMEs of environments (appname.elasticbeanstalk.com) with another CNAME with a different environment. This allows blue green deployments (red/black).