DEV Community

Hernani Almeida
Hernani Almeida

Posted on • Edited on

Criando uma arquitetura escalável na AWS utilizando Cloudfront, CloudWatch, Elastic Beanstalk, Dynamodb - parte 2

Ferramentas necessárias:

A Amazon Web Services (AWS) é a plataforma de nuvem escalável mais abrangente e amplamente adotada do mundo. A AWS oferece mais de 200 serviços totalmente caracterizados de data centers globalmente e muitas empresas tem migrado seus sistemas On Premise para a cloud da AWS e nesse post vamos abordar a criação de uma arquitetura escalável auto gerenciada pela AWS através do recurso ElasticBeanstalk para uma aplicação que tenha picos de acessos e continue mantendo sua performance.
Este post esta dividido em 4 partes para facilitar o conteúdo e abordagem dos recursos utilizados na AWS.
Antes de iniciarmos irei fazer uma breve descrição sobre os recursos que utilizaremos dentro da cloud AWS nesta segunda parte do post.

  • Elastic Bean Stalk: E um serviço de fácil implantação e escalabilidade da aplicação, ele se encarrega automaticamente da implementação, desde o provisionamento de capacidade, o balanceamento de carga, a escalabilidade automática ate o monitoramento da saúde da aplicação.

Vamos criar uma nova aplicação utilizando o recurso do Elastic Beanstalk, para isso dentro do dashboard inicial da conta AWS pesquise pelo recurso Elastic Beanstalk e clique nele

Image description

Clique agora em Create Aplication na tela que abriu e abrira uma nova tela onde passaremos informações de nossa aplicação. Preencha os campos conforme as imagens abaixo
Image description

No campo Platform preencha qual o tipo de linguagem sua aplicação foi codificada, a versão que será utilizada em Platform Branch e sempre escolha a versão recomendada em Platform Version
platform

Na próxima aba Application Code vamos escolher a opção de fazer upload de nossa aplicação Upload your code, para este artigo irei utilizar uma aplicação que salva dentro de um S3 da AWS, caso queira seguir o mesmo passo utilize o link https://bootcamp-aws.s3.amazonaws.com/tcb-conf-app.zip, agora vamos adicionar mais configurações para nossa aplicação clicando no botao configure more option

upload code

Em Presets selecionamos a opção High Availability que ira tornar nossa aplicação com alta disponibilidade
presets
Na aba Software clique em edit e em Environment Properties define as variáveis ambientes necessárias para a aplicação rodar e clique em save
V.A

Na aba Instances clique em edit e configure o Root Volume Type (podemos fazer analogia ao HD da instancia) da instancia onde a aplicação será armazenada, mantenha as outas configurações e clique em save
Image description

No campo Capacity clique em edit e vamos configurar a quantidade de instancias que nossa aplicação necessita, na opção Auto Scaling Group, para esta aplicação vamos definir no mínimo 2 instancias (ou seja a aplicação ja ira subir com 2 instancias criadas para suportar a carga da aplicação) e no máximo 4 instancias (será adicionada mais instancias conforme a aplicação necessite para se manter disponível)
Auto scaling
Na opção Instance Types selecione qual tipo de instancia sua aplicação utilizara.
instance type
Na aba Scaling triggers vamos configurar a métrica que será utilizado pelo Auto Scaling para subir mais uma instancia ou remover uma instancia conforme o uso da aplicação.
Nesta aplicação vamos utilizar a porcentagem de uso da Cpu das instancias utilizadas pela aplicação, passando de 60% o auto scaling subira automaticamente uma nova instancia para atender a demanda da aplicação e se a porcentagem for menor de 40% ele removera automaticamente uma instancia. Feito isso clique em save
Scaling triggers
Na aba Security define a seguinte configuração e clique em save
security

Na aba Network clique em edit e na opção Virtual private cloud selecione a VPC que criamos na parte 1 deste post e configure as próximas opções conforme as imagens abaixo e clique em save.
vpc
lb
Obs: Na imagem abaixo a opção Public IP address esta selecionada, em ambiente de produção esta nao e uma boa pratica mas para facilitar os testes que serão realizados neste artigo a opção esta selecionada
Image description

Feito isso clique em create app e nossa aplicação será criada.

Se tudo ocorreu bem você aparecera na tela a aplicação rodando (health ok) e você poderá testar clicando no link indicado na imagem abaixo
health aplication

Podemos ver nossa aplicação no ar \o/\o/\o/

aplicação

Link parte 3

Deixo aqui meus contatos:
linkedin
github

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more