finops · eficiência de nuvem

Por que sua conta de nuvem está cara — e quando trocar de stack não resolve

Versão técnica. Se você é dono de empresa e quer só o que checar, leia Conta de nuvem alta: 4 checagens (4 min).

A conversa sobre custo de nuvem quase sempre começa errada, no preço do fornecedor. Só que a fatura raramente está alta porque o vCPU da AWS custa mais que o do concorrente. Ela está alta porque o desenho do sistema paga por recurso que ninguém usa — e trocar de fornecedor leva o desperdício junto.

Este artigo separa as duas coisas: onde o dinheiro vaza de fato, e em que ponto migrar para stack open-source auto-hospedada passa a compensar. A resposta para a segunda pergunta não é "sempre". Em boa parte das PMEs, é "nunca" — e a conta que mostra isso está mais abaixo.

1. De onde vem a fatura, na ordem real

Em auditorias de custo, quatro causas explicam a maior parte do excedente, quase sempre nesta ordem de impacto:

  1. Recurso ocioso. Ambiente de homologação ligado 24×7 para ser usado 6h por dia útil. Você paga 168 horas por semana e consome 30.
  2. Superdimensionamento. A instância foi escolhida no pico de lançamento e nunca mais revista. É comum achar banco em máquina com 8 vCPU operando a 7% de média.
  3. Transferência de dados (egress). A linha que ninguém projeta. Backup entre regiões, mídia servida direto do bucket sem CDN, réplica conversando por rede pública.
  4. PaaS por conveniência, não por decisão. Fila gerenciada, cache gerenciado, busca gerenciada — cada um resolvendo algo que um único PostgreSQL já resolveria naquele volume.

As três primeiras causas se corrigem sem migrar nada de lugar. Isso importa: são as mais baratas de atacar e as de menor risco. Quem começa a conversa de FinOps propondo troca de stack está pulando a parte que dá mais retorno por hora investida.

2. O erro que infla toda promessa de economia

A comparação que circula em post de LinkedIn é sempre esta: "banco gerenciado custa R$ 6.000/mês, uma VM com PostgreSQL custa R$ 900 — economia de 85%".

O número está errado porque falta o termo mais caro: a hora de engenharia. Auto-hospedar transfere para o seu time o patch de segurança, o monitoramento, o ajuste de parâmetros, o teste de restore — e o plantão quando o disco enche às 3h da manhã. Isso tem custo recorrente, e tem custo único de migração.

O modelo abaixo é o que usamos antes de recomendar qualquer troca. Ele responde a uma pergunta só: em que mês a operação auto-hospedada fica mais barata que o PaaS, considerando o trabalho humano?

finops.py · break-even de auto-hospedagem✓ testado
from dataclasses import dataclass


@dataclass
class Cenario:
    """Custos de um mesmo serviço nas duas formas de operar."""
    paas_mensal: float        # fatura do serviço gerenciado
    infra_mensal: float       # VM/storage/backup do equivalente auto-hospedado
    horas_operacao_mes: float # patch, monitoramento, restore testado
    horas_migracao: float     # esforço único de saída
    valor_hora: float         # custo real da hora de engenharia


def custo_paas(c: Cenario, meses: int) -> float:
    return c.paas_mensal * meses


def custo_autogerido(c: Cenario, meses: int) -> float:
    unico = c.horas_migracao * c.valor_hora
    recorrente = (c.infra_mensal + c.horas_operacao_mes * c.valor_hora) * meses
    return unico + recorrente


def break_even(c: Cenario, horizonte: int = 60) -> int | None:
    """Primeiro mês em que auto-hospedar fica mais barato. None = nunca paga."""
    for m in range(1, horizonte + 1):
        if custo_autogerido(c, m) < custo_paas(c, m):
            return m
    return None

Rodando com dois perfis reais de cliente — uma PME e uma operação de porte médio, ambas a R$ 120 a hora de engenharia:

saída real da execução✓ python 3 · dataclasses
PME   break-even: NUNCA
       12m  PaaS R$     5.400 | auto R$    12.720 | +136%
       36m  PaaS R$    16.200 | auto R$    28.560 | +76%

MEDIA break-even: 3
       12m  PaaS R$    74.400 | auto R$    31.920 | -57%
       36m  PaaS R$   223.200 | auto R$    76.560 | -66%

Os dois cenários usam exatamente o mesmo modelo. O que muda é a escala — e o resultado inverte de sinal. Na PME, sair do gerenciado mais que dobra o custo de 12 meses, porque 4 horas mensais de operação a R$ 120 já custam mais que a fatura inteira do PaaS. Na operação média, o mesmo movimento se paga em 3 meses e devolve 66% em 3 anos.

Por que isso importa na hora de contratar: qualquer proposta de migração que apresente economia sem uma linha de custo de operação está comparando fatura contra fatura, não custo contra custo. Peça o número de horas/mês assumido. Se não houver, o cálculo não existe.

3. A ordem correta das alavancas

Atacar na ordem errada custa caro e rende pouco. A sequência que aplicamos:

  1. Medir antes de tocar. Sem alocação de custo por recurso e por ambiente, qualquer corte é chute. Primeiro etiquetar, depois decidir.
  2. Desligar o ocioso. Agendamento de homologação, remoção de volume órfão, snapshot antigo, IP reservado sem uso. Retorno alto, risco quase zero.
  3. Redimensionar. Ajustar instância ao uso real observado por 30 dias, não ao pico histórico. Ainda sem trocar tecnologia.
  4. Só então reavaliar o stack. E apenas onde o break-even fecha, serviço a serviço — nunca como migração de tudo de uma vez.

Os passos 2 e 3 costumam entregar a maior parte da economia possível sem alterar uma linha de código. É por isso que começamos por eles.

4. O que geralmente não vale auto-hospedar

Mesmo em escala, alguns serviços raramente compensam sair do gerenciado, porque a operação é desproporcional ao valor:

  • Autenticação e gestão de identidade. Errar aqui é incidente de segurança, não linha de custo.
  • Entrega de e-mail transacional. Reputação de IP não se compra com VM.
  • Banco primário sem alguém de plantão. Auto-hospedar exige que exista quem atenda. Se não existe, o custo aparece como indisponibilidade, e ela é mais cara que a fatura.
  • CDN. A economia de egress vem justamente de usá-la.

Onde a troca costuma fechar em escala: banco relacional, armazenamento de objetos (MinIO no lugar de S3), fila (RabbitMQ), cache (Redis) e observabilidade (Grafana). São componentes maduros, com operação previsível — o que torna a estimativa de horas confiável em vez de otimista.

5. O resumo

Conta de nuvem cara quase nunca é problema de preço de tabela. É desperdício estrutural mais PaaS adotado sem decisão. Corrija o desperdício primeiro — é onde está o retorno — e trate a migração de stack como uma decisão por serviço, com break-even calculado incluindo hora de engenharia. Abaixo de certa escala, a resposta honesta é ficar no gerenciado.

Esse critério é o mesmo que descrevemos em como escolhemos ferramentas: nada novo entra sem comparação documentada de custo total.

próximo passo

Quer o break-even calculado com os seus números?

Diagnóstico de custo sem custo: mapeamos ocioso, superdimensionamento e egress da sua conta e devolvemos o cálculo por serviço — inclusive onde a recomendação é não mexer.