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, toutpurchase/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 jsonpour 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 jourstrouve des gains rapides sur GCP et Azurerecommandations 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
creditsvers un nouveau champconsumption_model, etprice.list_price/price.effective_price_defaultont é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é :
- Total des économies mensuelles / annuelles estimées.
- Catégorie des gains rapides (effort VeryLow/Low ou équivalent).
- Top 5 à 8 éléments : Ressource, État actuel, Action recommandée, $ d'économies, Effort/risque.
- 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 consumptionuniquement comme solution de repli dépréciée.
Flux d'Audit Complet (Recommandé)
- Authentifiez-vous ; confirmez les inscriptions (Compute Optimizer, COH).
- Extrayez le résumé de coûts de haut niveau pour la période.
- Extrayez les recommandations (Hub / Recommender / Advisor), en agrégeant toutes les pages.
- Filtrez pour les économies > seuil et les efforts faibles.
- Recoupez avec l'utilisation brute si nécessaire.
- Produisez une liste priorisée + 3 prochaines actions concrètes (lecture seule ; signaler toute mutation pour approbation).
- (Optionnel) Répétez pour d'autres fournisseurs.
Références
AWS
- Cost Explorer : https://docs.aws.amazon.com/cli/latest/reference/ce/
- Compute Optimizer : https://docs.aws.amazon.com/cli/latest/reference/compute-optimizer/
- Cost Optimization Hub : https://docs.aws.amazon.com/cost-management/latest/userguide/cost-optimization-hub.html
- Migration des actions IAM de facturation (retrait d'aws-portal) : https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/migrate-granularaccess-iam-mapping-reference.html
GCP
- Liste des recommandateurs : https://cloud.google.com/recommender/docs/recommenders
recommendations list: https://cloud.google.com/sdk/gcloud/reference/recommender/recommendations/list- Export BigQuery de facturation : https://cloud.google.com/billing/docs/how-to/export-data-bigquery
Azure
- Recommandations Advisor : https://learn.microsoft.com/cli/azure/advisor/recommendation
- Exports Cost Management : https://learn.microsoft.com/cli/azure/costmanagement/export
- Migration de l'API Consumption : https://learn.microsoft.com/azure/cost-management-billing/automate/migrate-consumption-usage-details-api
Exécutez-la avec un fournisseur spécifique ou sur les trois. Restez natif. Restez efficace.