\n\n\n\n Os meus custos de infraestrutura ocultos destruíram meu orçamento. - AgntMax \n

Os meus custos de infraestrutura ocultos destruíram meu orçamento.

📖 12 min read2,346 wordsUpdated Apr 5, 2026

Olá a todos, Jules Martin aqui, de volta em agntmax.com. Espero que todos estejam bem. Hoje, quero falar sobre algo que tem me preocupado ultimamente, algo que vi surgir em mais conversas e retrospectivas de projetos do que gostaria de admitir: a retirada invisível de custos de infraestrutura não otimizados. Sabemos que precisamos construir rapidamente, escalar rápido e entregar funcionalidades ontem. Mas muitas vezes, nessa corrida, deixamos para trás uma trilha de recursos esquecidos, instâncias superdimensionadas e serviços que funcionam em modo automático, acumulando faturas que nem olhamos antes que a revisão do orçamento trimestral caia como um tonelada de tijolos.

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

O Assassino Silencioso: Sempre Ligado 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 passa a segundo plano em relação à funcionalidade e à velocidade. Provisionamos uma instância EC2 que é “grande o suficiente”, talvez até “um pouco maior só por segurança”. Lançamos um banco de dados com IOPS provisionados que poderiam gerenciar toda a Internet, apenas para ficar principalmente inutilizado durante as horas de baixo tráfego. Esquecemos de configurar políticas de dimensionamento adequadas, ou simplesmente deixamos as coisas funcionando 24/7 porque, bem, é mais fácil não pensar nisso.

Vi tudo isso com meus próprios olhos há alguns meses com o novo painel de análise interna de um cliente. A equipe, que Deus os abençoe, construiu um sistema fantástico que fornecia aos agentes visões em tempo real das interações com os clientes. Foi uma grande vitória para o desempenho. Mas quando chegou a primeira fatura completa da nuvem, o diretor financeiro quase teve um ataque cardíaco. Eles haviam provisionado um cluster EKS robusto, algumas instâncias RDS de alto nível e uma multitude de funções Lambda com alocações de memória generosas, todas funcionando sem interrupção. O golpe final? O painel era principalmente utilizado pelos agentes durante o horário comercial, das 9:00 às 17:00, de segunda a sexta. Fora desse período, era uma cidade fantasma.

Estavam pagando por uma capacidade de nível empresarial 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 provedores de nuvem oferece ferramentas para ajudá-lo a visualizar seus gastos, e você deve absolutamente usá-las. AWS Cost Explorer, Azure Cost Management, Google Cloud Billing reports – não são apenas para gerentes financeiros. Estas são sua primeira linha de defesa.

Os Costumes Suspeitos

  • Instâncias de Cálculo (EC2, VMs): Muitas vezes são os maiores culpados. Estão superdimensionadas? Funcionam 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 reduzem a zero ou a um custo próximo ao zero quando estão inativos.
  • Armazenamento (volumes EBS, discos não conectados): Você já iniciou uma instância, a encerrou, mas deixou o volume de armazenamento associado vagando? 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. Até as NAT Gateways têm custo por hora, mesmo que não estejam fazendo 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 a olhar para seu AWS Cost Explorer. As maiores despesas eram, previsivelmente, EC2 e RDS. Eles também encontraram alguns volumes EBS vinculados a instâncias encerradas e uma NAT Gateway em uma VPC que não era mais utilizada para tráfego de produção. Pequenas coisas, mas que se acumulam.

“`html

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

Okay, você identificou os setores onde está gastando demais. Vamos para a parte divertida: corrigir. 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 testagem são usados apenas durante o horário de trabalho, não há motivo para funcionarem 24/7. A maioria dos provedores de nuvem oferece maneiras nativas de agendar ciclos de energia das instâncias, ou você pode criar sua própria solução com funções serverless.

Exemplo Prático: Agendador EC2 AWS com Lambda

Você pode criar uma função Lambda simples 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')
 
 # Definir tags para identificar as instâncias a serem paradas/iniciadas
 # Por exemplo, 'Schedule': 'business-hours'
 
 # Recuperar 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"Parar as instâncias: {stop_instance_ids}")
 ec2.stop_instances(InstanceIds=stop_instance_ids)
 else:
 print("Nenhuma instância para parar.")
 
 # --- Lógica semelhante para iniciar as 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': 'Agendamento das instâncias EC2 completo.'
 }

Você deve configurar duas regras de eventos CloudWatch: uma para ativar esta Lambda, digamos, às 18:00 UTC para parar as instâncias, e a 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 Serverless e a Orquestração de Contêineres

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

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

Meu cliente refez partes do seu painel de análises 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 trabalho cron, uma função Lambda era ativada por um evento S3 (novos arquivos carregados) ou por uma solicitação API Gateway. As economias foram imediatas e significativas.

3. Dimensione Corretamente seus Bancos de Dados com Serverless ou Auto-Scaling

Os bancos de dados costumam ser problemáticos, pois a persistência dos dados é crítica. No entanto, muitas soluções modernas de banco de dados oferecem opções serverless ou de auto-escalabilidade que não estavam amplamente disponíveis há alguns anos.

“`

  • AWS Aurora Serverless v2 : É uma mudança significativa. Adapta a capacidade com base no uso real, variando de frações de uma ACU (Unidade de Capacidade Aurora) até centenas, e você paga apenas pelo que utiliza. Não é mais necessário provisionar uma capacidade de pico enquanto a maior parte do tempo opera com carga de base.
  • Azure SQL Database Serverless : Semelhante ao Aurora Serverless, adapta automaticamente a capacidade de computação e pausa quando está inativo, proporcionando economias significativas para cargas de trabalho intermitentes.
  • DynamoDB On-Demand : Para cargas de trabalho NoSQL, o modo de capacidade sob demanda do DynamoDB significa que você paga por consultas, sem precisar provisionar unidades de capacidade de leitura/gravação. Perfeito para modelos de tráfego imprevisíveis.

O painel de análise inicialmente utilizava uma instância RDS PostgreSQL grande com IOPS provisionadas. Após a migração para o Aurora Serverless v2, seus custos de banco de dados diminuíram em quase **60%**, simplesmente porque não funcionava mais em plena capacidade durante as horas de baixa atividade.

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

Isso pode parecer trivial, mas é uma fonte constante de desperdício de dinheiro. Quando você termina uma instância EC2, seu volume EBS associado não é sempre eliminado por padrão, especialmente se se tratava de um volume não raiz. O mesmo se aplica aos snapshots – eles se acumulam rapidamente e podem se tornar caros.

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

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


# Lista todos os volumes não anexados
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ê frequentemente criar e remover ambientes. O cliente descobriu vários terabytes de antigos volumes EBS não anexados e centenas de snapshots obsoletos. Removê-los permitiu economizar algumas centenas de dólares na fatura mensal – não é enorme, mas cada pequeno gesto conta.

5. Otimizar os Custos de Rede

As NAT Gateways são ótimas para permitir que instâncias em sub-redes privadas acessem a Internet, mas geram custos horários e custos de processamento de dados. Se você tem mais de uma NAT Gateway em diferentes zonas de disponibilidade, mas apenas uma está sendo usada ativamente, você está pagando pelas redundantes.

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

Observamos que o cliente tinha uma NAT Gateway em cada AZ, mesmo que sua aplicação principal funcionasse apenas em duas. Eles conseguiram consolidar e realizar economias a partir daí, e então implementaram os Endpoints VPC para acesso ao S3, reduzindo os custos de processamento de dados através da NAT Gateway.

Ações a Serem Tomadas 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:

  1. Audite Regularmente Sua Fatura Cloud: Faça disso um hábito. Use as ferramentas de gestão de custos do seu provedor de cloud. Não deixe isso apenas nas mãos do financeiro. Compreenda para onde vai cada real.
  2. Tague Tudo: Isso não é negociável. Tague os recursos por projeto, proprietário, ambiente (dev, staging, prod) e se podem ser programados para pausa. Isso facilita enormemente a identificação e automação.
  3. Priorize a Programação para Ambientes Não Produtivos: Os ambientes de staging, dev, QA são candidatos ideais para paradas programadas fora do horário comercial. Normalmente, é o ganho mais fácil 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, sempre considere primeiro o serverless.
  5. Reavalie suas Escolhas de Banco de Dados: Se você tem bancos de dados que funcionam 24/7 com cargas muito variáveis, examine as opções serverless ou de auto-escalonamento 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 anexados, 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 compreendam as implicações financeiras de suas escolhas de provisionamento. Não é mais apenas um problema de operações.

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

É tudo por 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

Related Sites

AgnthqClawdevAgntkitClawgo
Scroll to Top