Criando uma arquitetura escalável na AWS utilizando Cloudfront, CloudWatch, Elastic Beanstalk, Dynamodb - parte 4
Tags: aws, cloud, architecture, performance
Published: 2021-12-24 02:42:48

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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n6qoai49injmu6orldlv.png)
Na tela que ira aparecer dentro da aba **Instances** clique na opção `instances` 
![instances](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xh9li0pchmpxo5do2qd2.png)

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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bmqazmoo9zml9qkt735q.png)

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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aldpdkzq865i1t6k55at.png)
 
Pronto, seguindo estes passamos estamos acessando o cluster de nossa aplicação e seu Terminal, e podemos inserir comandos normalmente em nossa instancia.

![terminal](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8d45ls0diutyb9sepo0e.png)
 
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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z5n3rka5skzo6lytu0gn.png)

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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2ldiop770ro00fo31u58.png)

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

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bv71zy2a2ooe4wqc2cjk.png)

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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k3smt37gmot3nvwk9ovl.png)
  
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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gbowcnqyf9lrg964l7g8.png)

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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/er99npm6vuvq1dicirnt.png)
 
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](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/21ecd30ybe5kwr6wig47.png)

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](https://www.linkedin.com/in/nanialmeida/)
[github](https://github.com/2020nani)