Skip to content

jonatas-lima/aws-autoscaling

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AWS Horizontal Autoscaling

Projeto realizado para a disciplina de Arquitetura de Software @ UFCG. Nesse repositório está o código Terraform de uma infraestrutura que escala horizontalmente na AWS, as instruções de como executar, e uma visão de parte da arquitetura utilizada.

Antes de começar

  1. Necessário ter uma conta válida na AWS, com chaves de acesso.
  2. Instalar a CLI do Terraform:
wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg

echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list

sudo apt update && sudo apt install -y terraform
  1. Ter o make instalado:
sudo apt install -y make
  1. Inicializar os módulos:
make init

Visão Arquitetural

Visão Arquitetural

Executando

  • Copie e configure suas credenciais de acesso à AWS:
cp .profile.sample .profile

Aplicação

  • Uma aplicação CPU-Bound será provisionada na infraestrutura, em que a AWS tentará manter o uso médio da CPU das instâncias do Autoscaling Group em 35%, o autoscaler irá aumentar ou diminuir, dinamicamente, o número de instâncias.
make apply

Estressando a infraestrutura

Caso não tenha o endereço do Load Balancer em mãos, executar terraform output

Para estressar a infra da aplicação, pegue o endereço do Load Balancer que foi mostrado no make apply e faça:

./stress.sh <load balancer address> <goroutines number>

O segundo paramêtro vai indicar quantas goroutines serão criadas, sendo o estresse de CPU diretamente proporcional a esse número.

  • Exemplo:
./stress.sh alb-1484426253.us-east-1.elb.amazonaws.com 10000

IMPORTANTE

Não apague os arquivos *.tfstate

Esses arquivos são responsáveis por manter o estado da infraestrutura. Se eles forem apagados, o terraform não vai conseguir aplicar de forma correta as mudanças, tendo que apagar "na mão" tudo que foi criado previamente.

Destrua a infraestrutura

Ao final dos experimentos executar:

make destroy

O comando vai destruir tudo que foi feito, evitando que a AWS cobre algum valor se você esquecer rodando.

Cobranças adicionais

Se a infra ficar rodando por muito tempo, vai ser cobrado um valor. A AWS cobra por uso do recurso, então como estamos usando uma t2.micro, o valor vai ser simbólico (acredito que no máximo uns R$5,00 ~ R$10,00).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •