AWS Cost Monitor
Ferramenta de monitoramento e análise de custos AWS com foco em FinOps e interpretação automatizada via IA local.
PythonBoto3AWS Cost ExplorerOllama / Llamapytest
01 — Problema
Ambientes AWS acumulam custo invisível. Serviços criados para testes, buckets esquecidos, instâncias superprovisionadas e transferências de dados inesperadas aparecem na fatura sem contexto. O console da AWS disponibiliza os dados, mas a interpretação fica a cargo do engenheiro — que muitas vezes não tem tempo ou referência para fazer isso com consistência.
A ausência de uma visão consolidada e interpretada leva a duas situações comuns:
- gastos mensais que crescem sem justificativa clara;
- revisões manuais pontuais que não criam hábito.
02 — Objetivo
Criar uma ferramenta de linha de comando que:
- Coleta dados de custo diretamente do AWS Cost Explorer via Boto3;
- Realiza a análise de forma determinística (sem depender de IA para os cálculos);
- Passa o resultado para um modelo de linguagem local (Ollama) para interpretação e recomendações;
- Gera um relatório legível com os serviços mais custosos, variações e sugestões de ação.
O objetivo não é substituir ferramentas de FinOps enterprise, mas fornecer um ponto de partida funcional e auditável para equipes pequenas e projetos pessoais.
03 — Requisitos
- Coletar custos por serviço em um período configurável (padrão: últimos 30 dias);
- Calcular total, percentuais por serviço e variação entre períodos;
- Identificar os serviços responsáveis pela maior parte do custo;
- Gerar interpretação via modelo de linguagem local (sem enviar dados para APIs externas);
- Funcionar com permissões IAM mínimas (somente leitura);
- Executar via linha de comando com saída em texto estruturado.
04 — System Design
AWS Cost Explorer
↓
Boto3
↓
Python Analyzer
(cálculos determinísticos)
↓
Análise determinística
(totais, variações, ranking)
↓
Ollama / Llama
(interpretação local)
↓
Relatório final
A separação entre análise determinística e interpretação via IA é deliberada: os números são calculados pelo código Python antes de qualquer interação com o modelo. O modelo recebe apenas os resultados já processados e é responsável pela narrativa — não pelos cálculos.
05 — Arquitetura
O projeto é dividido em módulos com responsabilidades separadas:
- src/aws/cost_explorer.py: coleta os dados do Cost Explorer via Boto3;
- src/analysis/cost_analyzer.py: cálculos, agregações e comparação de períodos;
- src/analysis/finops_rules.py: regras de crescimento, concentração e ranking;
- src/ai/llama_client.py: interpretação opcional via modelo local;
- src/reports/report_generator.py: formatação e gravação dos relatórios;
- src/main.py: orquestração, com parâmetros em
src/config.py.
A IA é tratada como camada opcional: se o Ollama não estiver disponível, o relatório determinístico é gerado sem ela.
06 — Stack
- Python 3.14+ — linguagem principal;
- Boto3 — SDK oficial da AWS para acesso ao Cost Explorer;
- AWS Cost Explorer API — fonte dos dados de custo;
- AWS STS — verificação de identidade da conta;
- Ollama / Llama — modelo de linguagem local para interpretação;
- pytest — suite de testes automatizados.
07 — Segurança
O projeto foi desenhado com segurança como requisito, não como adendo:
- Permissões mínimas: a ferramenta requer apenas
ce:GetCostAndUsageests:GetCallerIdentity; - Sem dados externos: a interpretação via IA usa modelo local (Ollama) — nenhum dado de custo é enviado para APIs de terceiros;
- Credenciais via ambiente: nenhuma credencial é hardcoded; autenticação via variáveis de ambiente ou perfis AWS configurados localmente;
- Auditabilidade: os cálculos determinísticos são transparentes e verificáveis independentemente do modelo de IA.
Política IAM mínima necessária:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ce:GetCostAndUsage",
"sts:GetCallerIdentity"
],
"Resource": "*"
}
]
}
08 — Custos
O uso da API do AWS Cost Explorer pode gerar cobranças na conta AWS. Avalie a tabela vigente de preços antes de configurar execuções frequentes.
A interpretação com Ollama usa o computador local, sem contratação de API de IA externa. Hardware, energia e outros recursos de execução continuam sujeitos a custos.
09 — Testes
A suite de testes cobre os módulos de análise e coleta com mocks do Boto3, evitando chamadas reais à AWS durante o desenvolvimento.
Os testes verificam:
- cálculos de total e variação de custo;
- formatação dos relatórios;
- comportamento quando os dados estão ausentes ou malformados;
- integração entre os módulos.
10 — Status
V1 funcional — coleta, análise determinística e relatório com interpretação via IA local estão implementados. O projeto está em uso e pode ser executado via linha de comando com uma conta AWS configurada.
11 — Código / GitHub
O código-fonte está disponível no GitHub: