DEV Community 👩‍💻👨‍💻

Hernani Almeida
Hernani Almeida

Posted on • Updated on

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

Nesta parte iremos apenar executar um teste de stress em nossa aplicação para verificarmos o funcionamento do auto scaling group conforme a demanda de nossa aplicação.
Na aba de pesquisa dentro do console AWS pesquise por EC2 e entre no recurso Ec2 que ira aparecer como opção
ec2
Na tela que ira aparecer dentro da aba Instances clique na opção instances
instances

e abrira uma tela com as instancias Ec2 criadas dentro de sua conta AWS, clique no id de uma das instancias que criamos para armazenar nossa aplicação
instances

Na tela a seguir no canto superior procure pelo botão Connect
e clique nele, na próxima tela mantenha a opção EC2 Instance Connect selecionada e clique no botão Connect
na parte inferior da tela

Image description

Pronto, seguindo estes passamos estamos acessando o cluster de nossa aplicação e seu Terminal, e podemos inserir comandos normalmente em nossa instancia.

terminal

Para realizarmos o testes siga os passos a seguir:

1) Instalar o utilitário stress e fazer teste de carga
Primeiro rode o comando

sudo amazon-linux-extras install epel -y

dentro do terminal de sua instancia
Depois rode o comando

sudo yum install stress -y

Estes comandos instala o stress em nossa maquina

2) Criar carga de trabalho dentro de nossa maquina utilizando o stress
Rode o comando

stress -c 4

e isso ira inserir demandas em nossa aplicação, para podermos realizar o teste de stress espere por alguns minutos para gerar uma demanda significativa

Agora vamos acompanhar o que esta acontecendo em nosso ambiente AWS conforme a demanda de nossa aplicação

Como fizemos anteriormente na aba de pesquisa procure pelo recurso Cloudwatch da AWS e clique nele, no menu esquerdo ira aparecer uma aba com um Alarm especificado clique no triangulo

Image description

Ao clicar no icone do triangulo ira aparecer um alarme apontado para nosso auto scaling group nos informando que a Utilização da carga da Cpu da instancia esta acima de 50 porcento

Image description

Na parte superio do console pesquise pelo recurso auto scaling group e clique nele

Image description

Conforme podemos ver não possuíamos mais 2 instancias apenas rodando e sim 3, e a capacidade desejada para suportar a demanda de nossa aplicação também subiu para 3

Image description

Isso ocorreu pois ao gerarmos demandas através do nosso teste de stress o cloudwatch monitora as métricas de nossa aplicação e ao verificar que a aplicação esta utilizando mais que 50 porcento da carga da total da CPU ele aciona um alarme e o auto scaling group automaticamente cria uma nova instancia EC2 e sobe dentro do nosso ambiente para manter a disponibilidade de nossa aplicação

Agora mate o teste de stress e veremos que apos algum tempo sera acionado um alarme no cloudwatch que a utilização da Cpu esta abaixo dos 40 porcento

Image description

Ao verificarmos no auto scaling group vemos que agora temos 2 instancias rodando e a capacidade desejada para nossa aplicação também e 2 instancias
Image description

Ao verificar que a demanda e menor que 40 porcento aciona um alarme e o auto scaling group automaticamente mata uma instancia dentro de nosso ambiente

Image description

E isso ai galera finalizamos aqui nosso post, podemos observar o grande poder de escalabilidade e disponibilidade de nossa aplicação a cloud AWS nos proporciona através do recurso Elastic Beanstalk, agradeço a todos que lerem este post e ate o próximo

Deixo aqui meus contatos:
linkedin
github

Top comments (0)

Timeless DEV post...

Git Concepts I Wish I Knew Years Ago

The most used technology by developers is not Javascript.

It's not Python or HTML.

It hardly even gets mentioned in interviews or listed as a pre-requisite for jobs.

I'm talking about Git and version control of course.