Custos, tags e a disciplina de destruir o ambiente
Objetivos desta aula
- Identificar os maiores geradores de custo
- Aplicar tags e budgets
- Executar checklist de destruição
Custo na nuvem é responsabilidade de engenharia. Os campeões de fatura inesperada são NAT Gateway, IPs elásticos ociosos, volumes EBS órfãos, snapshots antigos, balanceadores esquecidos e tráfego de saída. Conhecer essa lista já evita a maior parte dos sustos.
Sem tags não existe análise: projeto, ambiente, dono e validade permitem atribuir gasto e caçar recurso órfão. Depois vêm budgets com alerta por percentual e anomaly detection para variações súbitas.
Adote a disciplina de destruição: todo laboratório termina com destroy e uma verificação ativa de recursos remanescentes. Em Terraform isso é um comando; sem IaC, é um checklist manual — mais um argumento a favor de descrever tudo em código.
1. Os vilões da conta
NAT Gateway parado, instâncias esquecidas, volumes EBS órfãos, IPs públicos (agora cobrados), snapshots antigos, logs sem retenção e transferência entre AZs. Conheça-os antes da primeira fatura.
2. Tags como contrato
Toda peça leva Project, Environment, Owner e ManagedBy. Ative-as como cost allocation tags para ver custo por ambiente no Cost Explorer. No Terraform, use default_tags no provider.
3. Alertas de orçamento e anomalia
AWS Budgets avisa por valor; Cost Anomaly Detection avisa quando algo foge do padrão (ex.: um job gerando terabytes de tráfego).
4. Destruir é uma habilidade
Ambientes de estudo e de PR devem ser efêmeros: terraform destroy ao fim do dia. Se destruir dá medo, é sinal de que a infraestrutura não está 100% em código.
5. Otimizações clássicas
Graviton, Savings Plans para carga estável, Spot para carga tolerante a interrupção, rightsizing com base em métricas reais e desligar dev fora do horário.
6. Checagem final
Você deve listar recursos sem tags, ver o custo por ambiente e recriar o dev do zero sem ansiedade.
Na prática
Custo, órfãos e destruição
bash
aws ce get-cost-and-usage --time-period Start=2026-09-01,End=2026-09-30 \
--granularity MONTHLY --metrics UnblendedCost \
--group-by Type=DIMENSION,Key=SERVICE --query 'ResultsByTime[0].Groups[].{S:Keys[0],V:Metrics.UnblendedCost.Amount}'
# recursos orfaos
aws ec2 describe-addresses --query 'Addresses[?AssociationId==null].PublicIp'
aws ec2 describe-volumes --filters Name=status,Values=available --query 'Volumes[].{ID:VolumeId,GB:Size}'
aws ec2 describe-nat-gateways --filter Name=state,Values=available --query 'NatGateways[].NatGatewayId'
aws elbv2 describe-load-balancers --query 'LoadBalancers[].LoadBalancerName'
# checklist de destruicao do laboratorio
aws rds delete-db-instance --db-instance-identifier cloudshop-dev --skip-final-snapshot
aws ec2 terminate-instances --instance-ids "$INSTANCE_ID"
aws s3 rm s3://cloudshop-web-dev --recursive && aws s3api delete-bucket --bucket cloudshop-web-devNota de segurança: --skip-final-snapshot apaga o banco sem cópia. Use apenas em ambiente descartável e nunca em produção.
Achar recursos sem tag e órfãos
bash
aws resourcegroupstaggingapi get-resources \
--query "ResourceTagMappingList[?!not_null(Tags[?Key=='Project'])].ResourceARN"
aws ec2 describe-volumes --filters Name=status,Values=available \
--query 'Volumes[].[VolumeId,Size]' # volumes sem dono
aws ec2 describe-addresses --query 'Addresses[?AssociationId==null].PublicIp' # IPs paradosTags padrão no Terraform
hcl
provider "aws" {
region = "us-east-1"
default_tags {
tags = {
Project = "cloudshop"
Environment = var.env
Owner = "plataforma"
ManagedBy = "terraform"
}
}
}Por que isso importa
Vagas atuais citam FinOps explicitamente. Saber falar de custo com números diferencia candidatos.
Erro comum
Deixar NAT Gateway ligado a mês inteiro para um laboratório de duas horas.
Dica de produção
Automatize desligamento noturno de ambientes de desenvolvimento; economia de 60% é comum.
Alerta de segurança
Pico inexplicado de custo pode ser sinal de conta comprometida usada para mineração. Investigue como incidente.
Pergunta de entrevista
Quais recursos você verificaria primeiro se a fatura dobrasse sem novo deploy?
Glossário
- FinOps
- Prática de gestão financeira da nuvem, unindo engenharia e finanças.
- recurso órfão
- Recurso que continua cobrando sem estar associado a nada em uso.
- FinOps
- Prática de gerir custos de nuvem com engenharia, finanças e produto juntos.
- Spot
- Capacidade ociosa com grande desconto, que pode ser interrompida.
- rightsizing
- Ajustar o tamanho do recurso ao uso real.
Conexão com o CloudShop
Documentar o custo mensal estimado do CloudShop e o procedimento de destruição.
Quiz da aula
1. Qual recurso frequentemente gera custo inesperado em laboratórios?
2. Qual recurso é um vilão clássico de custo em ambiente de estudo?
3. Para que servem cost allocation tags?
Minhas anotações
Salvo automaticamente neste navegador.