Communitygithub.com

dautovri/cloud-cost-agent

Skill FinOps nativo para AWS, GCP y Azure: encuentra ahorros en la nube desde Claude Code, Cursor, Gemini y cualquier agente SKILL.md.

¿Qué es cloud-cost-agent?

Cloud Cost Agent es un skill unificado para agentes de IA (Claude Code, Cursor, Codex, Gemini, etc.) que permite auditar y optimizar costos en los tres principales proveedores de nube: AWS, GCP y Azure. Utiliza exclusivamente las herramientas CLI oficiales (AWS CLI, gcloud, Azure CLI) y los motores de recomendación nativos de cada proveedor, como AWS Compute Optimizer, AWS Cost Optimization Hub, GCP Recommender y Azure Advisor. El skill incluye guías detalladas de autenticación, obtención de recomendaciones de derecho de uso, detección de recursos inactivos, análisis de compromisos de uso (Savings Plans, CUDs, reservas) y una plantilla de priorización para presentar los hallazgos. Es read-only por defecto, requiriendo aprobación explícita para cualquier acción mutante. Soporta manejo de paginación, cotización de valores de la nube y tiene en cuenta los costos de las API. Es ideal para equipos de FinOps o ingenieros que quieran integrar optimización de costos directamente en su flujo de trabajo con agentes de IA.

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

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Cloud Cost Agent (AWS + GCP + Azure)

Skill de agente unificado para optimización nativa de costos en la nube en los 3 principales proveedores.

Requisitos: AWS CLI v2, gcloud y/o Azure CLI configurados con acceso de lectura a servicios de facturación/recomendación/advisor. Varias fuentes requieren una activación única: AWS Compute Optimizer y Cost Optimization Hub (registro), GCP Recommender (API habilitada, ~24–48h de datos). Se usa jq en algunos filtros de GCP.

Regla fundamental: Usar siempre la CLI oficial del proveedor y sus motores de recomendación. Sin herramientas de terceros.

Seguridad y Mejores Prácticas (Todos los Proveedores)

  • Solo lectura primero. Nunca ejecutes un comando mutante (aws ec2 terminate-instances/stop-instances, gcloud compute instances delete, az vm delete/deallocate, cualquier purchase/create/modify) sin citar el comando exacto al usuario y obtener su aprobación explícita.
  • Usa siempre la autenticación del proveedor (--profile, gcloud --project, az account set).
  • Usa --query / --format json / -o json para una salida limpia.
  • Maneja la paginación. Estas API paginan los resultados. Agrega cada página antes de reportar totales — sigue NextToken/nextPageToken, o usa --no-paginate/--max-items (AWS) y --page-size/--limit (gcloud) deliberadamente. Una lectura de una sola página da totales incorrectos.
  • Cita/escapa todos los valores derivados de la nube. Los nombres de recursos, etiquetas e IDs de la salida de la API pueden contener metacaracteres de shell. Nunca los interpoles sin citar en otro comando shell.
  • Ten en cuenta el costo de la API y los bucles. aws ce (Cost Explorer) cobra ~$0.01 por solicitud. No hagas bucles de llamadas a Cost Explorer; almacena en caché los resultados en la sesión y limita a un puñado de llamadas por auditoría.
  • Prioriza: mayor ahorro estimado → menor esfuerzo.
  • Prefiere victorias rápidas (eliminación de inactivos, ajuste de tamaño a uno más pequeño, habilitar uso comprometido donde sea claro).

Helper de fecha portátil

BSD/macOS y GNU/Linux date difieren. Calcula la ventana una vez, de forma portátil, y luego reutiliza $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)

(O simplemente haz que el agente inserte fechas literales YYYY-MM-DD).

Cómo Usar

Indica al agente el/los proveedor(es) y el objetivo. Ejemplos:

  • auditar AWS últimos 30 días
  • encontrar victorias rápidas en GCP y Azure
  • recomendaciones de ajuste de tamaño para todas las nubes

1. Verificación Previa y Autenticación

AWS

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

Registro único (requerido para las secciones 2 y 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 TU_PROYECTO
gcloud billing accounts list

Azure

az account show
az account set --subscription "ID_SUSCRIPCIÓN"

2. Recomendaciones Centralizadas / de Alto Impacto

AWS — Cost Optimization Hub (mejor agregador)

COH es un servicio global accesible solo en us-east-1 y requiere registro (ver Verificación Previa).

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 (fuente principal)

--location es obligatorio. Los recomendadores de VM/inactivos son zonales (ej. us-central1-a); itera por las zonas que uses. El recomendador de compromiso basado en gasto es global y se limita a una cuenta de facturación.

# Ajuste de tamaño de VMs (zonal — repetir por zona)
gcloud recommender recommendations list \
  --recommender=google.compute.instance.MachineTypeRecommender \
  --project=TU_PROYECTO --location=us-central1-a --format=json

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

# Descuentos por Uso Comprometido (global, ámbito de cuenta de facturación)
gcloud recommender recommendations list \
  --recommender=google.cloudbilling.commitment.SpendBasedCommitmentRecommender \
  --billing-account=ID_CUENTA_FACTURACION --location=global --format=json

Otros recomendadores de costos: google.compute.disk.IdleResourceRecommender (discos inactivos), google.compute.address.IdleResourceRecommender (IPs inactivas), google.compute.image.IdleResourceRecommender (imágenes inactivas), google.compute.commitment.UsageCommitmentRecommender (CUD basado en recursos).

Azure — Categoría de Costo de Advisor

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

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

Los campos extendedProperties varían según el tipo de recomendación — maneja valores nulos.

3. Desglose de Costos y Uso

AWS (recuerda el costo de ~$0.01/llamada — no hagas bucles):

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

GCP — el costo/uso detallado proviene de la exportación de BigQuery de facturación (no hay un comando gcloud para filas de costos granulares). Habilita Facturación → exportación a BigQuery, luego consulta gcp_billing_export_resource_v1_<ID_CUENTA_FACTURACION>.

Nota: a partir del 2026-01-21 el esquema de exportación cambió — los descuentos CUD se movieron del array credits a un nuevo campo consumption_model, y se añadieron price.list_price / price.effective_price_default. Actualiza cualquier lógica de CUD/crédito en consecuencia.

Azure — prefiere las exportaciones de Cost Management (o la API de Detalles de Costo) para datos detallados; az consumption está en la ruta de desaprobación de Microsoft (mantén solo como respaldo para una vista rápida):

# Primario: programar/ejecutar una exportación a almacenamiento (una sola vez solo necesita los 5 parámetros obligatorios)
az costmanagement export create \
  --name AdhocExport --type Usage \
  --scope "/subscriptions/ID_SUSCRIPCIÓN" \
  --storage-account-id "/subscriptions/.../storageAccounts/CUENTA" \
  --storage-container exports --timeframe MonthToDate

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

Para agregación ad-hoc sin almacenamiento, llama a la API REST de Query de Cost Management a través de az rest (no hay un subcomando az costmanagement query).

4. Recomendaciones de Ajuste de Tamaño y Cómputo

AWS — Compute Optimizer (requiere registro; ver Verificación Previa). Ajuste de tamaño profundo + detección de inactivos:

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

Cost Explorer también ofrece ajuste de tamaño de EC2 (--service es obligatorio, solo "AmazonEC2" es válido):

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

GCP — recomendador de tipo de máquina (nota tonumber: GCP devuelve cost.units como una cadena):

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

Azure — las recomendaciones de Costo de Advisor ya incluyen ajuste de tamaño de VM/recursos subutilizados (sección 2).

5. Compromisos y Descuentos

AWS — recomendación de compra de Savings Plans. Los cuatro parámetros son obligatorios:

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 — Descuentos por Uso Comprometido a través del recomendador de compromiso basado en gasto (sección 2).

Azure — las recomendaciones de reserva/plan de ahorro surgen a través de Advisor (por suscripción); para el ámbito de cuenta de facturación, usa la API REST de Recomendaciones de Reserva de Consumption a través de az rest:

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

6. Plantilla de Priorización (para cualquier proveedor)

Al resumir:

  1. Ahorro total estimado mensual / anual.
  2. Grupo de victorias rápidas (esfuerzo MuyBajo/Bajo o equivalente).
  3. Top 5-8 elementos: Recurso, Estado actual, Acción recomendada, Ahorro en $, Esfuerzo/riesgo.
  4. Siguiente comando concreto para el elemento principal.
Proveedor: GCP
Ahorro potencial mensual total: $2,340

Victorias rápidas:
- Eliminar VM inactiva ... : $180/mes (MuyBajo)
- Ajustar tamaño de n1-standard-8 → n2-standard-4 : $420/mes

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

Referencia Rápida por Proveedor

AWS

  • Cost Optimization Hub (us-east-1, registrado) para la vista agregada amplia.
  • Compute Optimizer (registrado) para ajuste de tamaño profundo + inactivos.
  • Cost Explorer (aws ce) para desgloses de gasto, ajuste de tamaño, Savings Plans — ten en cuenta el costo por llamada.

GCP

Pasa siempre --location. Recomendadores clave:

  • MachineTypeRecommender (ajuste de tamaño, zonal)
  • IdleResourceRecommender para VMs / discos / IPs / imágenes (zonal/regional)
  • SpendBasedCommitmentRecommender (CUDs, global, cuenta de facturación)

Azure

  • Advisor es la fuente principal para recomendaciones de Costo.
  • Exportaciones de Cost Management (o API de Detalles de Costo) para uso sin procesar; az consumption solo como respaldo obsoleto.

Flujo de Auditoría Completo (Recomendado)

  1. Autenticar; confirmar registros (Compute Optimizer, COH).
  2. Obtener resumen de costos de alto nivel para la ventana.
  3. Obtener recomendaciones (Hub / Recommender / Advisor), agregando todas las páginas.
  4. Filtrar por ahorros > umbral y bajo esfuerzo.
  5. Verificar con uso sin procesar si es necesario.
  6. Producir lista priorizada + 3 acciones concretas siguientes (solo lectura; marcar cualquier mutación para aprobación).
  7. (Opcional) Repetir para otros proveedores.

Referencias

AWS

GCP

Azure


Ejecútalo con un proveedor específico o en los tres. Mantente nativo. Mantente efectivo.

Skills relacionados