\n\n\n\n I meus custos de infraestrutura ocultos devastaram meu orçamento - AgntMax \n

I meus custos de infraestrutura ocultos devastaram meu orçamento

📖 12 min read2,364 wordsUpdated Apr 5, 2026

Olá a todos, Jules Martin aqui, de volta ao agntmax.com. Espero que todos estejam bem. Hoje quero falar sobre algo que tem me preocupado ultimamente, algo que vi emergir em mais conversas e post-mortems de projetos do que gostaria de admitir: o impacto invisível dos custos da infraestrutura não otimizada. Todos nós sabemos que precisamos construir rapidamente, escalar rapidamente e entregar funcionalidades ontem. Mas muitas vezes, nessa pressa, deixamos para trás uma trilha de recursos esquecidos, instâncias superdimensionadas e serviços que operam em modo automático, acumulando faturas que mal olhamos antes que a revisão trimestral do orçamento caia como uma tonelada de tijolos.

Portanto, para este artigo, mergulho de cabeça na otimização de custos, mas com um ângulo muito específico e oportuno: como parar de perder dinheiro em recursos “sempre ativos” que deveriam ser “sob demanda” ou “ativados por eventos.” Estamos em 2026, pessoal. Os dias de provisionamento de servidores à la carte acabaram. Se sua fatura de cloud ainda se parece com uma lista telefônica, é hora de agir.

O Assassino Silencioso: Sempre Ativo Quando Deveria Ser Sob Demanda

Sejamos realistas. Quando estamos sob pressão para lançar uma nova ferramenta para os agentes ou uma melhoria no atendimento ao cliente, o custo geralmente fica em segundo plano em relação à funcionalidade e à rapidez. Provisionamos uma instância EC2 que é “grande o suficiente”, talvez até “um pouco maior só para garantir.” Lançamos um banco de dados com IOPS provisionados que poderiam gerenciar toda a Internet, apenas para encontrá-lo na maioria do tempo inativo durante as horas de pico. Esquecemos de configurar políticas de dimensionamento apropriadas, ou simplesmente deixamos as coisas funcionarem 24/7 porque, bem, é mais fácil não se preocupar com isso.

Eu vi isso com meus próprios olhos alguns meses atrás com o novo painel de análise interna de um cliente. A equipe, que Deus os abençoe, havia construído um sistema fantástico que fornecia aos agentes visões em tempo real das interações com os clientes. Foi uma grande conquista para o desempenho. Mas quando a primeira fatura completa da cloud chegou, o diretor financeiro quase teve um ataque cardíaco. Eles haviam provisionado um cluster EKS robusto, algumas instâncias RDS de alta gama e uma infinidade de funções Lambda com alocações de memória generosas, todas operando sem interrupção. O golpe final? O painel era utilizado principalmente pelos agentes durante o horário de trabalho, das 9 às 17, de segunda a sexta. Fora desse horário, era uma cidade fantasma.

Eles estavam pagando por uma capacidade de nível enterprise para um sistema que estava efetivamente inativo 70% da semana. É como comprar um carro de Fórmula 1 para ir ao supermercado uma vez por semana.

Identifique os Culpados: Para Onde Vai Realmente Seu Dinheiro

Antes de poder consertar qualquer coisa, você precisa saber o que está quebrado. A maioria dos fornecedores de cloud oferece ferramentas para ajudá-lo a visualizar suas despesas, e você deve absolutamente usá-las. AWS Cost Explorer, Azure Cost Management, Google Cloud Billing reports – não servem apenas para finanças. Eles são sua primeira linha de defesa.

Os Costumes Suspeitos

  • Instância de Cálculo (EC2, VMs): Frequentemente são os principais culpados. Estão superdimensionadas? Estão funcionando quando não deveriam? Você está usando a família de instâncias certa para sua carga de trabalho?
  • Banco de Dados (RDS, Azure SQL, Cloud SQL): Assim como o cálculo, os bancos de dados podem ser superprovisionados para IOPS, CPU ou memória. Muitos agora oferecem opções sem servidor que vão a zero ou a um custo próximo de zero quando estão inativos.
  • Armazenamento (volumes EBS, discos não anexados): Você já lançou uma instância, finalizou, mas deixou o volume de armazenamento associado por aí? Isso acontece mais frequentemente do que você pensa.
  • Networking (Transferência de dados, NAT Gateways): Os custos de transferência de dados podem surpreendê-lo, especialmente entre regiões. As NAT Gateways também têm um custo horário, mesmo que não façam nada.
  • Serviços Subutilizados: Você está pagando por um cache Redis dedicado que tem apenas alguns acessos por dia? Um cluster Kafka gerenciado para um fluxo de mensagens?

Meu cliente da história do painel de análise começou observando seu AWS Cost Explorer. As principais entradas de despesas eram, previsivelmente, EC2 e RDS. Eles também encontraram alguns volumes EBS anexados a instâncias finalizadas e uma NAT Gateway em uma VPC que não estava mais sendo usada para o tráfego de produção. Pequenas coisas, mas elas se acumulam.

“`html

Estratégias para Transformar Sempre Ativo em Sob Demanda (ou Fora de Pico)

Tudo bem, você identificou as áreas onde gasta demais. Vamos passar para a parte divertida: consertar tudo isso. O objetivo não é apenas economizar dinheiro, mas construir um sistema mais resiliente e eficiente que consome recursos apenas quando realmente precisa.

1. Planeje o Início/Parada das Instâncias

Provavelmente é o fruto mais fácil para muitas aplicações. Se suas ferramentas internas ou seus ambientes de staging são utilizados apenas durante o horário comercial, não há motivo para funcionarem 24/7. A maioria dos provedores de nuvem oferece meios nativos para programar os ciclos de energia das instâncias, ou você pode criar sua própria solução com funções sem servidor.

Exemplo Prático: Planejador EC2 AWS com Lambda

Você pode criar uma simples função Lambda ativada por eventos CloudWatch (expressões CRON) para parar e iniciar instâncias EC2 com base nas tags. Aqui está uma versão simplificada do código da função Lambda (Python):


import boto3

def lambda_handler(event, context):
 ec2 = boto3.client('ec2')
 
 # Defina tags para identificar as instâncias a serem paradas/iniciadas
 # Por exemplo, 'Schedule': 'business-hours'
 
 # Recupere todas as instâncias em execução com a tag 'Schedule' definida como 'business-hours'
 running_instances = ec2.describe_instances(
 Filters=[
 {'Name': 'instance-state-name', 'Values': ['running']},
 {'Name': 'tag:Schedule', 'Values': ['business-hours']}
 ]
 )
 
 stop_instance_ids = []
 for reservation in running_instances['Reservations']:
 for instance in reservation['Instances']:
 stop_instance_ids.append(instance['InstanceId'])
 
 if stop_instance_ids:
 print(f"Parando as instâncias: {stop_instance_ids}")
 ec2.stop_instances(InstanceIds=stop_instance_ids)
 else:
 print("Nenhuma instância a ser parada.")
 
 # --- Lógica semelhante para iniciar instâncias em outro momento ---
 # Você teria outra Lambda/Event CloudWatch para iniciar,
 # ou combinar a lógica com uma tag 'start'.
 
 return {
 'statusCode': 200,
 'body': 'Planejamento das instâncias EC2 concluído.'
 }

Você deve configurar duas regras de eventos CloudWatch: uma para ativar essa Lambda, digamos, às 18:00 UTC para parar as instâncias, e outra às 7:00 UTC para iniciá-las. Isso por si só pode reduzir os custos de computação em mais de 70% para esses recursos específicos.

2. Adote o Sem Servidor e a Orquestração de Contêineres

Se sua carga de trabalho é realmente esporádica ou ativada por eventos, o sem servidor é seu melhor aliado. AWS Lambda, Azure Functions, Google Cloud Functions – eles diminuem para zero quando não estão em uso, o que significa que você paga apenas pela computação quando seu código realmente está sendo executado. É uma grande mudança em relação ao paradigma “sempre ativo”.

Para aplicações mais complexas que ainda precisam de serviços persistentes, mas têm uma demanda variável, as plataformas de orquestração de contêineres como Kubernetes (EKS, AKS, GKE) combinadas com uma escalabilidade inteligente são poderosas. Os Autoscalers Horizontais de Pod (HPA) podem variar o tamanho de seus pods de aplicativo com base na utilização da CPU ou em métricas personalizadas. Os Autoscalers de Cluster podem até adicionar ou remover nós do seu cluster à medida que a demanda muda.

Meu cliente reestruturou partes de seu painel de análise para usar Lambda para gerar alguns relatórios que eram solicitados apenas algumas vezes ao dia. Em vez de uma instância EC2 dedicada que executava um cron job, uma função Lambda era ativada por um evento S3 (novos arquivos carregados) ou por uma solicitação de API Gateway. As economias foram imediatas e significativas.

3. Dimensione Corretamente Seus Bancos de Dados com o Sem Servidor ou Auto-Escalonamento

Os bancos de dados costumam ser problemáticos, pois a persistência dos dados é crítica. No entanto, muitos bancos de dados modernos oferecem opções sem servidor ou de auto-escalonamento que não estavam amplamente disponíveis alguns anos atrás.

“““html

  • AWS Aurora Serverless v2 : É uma mudança significativa. Ajusta a capacidade com base no uso real, variando de frações de uma ACU (Unidade de Capacidade Aurora) a centenas, e você paga apenas pelo que utiliza. Não é mais necessário reservar capacidade máxima quando a maior parte do tempo funciona com carga normal.
  • Azure SQL Database Serverless : Semelhante ao Aurora Serverless, adapta-se automaticamente à capacidade de computação e entra em pausa quando está inativo, permitindo economias significativas para cargas de trabalho intermitentes.
  • DynamoDB On-Demand : Para cargas de trabalho NoSQL, o modo de capacidade on-demand do DynamoDB significa que você paga por cada solicitação, sem precisar reservar unidades de capacidade de leitura/gravação. Perfeito para padrões de tráfego imprevisíveis.

O dashboard analítico inicialmente utilizava uma instância RDS PostgreSQL grande com IOPS reservadas. Após a migração para o Aurora Serverless v2, os custos do banco de dados diminuíram quase 60%, simplesmente porque não funcionava em plena capacidade durante as horas de baixa atividade.

4. Limpe os Armazenamentos Não Associados e os Snapshots

Pode parecer trivial, mas é uma fonte constante de desperdício de dinheiro. Quando você encerra uma instância EC2, seu volume EBS associado nem sempre é eliminado por padrão, especialmente se for um volume não raiz. O mesmo vale para os snapshots – eles se acumulam rapidamente e podem se tornar caros.

Exemplo Prático: Encontrar e Remover Volumes EBS Não Associados (AWS CLI)

Você pode usar a AWS CLI para encontrar volumes não associados e removê-los. É uma tarefa comum de limpeza.


# Lista todos os volumes não associados
aws ec2 describe-volumes --filters Name=status,Values=available --query 'Volumes[*].[VolumeId,Size,CreateTime]' --output table

# Para excluir um volume específico (CUIDADO, É IRREVERSÍVEL)
# Substitua 'vol-xxxxxxxxxxxxxxxxx' pelo ID real do volume
# aws ec2 delete-volume --volume-id vol-xxxxxxxxxxxxxxxxx

Automatize isso com uma função Lambda programada se você criar e remover ambientes com frequência. O cliente descobriu vários terabytes de antigos volumes EBS não associados e centenas de snapshots obsoletos. Removê-los permitiu economizar algumas centenas de dólares na fatura mensal – não é muito, mas cada pequeno gesto conta.

5. Otimizar os Custos de Rede

As NAT Gateways são fantásticas para permitir que instâncias em sub-redes privadas acessem a Internet, mas acarretam custos horários e despesas de processamento de dados. Se você tem várias NAT Gateways em diferentes zonas de disponibilidade, mas apenas uma é usada ativamente, está pagando por redundâncias.

  • Consolide as NAT Gateways : Se sua arquitetura permitir, consolide para menos NAT Gateways.
  • Endpoints VPC : Para acessar serviços AWS como S3 ou DynamoDB do seu VPC, use os Endpoints VPC. O tráfego circula de forma privada dentro da rede AWS, evitando os custos das NAT Gateways e oferecendo maior segurança.

Descobrimos que o cliente tinha uma NAT Gateway em cada AZ, mesmo que sua aplicação principal funcionasse apenas em duas. Conseguiram consolidar e economizar assim, e depois implementaram os Endpoints VPC para acesso ao S3, reduzindo os custos de processamento de dados através da NAT Gateway.

Ações a Realizar para o Próximo Sprint

Não se trata apenas de reduzir custos; trata-se de construir sistemas mais inteligentes e eficientes, intrinsecamente conscientes dos custos. Aqui está o que você pode começar a fazer a partir de hoje:

“““html

  1. Audite Regularmente a Sua Fatura Cloud: Torne isso um hábito. Use as ferramentas de gestão de custos do seu provedor de nuvem. Não deixe apenas para as finanças. Compreenda para onde vai cada real.
  2. Rotule Tudo: Isso é inegociável. Rotule os recursos por projeto, proprietário, ambiente (dev, staging, prod) e se podem ser programados para desligamento. Isso facilita significativamente a identificação e a automação.
  3. Priorize a Programação para Ambientes Não Produtivos: Ambientes de staging, dev, QA são candidatos ideais para paradas programadas fora do horário comercial. Geralmente é o ganho mais simples e rápido.
  4. Considere o Serverless para Novas Cargas de Trabalho: Se você está construindo algo novo, especialmente microserviços baseados em eventos ou tarefas em segundo plano, considere sempre o serverless primeiro.
  5. Reavalie Suas Escolhas de Banco de Dados: Se você tem bancos de dados funcionando 24/7 com cargas muito variáveis, examine opções serverless ou de auto-escalamento para sua tecnologia de banco de dados específica.
  6. Automatize a Limpeza: Implemente scripts automatizados ou funções serverless para identificar e remover volumes de armazenamento não associados, snapshots antigos e outros recursos órfãos.
  7. Eduque Sua Equipe: Promova uma cultura de conscientização de custos. Certifique-se de que os desenvolvedores entendam as implicações financeiras de suas escolhas de alocação. Não é mais apenas um problema de operações.

Parar as perdas relacionadas a recursos “sempre ativos” não é uma solução de curto prazo; é uma disciplina contínua. Mas ao fazer essas mudanças, você não apenas economizará uma quantia significativa de dinheiro para sua empresa, mas também construirá uma infraestrutura mais ágil, resiliente e preparada para o futuro. E francamente, isso o torna um ator melhor no campo tecnológico.

É tudo para mim desta vez. Continue construindo de forma inteligente, e nos vemos na próxima!

“`

🕒 Published:

✍️
Written by Jake Chen

AI technology writer and researcher.

Learn more →
Browse Topics: benchmarks | gpu | inference | optimization | performance
Scroll to Top