O que é Auto Scaling?
O AWS Auto Scaling monitora suas aplicações e ajusta automaticamente a capacidade para manter performance estável e previsível ao menor custo possível. Quando a demanda sobe, ele adiciona recursos; quando cai, remove o excesso.
O serviço mais usado é o EC2 Auto Scaling, que gerencia grupos de instâncias EC2 (Auto Scaling Groups — ASG). Mas o Auto Scaling também funciona com ECS, DynamoDB, Aurora e outros serviços via Application Auto Scaling.
Auto Scaling Group (ASG)
Um Auto Scaling Group é uma coleção de instâncias EC2 tratadas como uma unidade lógica. Você define:
- Capacidade mínima (min): número mínimo de instâncias sempre ativas
- Capacidade desejada (desired): número ideal de instâncias em condições normais
- Capacidade máxima (max): limite superior — nunca ultrapassa esse número
- Launch Template: configuração das instâncias (AMI, tipo, security group, user data)
Políticas de Scaling
| Política | Como funciona | Caso de uso |
|---|---|---|
| Target Tracking | Mantém uma métrica em um valor alvo (ex: CPU em 50%). O ASG ajusta automaticamente. | Mais simples e recomendada para a maioria dos casos |
| Step Scaling | Adiciona ou remove instâncias em "degraus" conforme o tamanho do alarme CloudWatch. | Quando você precisa de controle granular sobre a resposta ao scaling |
| Scheduled Scaling | Escala em horários predefinidos (ex: aumentar às 8h, reduzir às 20h). | Cargas previsíveis — pico de segunda a sexta, promoções agendadas |
| Predictive Scaling | Usa ML para prever demanda futura e provisiona instâncias com antecedência. | Workloads com padrões cíclicos — evita lag no scale-out |
Scale-Out vs Scale-In
- Scale-Out (horizontal): adiciona mais instâncias quando a demanda aumenta
- Scale-In: remove instâncias quando a demanda diminui
- Scale-Up (vertical): aumenta o tamanho da instância (não é Auto Scaling — requer parada)
O Auto Scaling EC2 é sempre horizontal — adiciona e remove instâncias, não muda o tipo.
Integração com ELB
O Auto Scaling funciona em conjunto com o Elastic Load Balancer:
- Novas instâncias são registradas automaticamente no target group do ELB
- Instâncias removidas são desregistradas antes de serem terminadas (connection draining)
- O ELB realiza health checks — instâncias não saudáveis são substituídas pelo ASG
Health Checks
O ASG monitora a saúde das instâncias de duas formas:
- EC2 Health Check (padrão): verifica se a instância está em estado "running"
- ELB Health Check: verifica se a aplicação responde corretamente (recomendado)
Instâncias marcadas como não saudáveis são terminadas e substituídas automaticamente.
Cooldown Period
Após uma atividade de scaling, o ASG aguarda um período de cooldown (padrão: 300 segundos) antes de executar outra ação. Isso evita que o grupo escale repetidamente antes que as novas instâncias estejam totalmente operacionais.
Application Auto Scaling
Além do EC2, o Auto Scaling funciona com outros serviços:
| Serviço | O que escala |
|---|---|
| ECS | Número de tasks (containers) |
| DynamoDB | Read/Write Capacity Units |
| Aurora | Número de réplicas de leitura |
| Lambda | Concorrência provisionada |
| Spot Fleet | Número de instâncias Spot |
⭐ Pontos Importantes para o Exame
- Auto Scaling garante alta disponibilidade — substitui instâncias com falha automaticamente
- Trabalha com múltiplas AZs — distribui instâncias para tolerância a falhas
- Target Tracking é a política mais simples e recomendada (ex: manter CPU em 50%)
- Scheduled Scaling para cargas previsíveis; Predictive para padrões cíclicos
- O ASG não cobra por si mesmo — você paga apenas pelas instâncias EC2 criadas
- Sempre use Auto Scaling + ELB juntos para arquiteturas resilientes e escaláveis
- Scale-out = adicionar instâncias (horizontal). Não confundir com scale-up (vertical)
- Instâncias não saudáveis são terminadas e substituídas — não apenas reiniciadas
