O falso +687% no relatório de custos AWS: por que toda semana que cruza o dia 1 mente
Publicado em 4 de julho de 2026

O alarme que não era alarme
Um relatório automático de custos comparando semana contra semana disparou dois alertas vermelhos: Route53 +687% e EC2 +34%. A reação instintiva é caçar o que explodiu. Mas a comparação semanal de custo AWS tem um viés estrutural que produz falsos positivos toda vez que a janela cruza o primeiro dia do mês.
Mecanismo 1: cobranças mensais caem no dia 1
Vários custos AWS são lançados de uma vez no dia 1: Reserved Instances No-Upfront, Hosted Zones do Route53, taxas mensais. Se a sua "semana" inclui o dia 1, ela soma um mês inteiro de cobrança contra uma semana que não incluiu — e o comparativo estoura.
A prova: olhando o custo MENSAL real em vez do recorte semanal, o Route53 tinha CAÍDO -8,9% (US$18,00 → US$16,40) e o EC2 tinha CAÍDO -19% (US$218,01 → US$176,54, uma RI c5a.large que expirou). A variação de BoxUsage real foi < 0,5%. O "+687%" era artefato da janela.
# Em vez de semana×semana, compare o custo MENSAL por serviço:
aws ce get-cost-and-usage \
--time-period Start=2026-01-01,End=2026-03-01 \
--granularity MONTHLY --metrics UnblendedCost \
--group-by Type=DIMENSION,Key=SERVICE --output table
# E separe HeavyUsage (RI) de BoxUsage (on-demand) — só BoxUsage reflete uso real:
aws ce get-cost-and-usage --time-period Start=2026-02-01,End=2026-03-01 \
--granularity MONTHLY --metrics UnblendedCost \
--filter '{"Dimensions":{"Key":"SERVICE","Values":["Amazon Elastic Compute Cloud - Compute"]}}' \
--group-by Type=DIMENSION,Key=USAGE_TYPE --output tableRegra prática: comparação semanal de custo AWS só é confiável quando NENHUMA das semanas cruza o dia 1. Caso contrário, olhe o mensal.
Mecanismo 2: o efeito calendário (meses de 31 dias)
O segundo gerador de falso positivo é mais sutil: meses têm 28 a 31 dias. Uma instância On-Demand rodando 24×7 custa proporcionalmente mais em março (31 dias) que em fevereiro (28). A prova é aritmética:
c5.4xlarge On-Demand, 24x7:
Fevereiro (28 dias): US$456,91
Projeção março (31 dias): 456,91 × 31/28 = US$505,86
Real março: US$505,85 ✓ (o "aumento" é só o calendário)Bônus: a ferramenta que classificou Tax como "Cost Explorer"
No mesmo relatório, um item "Cost Explorer +1865%" assustou — era a própria taxa de imposto (Tax) sendo mal-rotulada pela ferramenta de billing como se fosse uso do serviço Cost Explorer. Sempre desconfie de um serviço barato "explodindo": muitas vezes é classificação errada, não custo novo. E aproveite para caçar o desperdício de verdade — Elastic IPs ociosos:
aws ec2 describe-addresses \
--query 'Addresses[?AssociationId==`null`].[PublicIp,AllocationId]' --output tableLições
1. Semana que cruza o dia 1 sempre "sobe". RIs e Hosted Zones são lançadas de uma vez no dia 1. Compare mensal antes de soar o alarme.
2. Meses de 31 dias inflam On-Demand ~10%. Normalize por número de dias antes de gritar "aumentou".
3. Serviço barato "explodindo" = classificação errada. Tax rotulado como Cost Explorer (+1865%) é artefato da ferramenta, não custo.
Conclusão
Relatórios de custo automáticos são úteis até o ponto em que viram gerador de pânico. Dois mecanismos — cobrança no dia 1 e efeito calendário — explicam praticamente todos os falsos picos semanais. Antes de acordar o time, dois comandos de Cost Explorer no recorte mensal mostram a direção real. Aqui, a conta estava CAINDO enquanto o relatório gritava +687%.