Perguntas frequentes sobre o AWS Elastic Beanstalk

Geral

O AWS Elastic Beanstalk facilita ainda mais para os desenvolvedores implementarem e gerenciarem com rapidez aplicativos na Nuvem AWS. Os desenvolvedores simplesmente carregam sua aplicação e o Elastic Beanstalk administra automaticamente os detalhes de implantação do provisionamento da capacidade, do balanceamento de carga, do Auto Scaling e do monitoramento de saúde da aplicação.

Qualquer pessoa que queira implantar e gerenciar seus aplicativos em minutos na Nuvem AWS. Não é necessária experiência em computação em nuvem para começar a usar. O AWS Elastic Beanstalk é compatível com os aplicativos da Web em Java, .NET, PHP, Node.js, Python, Ruby, Go e Docker.

O AWS Elastic Beanstalk é compatível com as seguintes pilhas de desenvolvimento e linguagens:

Aplicativos Apache Tomcat para Java

Aplicativos Apache HTTP Server para PHP

Apache HTTP Server para aplicativos Python

Nginx u Apache HTTP Server para aplicativos Node.js

Passenger ou Puma para aplicativos Ruby

Microsoft IIS 7.5, 8.0 e 8.5 para aplicativos .NET

Java SE

Docker

Go

Visite Plataformas compatíveis para obter uma lista completa e atualizada das pilhas de desenvolvimento e linguagens compatíveis.

Sim. O AWS Elastic Beanstalk foi projetado de forma a ser estendido para futuramente oferecer suporte a várias pilhas de desenvolvimento e linguagens de programação. A AWS está trabalhando com provedores de solução quanto às APIs e capacidades necessárias para criar ofertas adicionais do Elastic Beanstalk.

O AWS Elastic Beanstalk automatiza os detalhes do provisionamento de capacidade, do balanceamento de carga, do Auto Scaling e da implantação de aplicativos, criando um ambiente que executa uma versão do seu aplicativo. É possível simplesmente carregar o código implantável (ex., o arquivo WAR) e o AWS Elastic Beanstalk faz o resto. O AWS Toolkit for Visual Studio e o AWS Toolkit for Eclipse permitem que você implante seu aplicativo no AWS Elastic Beanstalk e a gerencie sem deixar seu IDE. Quando o aplicativo for executado, o Elastic Beanstalk automatizará tarefas de gerenciamento, como monitoramento, implantação de versões do aplicativo, verificação de integridade básica, além de facilitar o acesso a arquivos de log. Ao usar o Elastic Beanstalk, os desenvolvedores podem concentrar-se no desenvolvimento de sua aplicação e ficam livres das tarefas voltadas para a implantação, como servidores de provisionamento, configuração do balanceamento de cargas ou gerenciamento de escalabilidade.

A maioria dos contêineres de aplicativos existentes ou soluções de plataforma como um serviço, embora reduza a quantidade de programação exigida, diminui significativamente a flexibilidade e o controle dos desenvolvedores. Os desenvolvedores são forçados a conviver com todas as decisões pré-determinadas pelo fornecedor, com pouca ou nenhuma oportunidade de retomar o controle sobre várias partes da infraestrutura do aplicativo. No entanto, com o AWS Elastic Beanstalk, os desenvolvedores retêm o controle total sobre os recursos da AWS nos quais seu aplicativo se baseia. Se os desenvolvedores decidirem que desejam gerenciar alguns (ou todos) os elementos de sua infraestrutura, eles podem fazê-lo perfeitamente usando os recursos de gerenciamento do Elastic Beanstalk.

Com o AWS Elastic Beanstalk, você pode:

Selecionar o sistema operacional que é compatível com as exigências de seu aplicativo (ex.: Amazon Linux ou Windows Server 2016)

Optar entre várias instâncias do Amazon EC2, incluindo sob demanda, instâncias reservadas e instâncias spot 

Optar entre várias opções disponíveis de banco de dados e de armazenamento

Habilitar o acesso de login às instâncias do Amazon EC2 para solução de problemas imediata e direta

Aprimorar rapidamente a confiabilidade do aplicativo ao executar em mais de uma Zona de disponibilidade

Aperfeiçoar a segurança do aplicativo ao habilitar o protocolo HTTPS no balanceador de cargas

Acesse as notificações de monitoramento e de obtenção embutidas do Amazon CloudWatch quanto à saúde do aplicativo e outros eventos importantes

Ajustar definições do servidor da aplicação (ex.: definições de JVM) e variáveis de ambiente de passagem

Executar outros componentes de aplicativos, como serviço de armazenamento em cache da memória, lado a lado no Amazon EC2.

Acessar arquivos de log sem efetuar login nos servidores de aplicativos

O AWS Elastic Beanstalk usa recursos e serviços comprovados da AWS, como o Amazon EC2, Amazon RDS, Elastic Load Balancing, Auto Scaling, Amazon S3 e Amazon SNS, para criar um ambiente que execute sua aplicação. A versão atual do AWS Elastic Beanstalk usa o Amazon Linux AMI ou o Windows Server 2019.

O AWS Elastic Beanstalk é compatível com Java, .NET, PHP, Node.js, Python, Ruby, Go, Docker e é perfeito para aplicativos Web. No entanto, devido à arquitetura aberta do Elastic Beanstalk, os aplicativos que não são da Web também podem ser implementados usando o Elastic Beanstalk. Esperamos oferecer suporte adicional a outros tipos de aplicativo e linguagens de programação no futuro. Consulte Plataformas compatíveis para saber mais.

O AWS Elastic Beanstalk executa a AMI do Amazon Linux e a AMI do Windows Server. As duas AMIs são compatíveis e mantidas pela Amazon Web Services e foram criadas para oferecer um ambiente de execução estável, seguro e de alto desempenho para a computação em nuvem do Amazon EC2.

Conceitos básicos

Para cadastrar-se no AWS Elastic Beanstalk, clique no botão Sign Up Now (Cadastrar-se agora) na página de detalhes do Elastic Beanstalk. É necessário ter uma conta do Amazon Web Services para acessar esse serviço. Se você ainda não tiver uma conta, será solicitada a criação de uma ao iniciar o processo do Elastic Beanstalk. Após a conclusão do cadastro, consulte o Guia de conceitos básicos do AWS Elastic Beanstalk.

O registro do AWS Elastic Beanstalk requer que você tenha um número de telefone válido e um endereço de e-mail arquivados junto à caso precisemos entrar em contato com você. Verificar o número de telefone leva apenas alguns minutos e envolve o recebimento de um telefonema automatizado durante o processo de registro e a inserção de um número PIN usando o teclado do telefone.

A melhor forma de começar a usar o AWS Elastic Beanstalk é através do guia de conceitos básicos do uso do Elastic Beanstalk, que faz parte da nossa documentação técnica. Em alguns minutos, você poderá implantar e usar um aplicativo de exemplo ou fazer upload do seu próprio aplicativo.

Sim. O AWS Elastic Beanstalk inclui um aplicativo de exemplo que pode ser usado para testar a oferta e explorar sua funcionalidade.

Bancos de dados e armazenamento

Sim. O AWS Elastic Beanstalk armazena os arquivos do seu aplicativo e, como opção, os arquivos de log do servidor no Amazon S3. Se você estiver usando o Console de Gerenciamento da AWS, AWS Toolkit for Visual Studio ou AWS Toolkit for Eclipse, um bucket do Amazon S3 será criado em sua conta e os arquivos carregados serão copiados automaticamente do cliente local para o Amazon S3. Ou você poderá configurar o Elastic Beanstalk para copiar os arquivos do log do servidor a cada hora no Amazon S3. Isso é feito ao editar as definições de configuração do ambiente.

Sim. Você pode usar o Amazon S3 para armazenamento do aplicativo. A forma mais fácil de fazer isso é incluindo o SDK da AWS como parte do arquivo implementável do seu aplicativo. Por exemplo, você pode incluir o AWS SKD para Java como parte do arquivo WAR do aplicativo.

O AWS Elastic Beanstalk não vai restringi-lo a qualquer tecnologia específica de persistência de dados. Você pode optar por usar o Amazon Relational Database Service (Amazon RDS) ou o Amazon DynamoDB, ou usar o Microsoft SQL Server, o Oracle ou outros bancos de dados relacionais executados no Amazon EC2.

O Elastic Beanstalk pode provisionar automaticamente uma instância de banco de dados do Amazon RDS. As informações sobre conectividade para a instância de banco de dados são expostas ao seu aplicativo por variáveis do ambiente. Para saber mais sobre como configurar instâncias de banco de dados do RDS para o seu ambiente, leia o Guia do desenvolvedor do Elastic Beanstalk.

Não com o AWS Elastic Beanstalk. Com o Elastic Beanstalk, você pode especificar as informações de conexão na configuração do ambiente. Ao extrair a cadeia de conexão do código do aplicativo, você poderá facilmente configurar diferentes ambientes do Elastic Beanstalk para usar diferentes bancos de dados.

Segurança

Por padrão, o aplicativo é disponibilizado publicamente em myapp.elasticbeanstalk.com para qualquer um acessar. É possível usar a Amazon VPC para provisionar uma seção privada e isolada de seu aplicativo em uma rede virtual definida por você. Essa rede virtual pode se tornar privada usando regras de grupo de segurança específicas, ACLs de rede e tabelas de roteamento personalizadas. Você pode controlar facilmente qual outro tráfego de entrada, como o SSH, é entregue ou não aos servidores da aplicação ao alterar as definições de security group do EC2.

Sim, você pode executar seus aplicativos em uma VPC. Para mais detalhes, leia o Guia do desenvolvedor do AWS Elastic Beanstalk.

Para mais informações sobre segurança na AWS, consulte nosso documento Amazon Web Services: Overview of Security Processes e visite nosso Centro de segurança.

Sim. Sim, usuários IAM com as permissões apropriadas podem agora interagir com o serviço do AWS Elastic Beanstalk.

O IAM permite gerenciar usuários e grupos de forma centralizada. Você pode controlar quais usuários do IAM têm acesso ao AWS Elastic Beanstalk e limitar as permissões de acesso somente para leitura ao Elastic Beanstalk para os operadores que não podem executar ações em recursos do Elastic Beanstalk. Todas as atividades de usuário dentro de sua conta serão agregadas em uma única conta para cobrança da AWS.

Você pode usar o console do IAM, a interface da linha de comando do IAM ou a API do IAM para provisionar os usuários do IAM. Como padrão, os usuários do IAM não têm acesso aos Serviços da AWS até que as permissões sejam concedidas.

Você pode conceder acesso a serviços aos usuários do IAM usando políticas. Para simplificar o processo de concessão de acesso ao AWS Elastic Beanstalk, você pode usar um dos modelos de política no console IAM para ajudá-lo a começar. O Elastic Beanstalk oferece dois modelos: um modelo de acesso somente leitura e um modelo de acesso total. O modelo somente leitura concede acesso de leitura a recursos do Elastic Beanstalk. O modelo de acesso total concede acesso completo a todas as operações do Elastic Beanstalk, bem como permissões para gerenciar os recursos dependentes, como Elastic Load Balancing, Auto Scaling e Amazon S3. Também é possível usar o AWS Policy Generator para criar políticas. Para mais detalhes, leia o Guia do desenvolvedor do AWS Elastic Beanstalk.

Sim. Você pode permitir ou negar permissões para recursos específicos do AWS Elastic Beanstalk, como aplicativos, versões do aplicativo e ambientes.

Todos os recursos criados por usuários do IAM sob uma conta root são cobrados do dono da conta root e detidos por ele.

A conta raiz tem acesso total a todos os ambientes do AWS Elastic Beanstalk executados por qualquer usuário do IAM nessa conta. Se você usar o modelo do Elastic Beanstalk para conceder acesso de somente leitura a um usuário do IAM, esse usuário poderá ver todos os aplicativos, versões do aplicativo, ambientes e qualquer recurso associado a essa conta. Se você usar o modelo do Elastic Beanstalk para conceder acesso total a um usuário do IAM, esse usuário poderá criar, modificar e interromper qualquer recurso do Elastic Beanstalk nessa conta.

Sim. Um usuário IAM pode acessar o console do AWS Elastic Beanstalk usando seu nome de usuário e senha.

Sim. Um usuário do IAM pode usar sua chave de acesso e chave secreta para executar operações usando a API do Elastic Beanstalk.

Sim. Um usuário do IAM pode usar sua chave de acesso e sua chave secreta para executar operações usando a interface da linha de comando do AWS Elastic Beanstalk.

Atualizações de plataformas gerenciadas

Você pode fazer o opt-in para manter seus ambientes do AWS Elastic Beanstalk atualizados automaticamente para a versão mais recente da plataforma subjacente executando seu aplicativo durante um período de manutenção especificado. O Elastic Beanstalk lança com frequência novas versões de plataformas compatíveis (Java, PHP, Ruby, Node.js, Python, .NET, Go e Docker) com atualizações de sistema operacional, servidor da web e da aplicação, além de linguagem e de plataforma.

Para permitir que o Elastic Beanstalk gerencie automaticamente suas atualizações de plataforma, você deve habilitar as atualizações de plataforma gerenciadas na guia Configuration do console do Elastic Beanstalk ou usar a CLI ou a API do EB. Após a habilitação do recurso, você poderá configurar que tipos de atualizações deseja permitir e quando elas devem ocorrer.

O AWS Elastic Beanstalk pode executar automaticamente atualizações de plataforma para novas versões de patches e plataformas secundárias. O Elastic Beanstalk não executará atualizações das versões de plataformas principais automaticamente (ex., de Java 7 Tomcat 7 para Java 8 Tomcat 8), pois elas incluem mudanças retroativas incompatíveis e exigem testes adicionais. Nesses casos, é necessário iniciar manualmente a atualização.

As plataformas do AWS Elastic Beanstalk criam suas versões usando o padrão a seguir: MAJOR.MINOR.PATCH (ex., 2.0.0). Cada parte é incrementada de acordo com o seguinte:

Versão principal (MAJOR) quando há mudanças incompatíveis.

Versão secundária (MINOR) quando há funcionalidade adicional incluída de modo compatível e retroativo.

Versão de patch (PATCH) quando há correções de falhas compatíveis e retroativas.

Você pode executar atualizações de versões principais a qualquer momento usando o Console de Gerenciamento, a API ou a CLI do AWS Elastic Beanstalk. Você tem as seguintes opções para executar uma atualização de versão principal:

Aplique a atualização local em um ambiente atual. Visite Como atualizar a versão de plataforma de seu ambiente Elastic Beanstalk.

Crie um clone de um ambiente atual com a nova versão da plataforma. Visite Clonar um ambiente para saber mais.

As atualizações são aplicadas usando um mecanismo de implantação imutável que garante que nenhuma mudança será feita no ambiente atual até que uma frota paralela de instâncias do Amazon EC2, com as atualizações instaladas, esteja pronta para ser substituída pelas instâncias atuais, que são, então, encerradas. Além disso, se o sistema de saúde do Elastic Beanstalk detectar qualquer problema durante a atualização, o tráfego será redirecionado à frota atual das instâncias, garantindo impacto mínimo aos usuários finais da sua aplicação.

Como as atualizações de plataforma gerenciadas usam um mecanismo de implantação imutável para executar as atualizações, sua aplicação estará disponível durante o período de manutenção e os clientes da sua aplicação não sofrerão nenhum impacto com a atualização.

Não há cobrança adicional para o recurso de atualizações de plataforma gerenciadas. Basta pagar pelas instâncias adicionais do EC2 necessárias para executar a atualização.

O período de manutenção é um intervalo semanal com duração de duas horas em que o AWS Elastic Beanstalk iniciará atualizações de plataforma, se as atualizações de plataforma gerenciadas estiverem habilitadas e uma nova versão da plataforma estiver disponível. Por exemplo, se você selecionar um período de manutenção que comece todo domingo às 2h, o AWS Elastic Beanstalk iniciará a atualização da plataforma entre 2h e 4h, todos os domingos. É importante observar que, dependendo da configuração das suas aplicações, as atualizações poderão ser concluídas fora do período de manutenção.

O período de manutenção é definido de acordo com o ambiente, disponibilizando a você a opção de definir períodos de manutenção diferentes para seus vários componentes do aplicativo ou aplicativos. Isso permite que atualizações de ambiente sejam alternadas, caso não deseje que várias partes do seu aplicativo sejam atualizadas ao mesmo tempo. Se você ativar atualizações de plataforma gerenciadas, mas não especificar um período de manutenção, um período padrão de duas horas semanais será atribuído ao seu ambiente. Caso deseje alterar quando a manutenção será realizada para você, altere a configuração de atualização gerenciada no Console de Gerenciamento da AWS ou use a API UpdateEnvironment.

Você será notificado sobre a disponibilidade de novas versões de plataforma por meio do Console de Gerenciamento da AWS, de anúncios nos nossos fóruns e das notas de versão.

Você pode encontrar detalhes sobre mudanças entre versões de plataforma na página Notas de release do AWS Elastic Beanstalk.

A única ação disponível para você enquanto uma atualização de plataforma gerenciada estiver em andamento é "abortar". Essa ação permitirá que você interrompa a atualização imediatamente e reverta para a versão anterior.

Seu ambiente sempre será atualizado para a versão mais recente disponível com base no nível (secundária mais patch ou somente patch) que você selecionou.

Os detalhes de cada atualização de plataforma gerenciada estão disponíveis na página de eventos e marcadas como um evento do tipo "MAINTENANCE".

O número de lançamentos de versões em um determinado ano varia em função da frequência e do conteúdo de versões e patches do fornecedor ou da equipe principal de linguagem/estrutura, bem como do resultado de uma verificação detalhada dessas versões e desses patches realizada pela nossa equipe de engenharia de plataforma.

Compatibilidade com o AWS Graviton

Para implantar sua aplicação com processadores baseados em arm64 no console do Elastic Beanstalk, selecione a arquitetura do processador e o tipo de instância na guia de capacidade em Configure more options settings (Configurar mais definições de opções).

Para implantar a sua aplicação usando a CLI do Elastic Beanstalk, a AWS CLI, o CFN ou o AWS CDK, consulte o Guia do desenvolvedor do Elastic Beanstalk.

Se sua workload estiver em uma linguagem de programação interpretada, como Node.js, Python, Tomcat, PHP ou Ruby, não é necessário recompilar sua workload para usar o Graviton. Se você estiver usando Go ou .Net Core para sua workload, será necessário atualizar o comando build para o tipo de instância arm64. Também é necessário recompilar dependências binárias ou usar uma versão compatível com arm64 de dependências binárias. Caso esteja usando o Docker, sua imagem do Docker deve ser multiarquitetura e oferecer suporte para implantação em x86 e arm64.

O Elastic Beanstalk oferece suporte ao Graviton no Amazon Linux 2 de 64 bits para diversas plataformas e ramificações. Para obter uma lista completa, consulte a documentação.

É fácil fazer a transição de sua workload para o Graviton e aproveitar as vantagens da performance e dos benefícios de custo nos seguintes casos de uso: workloads baseadas em Linux desenvolvidas principalmente em tecnologias de código aberto; aplicações em contêineres e baseadas em microsserviços, como Docker e MC Docker; aplicações redigidas em linguagens de programação portáteis, como Java, Python, .NET Core, node.js e PHP; aplicações compiladas pelo C/C++, Rust ou Go; workloads .NET Core (v3.1 +) em execução no Linux; workloads de várias threads; workloads sensíveis a acesso não uniforme à memória (NUMA); e desenvolvimento e teste de software nativo em arm64.

Faturamento

Não há encargos adicionais para o AWS Elastic Beanstalk, você paga apenas pelos recursos da AWS que realmente usou para armazenar e executar o aplicativo.

Você paga apenas por aquilo que usar e não há taxa mínima pelo uso de nenhum recurso da AWS. Para obter informações sobre a definição de preço do Amazon EC2, acesse a seção de definição de preço na página de detalhes do EC2. Para obter informações sobre a definição de preço do Amazon S3, acesse a seção de definição de preço na página de detalhes do S3. Você pode usar a calculadora simples da AWS para estimar sua fatura para diferentes tamanhos de aplicativo.

Você pode visualizar suas despesas para o período de cobrança a qualquer momento no site da Amazon Web Services. Para isso, faça login em sua conta da Amazon Web Services e clique em Account Activity na opção Your Web Services Account.

Suporte

Sim. O AWS Support abrange problemas relacionados ao uso do AWS Elastic Beanstalk. Para maiores detalhes e informações sobre preço, veja a página do AWS Support.

Você pode usufruir do amplo conhecimento da comunidade AWS para obter ajuda sobre desenvolvimento por meio do fórum de discussão do AWS Elastic Beanstalk.