Arquiteturas e Boas Práticas AWS
Aula 8 de 8
Well-Architected Framework
AWS define 6 pilares para arquiteturas de excelência:
1. Excelência Operacional
- Infraestrutura como código (CloudFormation/Terraform)
- Documentação runbook para incidentes
- Observabilidade (CloudWatch, X-Ray, Grafana)
- Deploy automatizado (CI/CD)
- Experimentação segura (canary deployments)
2. Segurança
- IAM com least privilege
- Encryption in-transit (TLS) e at-rest (KMS)
- VPC isolation (subnets privadas)
- Security Hub + GuardDuty + Inspector
- Secrets Manager (nunca hardcode secrets)
# AWS Secrets Manager — rotação automática
aws secretsmanager create-secret \
--name rds-credentials \
--secret-string '{"username":"admin","password":"Senha123!"}'
# Rotacionar a cada 30 dias
aws secretsmanager rotate-secret \
--secret-id rds-credentials \
--rotation-rules '{"AutomaticallyAfterDays": 30}'
3. Confiabilidade
- Multi-AZ em todos os serviços
- Auto Scaling Groups (mínimo 2 AZs)
- RDS Multi-AZ + backups automáticos
- Roteamento DNS com Route53 (health checks)
- Circuit breaker (Service Quotas, Throttling)
4. Performance
- Auto Scaling (horizontal, não vertical)
- Caching (CloudFront, ElastiCache)
- RDS Read Replicas
- Lambda Provisioned Concurrency
- Spot instances para workloads flexíveis
5. Otimização de Custos
- Reservar EC2/RDS por 1-3 anos (até 72% desconto)
- Spot instances (90% desconto)
- S3 Lifecycle Policies
- Compute Savings Plans
- AWS Budgets + alerts
# AWS Budget — alerta de gastos
aws budgets create-budget \
--account-id 123456789012 \
--budget file://budget.json
# budget.json
{
"BudgetName": "Mensal-Dev",
"BudgetLimit": {"Amount": "500", "Unit": "USD"},
"TimeUnit": "MONTHLY",
"BudgetType": "COST"
}
6. Sustentabilidade
- Regiões com energia renovável
- Instâncias Graviton (ARM) — menor consumo
- Desligar recursos fora do horário comercial
- Eliminar dados não usados (S3 lifecycle)
- Serverless (Lambda > EC2 ociosa)
Arquitetura Referência: App Web
CloudFront (CDN)
└── WAF (Web ACL)
└── ALB (Application Load Balancer)
├── EC2 Auto Scaling Group (múltiplas AZs)
│ └── EFS (NFS compartilhado)
└── RDS Multi-AZ + Read Replicas
└── ElastiCache (Redis)
Disaster Recovery (DR)
| Estratégia | RPO | RTO | Custo |
|---|---|---|---|
| Backup & Restore | 24h | 24h+ | Baixo |
| Pilot Light | ~15min | ~1h | Médio |
| Warm Standby | ~5min | ~15min | Alto |
| Multi-region Active | <1min | <1min | Muito alto |
# DR: S3 Cross-Region Replication
aws s3api put-bucket-replication \
--bucket meu-bucket \
--replication-configuration file://crr-config.json
# Failover Route53
aws route53 change-resource-record-sets \
--hosted-zone-id ZONE_ID \
--change-batch file://failover-r53.json
Checklist para Produção
- Multi-AZ em todos os serviços críticos
- Backup automático (RDS 7+ dias retention)
- IAM roles (zero access keys em EC2)
- CloudTrail ativo em todas as regiões
- AWS Config + regras de compliance
- VPC Flow Logs ativos
- Budget + alerts financeiros
- Auto Scaling configurado
- WAF na frente do ALB/CloudFront
- Deletion protection em RDS e S3
Well-Architected Framework é o guia. Sempre questione: "o que acontece se uma AZ cair?" Se a resposta for "quebra", sua arquitetura precisa de revisão.