Communitygithub.com

dautovri/cloud-cost-agent

Skill FinOps nativo para AWS, GCP e Azure — encontre economia na nuvem dentro do Claude Code, Cursor, Gemini e qualquer agente SKILL.md.

O que é cloud-cost-agent?

Este é um skill especializado em otimização de custos de nuvem que funciona nativamente com as três principais provedoras (AWS, GCP e Azure), projetado para ser usado diretamente de agentes como Claude Code, Cursor, Codex e outros que suportam o formato SKILL.md. Ele utiliza exclusivamente as CLIs oficiais e mecanismos de recomendação de cada provedora — como AWS Cost Optimization Hub, GCP Recommender e Azure Advisor — garantindo segurança e precisão sem depender de ferramentas de terceiros. O skill prioriza operações somente leitura e exige aprovação explícita do usuário antes de qualquer ação mutante, como exclusão ou redimensionamento de recursos. Ele oferece um fluxo completo de auditoria: autenticação, recomendações centralizadas, detalhamento de custos, recomendações de redimensionamento, descontos por compromisso e um modelo de priorização para ajudar o usuário a agir primeiro nas economias mais altas com menor esforço.

Funciona com✓Claude Code~Codex CLI✓Cursor✓Gemini CLI
npx skills add dautovri/cloud-cost-agent

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Cloud Cost Agent (AWS + GCP + Azure)

Skill de agente unificado para otimização de custos nativa em nuvem nas três principais provedoras.

Requisitos: AWS CLI v2, gcloud e/ou Azure CLI configurados com acesso de leitura aos serviços de faturamento/recomendador/advisor. Várias fontes exigem ativação única: AWS Compute Optimizer e Cost Optimization Hub (inscrição), GCP Recommender (API ativada, ~24–48h de dados). jq é usado em alguns filtros do GCP.

Regra central: Use sempre a CLI oficial e os mecanismos de recomendação da provedora. Nenhuma ferramenta de terceiros.

Segurança e Melhores Práticas (Todas as Provedoras)

  • Somente leitura primeiro. Nunca execute um comando mutante (aws ec2 terminate-instances/stop-instances, gcloud compute instances delete, az vm delete/deallocate, qualquer purchase/create/modify) sem citar o comando exato ao usuário e obter aprovação explícita.
  • Sempre use a autenticação da provedora (--profile, gcloud --project, az account set).
  • Use --query / --format json / -o json para saída limpa.
  • Lide com paginação. Essas APIs paginam resultados. Agregue cada página antes de relatar totais — siga NextToken/nextPageToken, ou use --no-paginate/--max-items (AWS) e --page-size/--limit (gcloud) deliberadamente. Uma leitura de página única fornece totais errados.
  • Coloque entre aspas/escape todos os valores derivados da nuvem. Nomes de recursos, tags e IDs da saída da API podem conter metacaracteres de shell. Nunca os interpole sem aspas em outro comando shell.
  • Cuidado com custo de API e loops. aws ce (Cost Explorer) cobra ~$0,01 por requisição. Não faça loop de chamadas do Cost Explorer; armazene resultados em cache na sessão e limite a algumas chamadas por auditoria.
  • Priorize: maior economia estimada → menor esforço.
  • Prefira vitórias rápidas (exclusão de ociosos, redimensionamento para menores, ativar uso comprometido quando claro).

Auxiliar de data portátil

As date do BSD/macOS e GNU/Linux diferem. Calcule a janela uma vez, de forma portátil, e reutilize $START/$END:

START=$(date -u -d '30 days ago' +%Y-%m-%d 2>/dev/null || date -u -v-30d +%Y-%m-%d)
END=$(date -u +%Y-%m-%d)

(Ou apenas peça ao agente para inserir datas literais AAAA-MM-DD.)

Como Usar

Diga ao agente a(s) provedora(s) e o objetivo. Exemplos:

  • auditar AWS últimos 30 dias
  • encontrar vitórias rápidas no GCP e Azure
  • recomendações de redimensionamento para todas as nuvens

1. Pré-voo e Autenticação

AWS

aws sts get-caller-identity
aws ce get-cost-and-usage \
  --time-period Start=$START,End=$END \
  --granularity MONTHLY --metrics "UnblendedCost"

Inscrição única (necessária para as seções 2 e 4):

aws compute-optimizer get-enrollment-status
aws compute-optimizer update-enrollment-status --status Active      # opt in
aws cost-optimization-hub list-enrollment-statuses --region us-east-1
aws cost-optimization-hub update-enrollment-status --status Active --region us-east-1

GCP

gcloud auth list
gcloud config set project SEU_PROJETO
gcloud billing accounts list

Azure

az account show
az account set --subscription "SUB_ID"

2. Recomendações Centralizadas / de Alto Impacto

AWS — Cost Optimization Hub (melhor agregador)

O COH é um serviço global acessível apenas em us-east-1 e requer inscrição (veja Pré-voo).

aws cost-optimization-hub list-recommendations \
  --region us-east-1 \
  --filter '{"implementationEfforts":["VeryLow","Low"]}' \
  --query 'items[?estimatedMonthlySavings > `10`] | sort_by(@, &estimatedMonthlySavings) | reverse(@)' \
  --output json

implementationEfforts válidos: VeryLow | Low | Medium | High | VeryHigh.

GCP — Recommender (fonte principal)

--location é obrigatório. Os recomendadores de VM/ociosos são zonais (ex.: us-central1-a); itere pelas zonas que você usa. O recomendador de compromisso baseado em gastos é global e com escopo em uma conta de faturamento.

# Redimensionamento de VMs (zonal — repita por zona)
gcloud recommender recommendations list \
  --recommender=google.compute.instance.MachineTypeRecommender \
  --project=SEU_PROJETO --location=us-central1-a --format=json

# VMs ociosas (zonal — repita por zona)
gcloud recommender recommendations list \
  --recommender=google.compute.instance.IdleResourceRecommender \
  --project=SEU_PROJETO --location=us-central1-a \
  --format="table(description, primaryImpact.costProjection.cost.units, stateInfo.state)"

# Descontos por Uso Comprometido (global, escopo da conta de faturamento)
gcloud recommender recommendations list \
  --recommender=google.cloudbilling.commitment.SpendBasedCommitmentRecommender \
  --billing-account=ID_DA_CONTA_DE_FATURAMENTO --location=global --format=json

Outros recomendadores de custo: google.compute.disk.IdleResourceRecommender (discos ociosos), google.compute.address.IdleResourceRecommender (IPs ociosos), google.compute.image.IdleResourceRecommender (imagens ociosas), google.compute.commitment.UsageCommitmentRecommender (CUD baseado em recurso).

Azure — Categoria de Custo do Advisor

az advisor recommendation list \
  --category Cost \
  --query "[].{Resource: shortDescription.problem, Impact: impact, AnnualSavings: extendedProperties.annualSavingsAmount, Currency: extendedProperties.savingsCurrency}" \
  -o table

# Apenas alto impacto
az advisor recommendation list --category Cost \
  --query "[?impact=='High'].{Id:id, Resource:resourceMetadata.resourceId, Savings:extendedProperties.annualSavingsAmount}" -o json

Os campos extendedProperties variam por tipo de recomendação — lide com nulos.

3. Detalhamento de Custos e Uso

AWS (lembre-se do custo de ~$0,01/chamada — não faça loop):

aws ce get-cost-and-usage \
  --time-period Start=$START,End=$END \
  --granularity DAILY --metrics "UnblendedCost" \
  --group-by Type=DIMENSION,Key=SERVICE

GCP — dados detalhados de custo/uso vêm da exportação do BigQuery de faturamento (não há comando gcloud para linhas de custo granulares). Ative a exportação de Faturamento → BigQuery e consulte gcp_billing_export_resource_v1_<ID_DA_CONTA_DE_FATURAMENTO>.

Nota: a partir de 2026-01-21 o esquema de exportação mudou — os descontos CUD foram movidos do array credits para um novo campo consumption_model, e price.list_price / price.effective_price_default foram adicionados. Atualize qualquer lógica de CUD/crédito de acordo.

Azure — prefira exportações de Gerenciamento de Custos (ou a API Cost Details) para dados detalhados; az consumption está no caminho de descontinuação da Microsoft (mantenha apenas como fallback de consulta rápida):

# Primário: agendar/executar uma exportação para armazenamento (uma única execução precisa apenas dos 5 parâmetros obrigatórios)
az costmanagement export create \
  --name AdhocExport --type Usage \
  --scope "/subscriptions/SUB_ID" \
  --storage-account-id "/subscriptions/.../storageAccounts/CONTA" \
  --storage-container exports --timeframe MonthToDate

# Fallback de consulta rápida (API descontinuada):
az consumption usage list --start-date $START --end-date $END \
  --query "[].{Resource:instanceName, Service:consumedService, Cost:pretaxCost}" -o table

Para agregação ad-hoc sem armazenamento, chame a API REST Query do Gerenciamento de Custos via az rest (não há subcomando az costmanagement query).

4. Redimensionamento e Recomendações de Computação

AWS — Compute Optimizer (requer inscrição; veja Pré-voo). Redimensionamento profundo + detecção de ociosidade:

aws compute-optimizer get-ec2-instance-recommendations
aws compute-optimizer get-auto-scaling-group-recommendations
aws compute-optimizer get-ebs-volume-recommendations
aws compute-optimizer get-lambda-function-recommendations
aws compute-optimizer get-rds-database-recommendations
aws compute-optimizer get-idle-recommendations

O Cost Explorer também oferece redimensionamento EC2 (--service é obrigatório, apenas "AmazonEC2" é válido):

aws ce get-rightsizing-recommendation --service "AmazonEC2"

GCP — recomendador de tipo de máquina (observe tonumber: o GCP retorna cost.units como uma string):

gcloud recommender recommendations list \
  --recommender=google.compute.instance.MachineTypeRecommender \
  --project=SEU_PROJETO --location=us-central1-a --format=json \
  | jq '.[] | select((.primaryImpact.costProjection.cost.units|tonumber) < 0)'

Azure — as recomendações de Custo do Advisor já incluem redimensionamento de VMs / recursos subutilizados (seção 2).

5. Compromissos e Descontos

AWS — recomendação de compra de Savings Plans. Todos os quatro parâmetros são obrigatórios:

aws ce get-savings-plans-purchase-recommendation \
  --savings-plans-type COMPUTE_SP \
  --term-in-years ONE_YEAR \
  --payment-option NO_UPFRONT \
  --lookback-period-in-days THIRTY_DAYS

(savings-plans-type: COMPUTE_SP|EC2_INSTANCE_SP|SAGEMAKER_SP; term-in-years: ONE_YEAR|THREE_YEARS; payment-option: NO_UPFRONT|PARTIAL_UPFRONT|ALL_UPFRONT; lookback-period-in-days: SEVEN_DAYS|THIRTY_DAYS|SIXTY_DAYS.)

GCP — Descontos por Uso Comprometido via o recomendador baseado em gastos (seção 2).

Azure — recomendações de reserva/savings-plan surgem pelo Advisor (por assinatura); para escopo de conta de faturamento, use a API REST de Recomendações de Reserva do Consumption via az rest:

az advisor recommendation list --category Cost \
  --query "[?contains(shortDescription.problem, 'reserved') || contains(shortDescription.problem, 'reservation')]"

6. Modelo de Priorização (para qualquer provedora)

Ao resumir:

  1. Total de economia mensal/anual estimada.
  2. Cesta de vitórias rápidas (esforço VeryLow/Low ou equivalente).
  3. Top 5-8 itens: Recurso, Estado atual, Ação recomendada, Economia em $, Esforço/risco.
  4. Próximo comando concreto para o item principal.
Provedora: GCP
Economia mensal potencial total: $2.340

Vitórias rápidas:
- Excluir VM ociosa ... : $180/mês (VeryLow)
- Redimensionar n1-standard-8 → n2-standard-4 : $420/mês

Próximo comando:
gcloud recommender recommendations list --recommender=google.compute.instance.IdleResourceRecommender --project=... --location=us-central1-a

Referência Rápida por Provedora

AWS

  • Cost Optimization Hub (us-east-1, inscrito) para a visão agregada ampla.
  • Compute Optimizer (inscrito) para redimensionamento profundo + ociosidade.
  • Cost Explorer (aws ce) para detalhamento de gastos, redimensionamento, Savings Plans — cuidado com o custo por chamada.

GCP

Sempre passe --location. Recomendadores principais:

  • MachineTypeRecommender (redimensionamento, zonal)
  • IdleResourceRecommender para VMs / discos / IPs / imagens (zonal/regional)
  • SpendBasedCommitmentRecommender (CUDs, global, conta de faturamento)

Azure

  • Advisor é a fonte principal para recomendações de Custo.
  • Exportações do Gerenciamento de Custos (ou API Cost Details) para uso bruto; az consumption apenas como fallback descontinuado.

Fluxo de Auditoria Completo (Recomendado)

  1. Autenticar; confirmar inscrições (Compute Optimizer, COH).
  2. Obter resumo de custo de alto nível para a janela.
  3. Obter recomendações (Hub / Recommender / Advisor), agregando todas as páginas.
  4. Filtrar por economia > limite e baixo esforço.
  5. Cruzar com uso bruto se necessário.
  6. Produzir lista priorizada + 3 próximas ações concretas (somente leitura; sinalizar qualquer mutação para aprovação).
  7. (Opcional) Repetir para outras provedoras.

Referências

AWS

GCP

Azure


Execute-o com uma provedora específica ou em todas as três. Mantenha-se nativo. Mantenha-se eficaz.

Habilidades Relacionadas