fbpx

Entendendo o AWS Elastic Beanstalk

ASW-Elastic-beanstalk
Compartilhar no facebook
Compartilhar no linkedin
Compartilhar no twitter
Compartilhar no whatsapp

O AWS Elastic Beanstalk é a maneira mais rápida e simples de colocar um aplicativo em funcionamento na AWS. Os desenvolvedores podem simplesmente fazer upload do código do aplicativo e o serviço lida automaticamente com todos os detalhes, como provisionamento de recursos, balanceamento de carga, dimensionamento automático e monitoramento.

A AWS compreende dezenas de serviços de blocos de construção, cada um dos quais expõe uma área de funcionalidade. Embora a variedade de serviços ofereça flexibilidade sobre como as organizações desejam gerenciar sua infraestrutura da AWS, pode ser um desafio descobrir quais serviços usar e como provisioná-los.

Com o AWS Elastic Beanstalk, você pode implantar e gerenciar rapidamente aplicativos na nuvem da AWS sem se preocupar com a infraestrutura que executa esses aplicativos.

O AWS Elastic Beanstalk reduz a complexidade do gerenciamento sem restringir a escolha ou o controle.

Existem componentes-chave que compõem o AWS Elastic Beanstalk e trabalham juntos para fornecer os serviços necessários para implantar e gerenciar aplicativos facilmente na nuvem.

Um aplicativo AWS Elastic Beanstalk é a coleção lógica desses componentes do AWS Elastic Beanstalk, que inclui ambientes, versões e configurações de ambiente.

No AWS Elastic Beanstalk, um aplicativo é conceitualmente semelhante a uma pasta. Uma versão do aplicativo refere-se a uma iteração específica e rotulada de código implementável para um aplicativo da web.

Uma versão do aplicativo aponta para um objeto Amazon S3 que contém o código implantável. Os aplicativos podem ter muitas versões e cada versão do aplicativo é única.

Em um ambiente de execução, as organizações podem implantar qualquer versão do aplicativo que já tenha carregado no aplicativo ou podem fazer upload e implantar imediatamente uma nova versão do aplicativo.

As organizações podem fazer upload de várias versões de aplicativos para testar as diferenças entre uma versão do aplicativo da Web e outra.

Um ambiente é uma versão de aplicativo implantada nos recursos da AWS. Cada ambiente executa apenas uma única versão do aplicativo por vez; no entanto, a mesma versão ou versões diferentes podem ser executadas em tantos ambientes ao mesmo tempo, conforme necessário.

Quando um ambiente é criado, o AWS Elastic Beanstalk fornece os recursos necessários para executar a versão do aplicativo especificada.

Uma configuração de ambiente identifica uma coleção de parâmetros e configurações que definem como um ambiente e seus recursos associados se comportam.

Quando as definições de configuração de um ambiente são atualizadas, o AWS Elastic Beanstalk aplica automaticamente as alterações de recursos existentes ou exclui e implanta novos recursos, dependendo do tipo de alteração.

Quando um ambiente do AWS Elastic Beanstalk é iniciado, a camada, a plataforma e o tipo de ambiente são especificados. A camada de ambiente escolhida determina se o AWS Elastic Beanstalk fornece recursos para dar suporte a um aplicativo Web que lida com solicitações HTTP (S) ou um aplicativo que lida com tarefas de processamento em segundo plano.

Uma camada de ambiente cujo aplicativo da Web processa solicitações da Web é conhecida como camada do servidor da Web. Uma camada de ambiente cujo aplicativo executa tarefas em segundo plano é conhecida como camada de trabalho.

No momento da redação deste artigo, o AWS Elastic Beanstalk fornece suporte de plataforma para as linguagens de programação Java, Node.js, PHP, Python, Ruby e Go, com suporte para os contêineres da Web Tomcat, Passenger, Puma e Docker.

 

Casos de Uso

Uma empresa fornece um site para potenciais compradores de imóveis residenciais, vendedores e locatários a procurarem listagens de residências e apartamentos em mais de 110 milhões de residências. O site processa mais de três milhões de novas imagens diariamente. Ele recebe mais de 17.000 solicitações de imagem por segundo em seu site durante o pico de tráfego de clientes para computadores e dispositivos móveis.

A empresa estava procurando maneiras de ser mais ágil com as implantações e capacitou seus desenvolvedores a se concentrarem mais na escrita de código, em vez de gastar tempo gerenciando e configurando servidores, bancos de dados, balanceadores de carga, firewalls e redes. Começou a usar o AWS Elastic Beanstalk como o serviço para implantar e dimensionar aplicativos e serviços da Web.

Os desenvolvedores tiveram o poder de fazer upload de código no AWS Elastic Beanstalk, que então lidava automaticamente com a implantação, desde o provisionamento de capacidade, o balanceamento de carga e o Auto Scaling, até o monitoramento da integridade do aplicativo.

Como a empresa ingere dados de maneira aleatória, executando feeds que despejam uma tonelada de trabalho no sistema de processamento de imagens de uma só vez, precisa aumentar sua frota de conversores de imagens para atender ao pico de demanda.

A empresa determinou que uma frota de trabalhadores do AWS Elastic Beanstalk para executar uma Python Imaging Library com código personalizado era a maneira mais simples de atender aos requisitos. Isso eliminou a necessidade de ter várias instâncias estáticas ou, pior ainda, tentar escrever sua própria configuração de Auto Scaling.

Ao mudar para o AWS Elastic Beanstalk, a empresa conseguiu reduzir os custos operacionais e aumentar a agilidade e a escalabilidade do seu sistema de processamento e entrega de imagens.

 

Características principais

O AWS Elastic Beanstalk fornece vários recursos de gerenciamento que facilitam a implantação e o gerenciamento de aplicativos na AWS.

As organizações têm acesso a métricas de monitoramento integradas do Amazon CloudWatch, como utilização média da CPU, contagem de solicitações e média latência. Eles podem receber notificações por email através do Amazon SNS quando alterações de integridade ou servidores de aplicativos são adicionados ou removidos. Os logs do servidor para os servidores de aplicativos podem ser acessados ​​sem a necessidade de efetuar login.

As organizações podem até optar por aplicar as atualizações automaticamente à plataforma subjacente que executa o aplicativo, como AMI, sistema operacional, idioma e estrutura e servidor de aplicativos ou proxy.

Além disso, os desenvolvedores mantêm controle total sobre os recursos da AWS que alimentam seus aplicativos e podem executar uma variedade de funções simplesmente ajustando as definições de configuração. Isso inclui configurações como:

  • Selecionando o tipo de instância Amazon EC2 mais apropriado que corresponda aos requisitos de CPU e memória de seus aplicativos
  • Escolhendo as opções corretas de banco de dados e armazenamento, como Amazon RDS, Amazon DynamoDB, Microsoft SQL Server e Oracle
  • Habilitando o acesso de login às instâncias do Amazon EC2 para solução de problemas imediatos e diretos
  • Aprimorando a segurança do aplicativo ativando o protocolo HTTPS no balanceador de carga
  • Ajustando as configurações do servidor de aplicativos (por exemplo, configurações da JVM) e transmitindo variáveis ​​de ambiente
  • Ajuste as configurações do Auto Scaling para controlar as métricas e os limites usados ​​para determinar quando adicionar ou remover instâncias de um ambiente
  • Com o AWS Elastic Beanstalk, as organizações podem implantar um aplicativo rapidamente, mantendo o controle que desejam sobre a infraestrutura subjacente.
Comentários do Facebook

Conteúdos relacionados