AWS series IV: Auto Scaling
Serie de artigos sobre Amazon Web Services.
Lab 9 - AWS Autoscaling
Usaremos a imagem oficial Amazon Linux
para aprender alguns conceitos importantes de autoscaling:
- launch configuration templates
- autoscaling groups
- scaling policies
Criando o launch template
-
Acessar o serviço EC2:
-
Criar um novo launch template:
-
Escolher a imagem do
Amazon Linux 2 AMI
: -
Escolher o flavor
t2.micro
: -
Assignar um nome para o launch template:
-
Revisar e confirmar a criação do lauch template:
-
Escolher uma chave previamente criada ou criar uma chave nova para acessar às instâncias do autoscaling group:
-
Aguardar a criação do launch template:
Criando o autoscaling group
-
Criar um novo autoscaling group:
-
Seleccionar o launch template criado anteriormente:
-
Assignar um nome e uma subrede para o autoscaling group:
- Definir a política de autoscaling:
- Uso de CPU como métrica
- Scale out a partir de 40% de uso de CPU
- Scale in a partir de 40% de uso de CPU
- Número mínimo de instâncias: 1
- Número máximo de instâncias: 2
- 300 segundos de warm up
-
Revisar e confirmar a criação do autoscaling group:
-
Aguardar a criação do autoscaling group:
-
Conferir a criação do autoscaling group, a princípio só com uma instância:
-
Conferir as instâncias que fazem parto do autoscaling group:
- Conferir a(s) instância(s) no EC2:
Testando o autoscaling group
- Accessar via SSH à instância:
% ssh -i "fiap.pem" ec2-user@ec2-34-230-22-18.compute-1.amazonaws.com __| __|_ ) _| ( / Amazon Linux 2 AMI ___|\___|___| https://aws.amazon.com/amazon-linux-2/ [ec2-user@ip-172-31-44-183 ~]$
- Confirmar a baixa carga de CPU usando os comandos
uptime
etop
:$ uptime 10:01:32 up 7 min, 1 user, load average: 0.00, 0.02, 0.00 $ top top - 10:01:55 up 8 min, 1 user, load average: 0.00, 0.02, 0.00 Tasks: 84 total, 1 running, 47 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 1006940 total, 587088 free, 60240 used, 359612 buff/cache KiB Swap: 0 total, 0 free, 0 used. 806496 avail Mem
- Criar carga na CPU:
$ yes > /dev/null & [1] 3533
- Confirmar a alta carga de CPU usando os comandos
uptime
etop
:$ top top - 10:11:42 up 17 min, 1 user, load average: 1.00, 0.86, 0.47 Tasks: 85 total, 2 running, 47 sleeping, 0 stopped, 0 zombie %Cpu(s): 98.7 us, 1.3 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 1006940 total, 584692 free, 61056 used, 361192 buff/cache KiB Swap: 0 total, 0 free, 0 used. 805612 avail Mem $ uptime 10:44:25 up 36 min, 1 user, load average: 1.00, 0.94, 0.60
-
Aguardar o scale up.
Pode demorar até:
healt check grace period (5 min) + tempo de criação da instância + tempo de status checks
- Parar o processo que consome CPU:
$ killall yes
- Confirmar a baixa carga de CPU usando os comandos
uptime
etop
:$ uptime 10:01:32 up 7 min, 1 user, load average: 0.00, 0.02, 0.00 $ top top - 10:01:55 up 8 min, 1 user, load average: 0.00, 0.02, 0.00 Tasks: 84 total, 1 running, 47 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 1006940 total, 587088 free, 60240 used, 359612 buff/cache KiB Swap: 0 total, 0 free, 0 used. 806496 avail Mem
-
Aguardar o scale down.
Pode demorar até:
warm up (5 min) + healt check grace period (5 min) + tempo de deleção da instância
Comments