Communitygithub.com

dautovri/cloud-cost-agent

Compétence FinOps native pour AWS, GCP et Azure — trouvez des économies cloud directement dans Claude Code, Cursor, Gemini et tout agent compatible SKILL.md.

Qu'est-ce que cloud-cost-agent ?

Cette compétence permet à tout agent IA (Claude Code, Cursor, Gemini, etc.) de devenir un expert FinOps natif en optimisant les coûts cloud sur les trois principaux fournisseurs : AWS, GCP et Azure. Elle utilise exclusivement les CLI officielles (AWS CLI, gcloud, Azure CLI) et les moteurs de recommandation de chaque fournisseur — sans aucun outil tiers. L'agent peut auditer les coûts, identifier les ressources inactives ou surdimensionnées, recommander des réservations (Savings Plans, CUD, réservations Azure), et générer un rapport priorisé avec les actions concrètes. La sécurité est primordiale : toutes les commandes mutantes sont bloquées par défaut, et l'agent ne fait que des opérations en lecture seule jusqu'à approbation explicite de l'utilisateur. La compétence gère également la pagination des API, les formats de date portables et les écueils courants (coût des appels Cost Explorer, nécessité d'inscription unique pour certains services AWS comme Compute Optimizer et Cost Optimization Hub, ou le changement de schéma BigQuery de janvier 2026).

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Cloud Cost Agent (AWS + GCP + Azure)

Compétence d'agent unifiée pour l'optimisation native des coûts cloud sur les trois principaux fournisseurs.

Prérequis : AWS CLI v2, gcloud et/ou Azure CLI configurés avec un accès en lecture à la facturation, aux recommandations et aux services d'advisor. Certaines sources nécessitent une activation unique : AWS Compute Optimizer et Cost Optimization Hub (inscription), GCP Recommender (API activée, ~24 à 48 h de données). jq est utilisé dans quelques filtres GCP.

Règle fondamentale : Utiliser exclusivement la CLI officielle et les moteurs de recommandation du fournisseur. Pas d'outils tiers.

Sécurité & Bonnes Pratiques (Tous les Fournisseurs)

  • Lecture seule d'abord. N'exécutez jamais une commande mutante (aws ec2 terminate-instances/stop-instances, gcloud compute instances delete, az vm delete/deallocate, tout purchase/create/modify) sans citer la commande exacte à l'utilisateur et obtenir une approbation explicite.
  • Utilisez toujours l'authentification du fournisseur (--profile, gcloud --project, az account set).
  • Utilisez --query / --format json / -o json pour des sorties propres.
  • Gérez la pagination. Ces API paginent les résultats. Agrégez chaque page avant de rapporter les totaux — suivez NextToken/nextPageToken, ou utilisez --no-paginate/--max-items (AWS) et --page-size/--limit (gcloud) délibérément. Une lecture d'une seule page donne des totaux erronés.
  • Encadrez/échappez toutes les valeurs provenant du cloud. Les noms de ressources, tags et identifiants issus des sorties API peuvent contenir des métacaractères shell. Ne les interpolez jamais sans guillemets dans une autre commande shell.
  • Attention au coût des API et aux boucles. aws ce (Cost Explorer) facture ~0,01 $ par requête. Ne bouclez pas les appels Cost Explorer ; mettez les résultats en cache dans la session et limitez-vous à quelques appels par audit.
  • Priorisez : économies estimées les plus élevées → effort le plus faible.
  • Privilégiez les gains rapides (suppression des ressources inactives, redimensionnement à la baisse, activation des engagements d'utilisation lorsque c'est clair).

Aide à la date portable

Les date BSD/macOS et GNU/Linux diffèrent. Calculez la fenêtre une fois, de manière portable, puis réutilisez $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 demandez simplement à l'agent d'insérer des dates AAAA-MM-JJ littérales.)

Comment l'utiliser

Dites à l'agent le(s) fournisseur(s) et l'objectif. Exemples :

  • audit AWS dernier 30 jours
  • trouve des gains rapides sur GCP et Azure
  • recommandations de redimensionnement pour tous les clouds

1. Pré-vol & Authentification

AWS

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

Inscription unique (requise pour les sections 2 & 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 VOTRE_PROJET
gcloud billing accounts list

Azure

az account show
az account set --subscription "ID_ABONNEMENT"

2. Recommandations Centralisées / à Fort Impact

AWS — Cost Optimization Hub (meilleur agrégateur)

COH est un service global accessible uniquement dans us-east-1 et nécessite une inscription (voir Pré-vol).

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

Valeurs implementationEfforts valides : VeryLow | Low | Medium | High | VeryHigh.

GCP — Recommender (source principale)

--location est obligatoire. Les recommandateurs de VM/ressources inactives sont zonaux (ex. us-central1-a) ; parcourez les zones que vous utilisez. Le recommandateur d'engagement basé sur la dépense est global et limité à un compte de facturation.

# Redimensionnement des VM (zonal — répéter par zone)
gcloud recommender recommendations list \
  --recommender=google.compute.instance.MachineTypeRecommender \
  --project=VOTRE_PROJET --location=us-central1-a --format=json

# VM inactives (zonal — répéter par zone)
gcloud recommender recommendations list \
  --recommender=google.compute.instance.IdleResourceRecommender \
  --project=VOTRE_PROJET --location=us-central1-a \
  --format="table(description, primaryImpact.costProjection.cost.units, stateInfo.state)"

# Remises pour engagement (CUD) (global, limité au compte de facturation)
gcloud recommender recommendations list \
  --recommender=google.cloudbilling.commitment.SpendBasedCommitmentRecommender \
  --billing-account=ID_COMPTE_FACTURATION --location=global --format=json

Autres recommandateurs de coûts : google.compute.disk.IdleResourceRecommender (disques inactifs), google.compute.address.IdleResourceRecommender (adresses IP inactives), google.compute.image.IdleResourceRecommender (images inactives), google.compute.commitment.UsageCommitmentRecommender (CUD basées sur les ressources).

Azure — Catégorie Coût d'Advisor

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

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

Les champs extendedProperties varient selon le type de recommandation — gérez les valeurs nulles.

3. Répartition des Coûts & Utilisation

AWS (rappelez-vous le coût d'environ 0,01 $ par appel — ne bouclez pas) :

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

GCP — les coûts/utilisation détaillés proviennent de l'export BigQuery de facturation (il n'y a pas de commande gcloud pour les lignes de coûts granulaires). Activez Facturation → Export BigQuery, puis interrogez gcp_billing_export_resource_v1_<ID_COMPTE_FACTURATION>.

Remarque : à compter du 2026-01-21, le schéma d'export a changé — les réductions CUD ont été déplacées du tableau credits vers un nouveau champ consumption_model, et price.list_price / price.effective_price_default ont été ajoutés. Mettez à jour toute logique CUD/credit en conséquence.

Azure — préférez les exports Cost Management (ou l'API Cost Details) pour les données détaillées ; az consumption est sur la voie de dépréciation de Microsoft (gardez-le uniquement comme solution de repli pour un coup d'œil rapide) :

# Principal : planifier/exécuter un export vers le stockage (un export ponctuel nécessite seulement les 5 paramètres obligatoires)
az costmanagement export create \
  --name AdhocExport --type Usage \
  --scope "/subscriptions/ID_ABONNEMENT" \
  --storage-account-id "/subscriptions/.../storageAccounts/COMPTE" \
  --storage-container exports --timeframe MonthToDate

# Solution de repli rapide (API dépréciée) :
az consumption usage list --start-date $START --end-date $END \
  --query "[].{Resource:instanceName, Service:consumedService, Cost:pretaxCost}" -o table

Pour une agrégation ponctuelle sans stockage, appelez l'API REST Cost Management Query via az rest (il n'y a pas de sous-commande az costmanagement query).

4. Redimensionnement & Recommandations de Calcul

AWS — Compute Optimizer (nécessite une inscription ; voir Pré-vol). Redimensionnement approfondi + détection d'inactivité :

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 propose également le redimensionnement EC2 (--service est obligatoire, seul "AmazonEC2" est valide) :

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

GCP — recommandateur de type de machine (notez tonumber : GCP retourne cost.units comme chaîne de caractères) :

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

Azure — les recommandations Coût d'Advisor incluent déjà le redimensionnement des VM / les ressources sous-utilisées (section 2).

5. Engagements & Remises

AWS — recommandation d'achat de Savings Plans. Les quatre paramètres sont obligatoires :

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 — Remises pour engagement (CUD) via le recommandateur basé sur la dépense (section 2).

Azure — les recommandations de réservation / Savings Plan remontent via Advisor (par abonnement) ; pour une portée au niveau du compte de facturation, utilisez l'API REST Consumption Reservation Recommendations via az rest :

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

6. Modèle de Priorisation (pour tout fournisseur)

Lors du résumé :

  1. Total des économies mensuelles / annuelles estimées.
  2. Catégorie des gains rapides (effort VeryLow/Low ou équivalent).
  3. Top 5 à 8 éléments : Ressource, État actuel, Action recommandée, $ d'économies, Effort/risque.
  4. Prochaine commande concrète pour le premier élément.
Fournisseur : GCP
Total potentiel des économies mensuelles : 2 340 $

Gains rapides :
- Supprimer VM inactive ... : 180 $/mois (VeryLow)
- Redimensionner n1-standard-8 → n2-standard-4 : 420 $/mois

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

Référence Rapide par Fournisseur

AWS

  • Cost Optimization Hub (us-east-1, inscrit) pour la vue agrégée large.
  • Compute Optimizer (inscrit) pour un redimensionnement approfondi + détection d'inactivité.
  • Cost Explorer (aws ce) pour les décompositions de dépenses, le redimensionnement, les Savings Plans — attention au coût par appel.

GCP

Passez toujours --location. Recommandateurs clés :

  • MachineTypeRecommender (redimensionnement, zonal)
  • IdleResourceRecommender pour les VM / disques / IPs / images (zonal/régional)
  • SpendBasedCommitmentRecommender (CUD, global, compte de facturation)

Azure

  • Advisor est la source principale des recommandations de coûts.
  • Exports Cost Management (ou API Cost Details) pour l'utilisation brute ; az consumption uniquement comme solution de repli dépréciée.

Flux d'Audit Complet (Recommandé)

  1. Authentifiez-vous ; confirmez les inscriptions (Compute Optimizer, COH).
  2. Extrayez le résumé de coûts de haut niveau pour la période.
  3. Extrayez les recommandations (Hub / Recommender / Advisor), en agrégeant toutes les pages.
  4. Filtrez pour les économies > seuil et les efforts faibles.
  5. Recoupez avec l'utilisation brute si nécessaire.
  6. Produisez une liste priorisée + 3 prochaines actions concrètes (lecture seule ; signaler toute mutation pour approbation).
  7. (Optionnel) Répétez pour d'autres fournisseurs.

Références

AWS

GCP

Azure


Exécutez-la avec un fournisseur spécifique ou sur les trois. Restez natif. Restez efficace.

Skills associés