FinOps: medir, atribuir e reduzir custo
Objetivos desta aula
- Atribuir custo por projeto e ambiente
- Aplicar right-sizing
- Automatizar economia
FinOps começa em medir e atribuir: sem tags consistentes, o custo é uma bola única que ninguém consegue reduzir com segurança. Com atribuição, você descobre que 40% do gasto está em um ambiente de teste esquecido — e a economia vira decisão trivial.
As alavancas mais efetivas, na ordem: desligar o que não é usado, right-sizing baseado em métrica real, escolher armazenamento e classe adequados, usar capacidade reservada ou spot para carga previsível/tolerante, e reduzir tráfego entre zonas.
Custo é decisão de engenharia com contrapartida de confiabilidade. Reduzir réplicas economiza até o momento em que você viola o SLO. É por isso que FinOps e SRE conversam: o error budget é o limite do que a economia pode custar.
1. As três fases do FinOps
Informar (ver quem gasta), otimizar (reduzir desperdício) e operar (tornar custo parte da rotina). Sem tags e atribuição, não há conversa possível.
2. Onde o dinheiro some
- Instâncias e nós superdimensionados (requests muito acima do uso)
- Ambientes de dev ligados à noite e fim de semana
- NAT Gateway e tráfego entre zonas
- Volumes, snapshots e IPs esquecidos
- Logs guardados para sempre
3. Alavancas
Rightsizing, Spot para cargas tolerantes (Karpenter facilita), Savings Plans para a base estável, desligamento agendado, políticas de retenção e classes de storage mais baratas.
4. Custo no pull request
O Infracost comenta no PR quanto a mudança de Terraform vai custar por mês — o time decide antes, não na fatura.
Na prática
Atribuição e otimização
bash
# custo por ambiente (requer tags ativadas em Cost Allocation Tags)
aws ce get-cost-and-usage --time-period Start=2026-09-01,End=2026-09-30 \
--granularity MONTHLY --metrics UnblendedCost \
--group-by Type=TAG,Key=env
# right-sizing com base em recomendacao
aws compute-optimizer get-ec2-instance-recommendations --query 'instanceRecommendations[].{ID:instanceArn,Atual:currentInstanceType,Sugerido:recommendationOptions[0].instanceType}'
# desligar ambiente de dev fora do horario comercial
aws ec2 stop-instances --instance-ids $(aws ec2 describe-instances \
--filters Name=tag:env,Values=dev Name=instance-state-name,Values=running \
--query 'Reservations[].Instances[].InstanceId' --output text)
# no Kubernetes: identificar requests muito acima do uso real
kubectl top pods --all-namespaces | sort -k3 -h | tail -20Nota de segurança: Automação que desliga recursos precisa de escopo por tag; sem isso, um erro derruba produção.
Infracost no CI
bash
infracost breakdown --path infra/envs/prod --format json --out-file base.json
infracost diff --path infra/envs/prod --compare-to base.json
# saída: "Monthly cost will increase by $142 (+18%)"Por que isso importa
Engenheiro que fala de custo com números participa de decisões — e isso acelera carreira.
Erro comum
Cortar réplicas e limites até violar o SLO, trocando fatura menor por incidente.
Dica de produção
Publique um painel de custo por ambiente ao lado do painel de SLO: as duas conversas ficam honestas.
Pergunta de entrevista
Como você reduziria 30% do custo mantendo o SLO?
Glossário
- right-sizing
- Ajustar o tamanho do recurso ao consumo real observado.
- spot
- Capacidade com grande desconto que pode ser interrompida pelo provedor.
- Rightsizing
- Ajustar o tamanho do recurso ao uso real.
- Spot
- Capacidade ociosa da nuvem com grande desconto, que pode ser interrompida.
- Showback
- Mostrar a cada time quanto ele gasta, sem cobrar internamente.
Conexão com o CloudShop
Documentar o custo mensal do CloudShop e aplicar duas otimizações medidas.
Quiz da aula
1. Qual é o pré-requisito para atribuir custo por ambiente?
2. Qual carga é boa candidata a instâncias Spot?
Minhas anotações
Salvo automaticamente neste navegador.