💻 Développement

dev-cloud-cost-optimizer

Optimise les coûts cloud (Azure, AWS, GCP) avec workflow FinOps structuré — audit, right-sizing, réservations, Spot, stockage, scheduling, monitoring.

⚡ Installation & lancement en 1 commande

Copiez-collez dans votre terminal : le skill s'installe dans ~/.claude/skills et Claude Code se lance directement dessus.

macOS / Linux
curl -fsSL https://raw.githubusercontent.com/khalilbenaz/claude-skills-collection/main/install.sh | sh -s -- dev-cloud-cost-optimizer --launch
Windows (PowerShell)
iex "& { $(iwr -useb https://raw.githubusercontent.com/khalilbenaz/claude-skills-collection/main/install.ps1) } dev-cloud-cost-optimizer -Launch"

🚀 Déjà installé ?

claude "/dev-cloud-cost-optimizer"

Ou tapez /dev-cloud-cost-optimizer dans une session Claude Code, ou décrivez simplement votre besoin — le skill se déclenche automatiquement via le skill-router.

🔑 Déclencheurs automatiques

Le skill s'active automatiquement quand votre demande contient :

coût cloudfacture AzureAWS billoptimiser les coûtsréduire la facturereserved instancesFinOpscloud spending

📦 Installation manuelle

git clone https://github.com/khalilbenaz/claude-skills-collection.git cp -r claude-skills-collection/skills/dev-cloud-cost-optimizer ~/.claude/skills/

Payload du plugin : skills/dev-cloud-cost-optimizer · source éditable : dev-skills/cloud-cost-optimizer

📖 Manuel

Cloud Cost Optimizer

Workflow en 8 étapes

1. Audit initial — inventaire & baseline

Collecte le coût mensuel réel par ressource avant toute action.

AWS

# Export Cost Explorer par service (derniers 30 jours)
aws ce get-cost-and-usage \
  --time-period Start=2026-05-24,End=2026-06-24 \
  --granularity MONTHLY \
  --metrics BlendedCost \
  --group-by Type=DIMENSION,Key=SERVICE \
  --output table

Azure

# Résumé de facturation par groupe de ressources
az consumption usage list \
  --start-date 2026-05-24 --end-date 2026-06-24 \
  --query "[].{Resource:instanceName, Cost:pretaxCost, Currency:currency}" \
  --output table

GCP

# Export vers BigQuery (recommandé) — requête sur le dataset billing
bq query --use_legacy_sql=false '
SELECT service.description, SUM(cost) AS total_cost
FROM `PROJECT.DATASET.gcp_billing_export_v1_*`
WHERE _PARTITIONTIME BETWEEN "2026-05-24" AND "2026-06-24"
GROUP BY 1 ORDER BY 2 DESC LIMIT 20'
Critère de déclenchement : si une ressource représente > 5 % de la facture totale, elle mérite une analyse dédiée.

2. Identifier les ressources sous-utilisées (idle / oversized)

Critères d'alerte :

SignalSeuilAction
CPU moyen sur 14 j< 10 %Downsize ou arrêt
Mémoire utilisée< 20 %Downsize
Volume EBS/Disk non attaché> 7 jSnapshot + suppression
IP publique non associéetoute duréeLibérer
DB connections actives0 sur 7 jArrêt planifié

AWS — lister les EBS volumes détachés

aws ec2 describe-volumes \
  --filters Name=status,Values=available \
  --query "Volumes[*].{ID:VolumeId, Size:Size, Type:VolumeType}" \
  --output table

Azure — VMs avec CPU < 10 % (Advisor)

az advisor recommendation list \
  --category Cost \
  --query "[?shortDescription.problem=='Right-size or shutdown underutilized virtual machines']" \
  --output table

3. Right-sizing

Utiliser les recommandations natives avant de choisir manuellement.

Règle de décision :

Terraform — changer le type d'instance sans recréer la ressource

resource "aws_instance" "api" {
  instance_type = "t3.small"  # Était t3.medium
  # ...
  lifecycle { create_before_destroy = true }
}

4. Reserved Instances & Savings Plans

Matrice de décision :

CasRecommandation
Workload stable 24/7, même région, même familleRI 1 an (Standard) — jusqu'à 40 %
Workload stable mais famille/région variableSavings Plan Compute — jusqu'à 66 %
Engagement fort, 3 ans, paiement anticipéRI 3 ans — jusqu'à 72 %
Workload imprévisibleOn-demand ou Spot

Calcul ROI rapide (AWS)

# Estimation des économies Savings Plans sur 1 an
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

Ne pas acheter de réservations avant d'avoir au moins 30 jours d'historique de charge stable.


5. Spot / Preemptible instances

Workloads compatibles Spot :

Non compatibles : bases de données stateful, services critiques sans failover.

AWS — Auto Scaling Group avec mix Spot/On-demand

{
  "MixedInstancesPolicy": {
    "InstancesDistribution": {
      "OnDemandPercentageAboveBaseCapacity": 20,
      "SpotAllocationStrategy": "capacity-optimized"
    }
  }
}

Azure — VMSS avec Spot

az vmss create --name myVMSS --resource-group myRG \
  --priority Spot --eviction-policy Deallocate \
  --max-price -1  # prix marché

Toujours configurer un interruption handler (SIGTERM sur AWS, Azure Scheduled Events).


6. Optimiser le stockage

Lifecycle policies — S3

{
  "Rules": [{
    "Status": "Enabled",
    "Transitions": [
      { "Days": 30, "StorageClass": "STANDARD_IA" },
      { "Days": 90, "StorageClass": "GLACIER_IR" },
      { "Days": 365, "StorageClass": "DEEP_ARCHIVE" }
    ],
    "NoncurrentVersionExpiration": { "NoncurrentDays": 30 }
  }]
}

Azure Blob — lifecycle (Bicep)

resource lifecyclePolicy 'Microsoft.Storage/storageAccounts/managementPolicies@2023-01-01' = {
  name: 'default'
  properties: {
    policy: {
      rules: [{
        name: 'tiering'
        type: 'Lifecycle'
        definition: {
          actions: { baseBlob: { tierToCool: { daysAfterModificationGreaterThan: 30 }
                               , tierToArchive: { daysAfterModificationGreaterThan: 90 } } }
          filters: { blobTypes: ['blockBlob'] }
        }
      }]
    }
  }
}

Supprimer les snapshots orphelins : vérifier que le volume source existe encore avant tout nettoyage.


7. Auto-scaling & scheduling

Scale-to-zero pour tous les workloads non-continus :

Arrêt automatique des envs dev/staging (économies 65-75 %)

# AWS — Lambda schedulée via EventBridge (arrêt le soir, démarrage le matin)
aws events put-rule --schedule-expression "cron(0 19 ? * MON-FRI *)" \
  --name "StopDevInstances"

# Azure — Start/Stop VMs v2 (solution native gratuite)
az deployment group create --resource-group myRG \
  --template-uri https://aka.ms/startstopv2deploy

Kubernetes — scale down la nuit

# kube-downscaler ou KEDA
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
spec:
  minReplicaCount: 0
  scaleTargetRef:
    name: api-deployment

8. Monitoring continu & FinOps

Tagging strategy — obligatoire pour l'attribution des coûts

Environment: prod | staging | dev
Team: backend | frontend | data
Project: rivora | access | wfc
CostCenter: 1234

Budgets avec alertes (AWS)

aws budgets create-budget --account-id 123456789 --budget '{
  "BudgetName": "monthly-prod",
  "BudgetLimit": {"Amount": "5000", "Unit": "USD"},
  "TimeUnit": "MONTHLY",
  "BudgetType": "COST"
}' --notifications-with-subscribers '[{
  "Notification": {"NotificationType":"ACTUAL","ComparisonOperator":"GREATER_THAN","Threshold":80},
  "Subscribers": [{"SubscriptionType":"EMAIL","Address":"devops@company.com"}]
}]'

Azure Cost Anomaly Detection

az costmanagement alert create --scope /subscriptions/{sub-id} \
  --name anomaly-alert --type Anomaly

Revue mensuelle obligatoire : comparer la facture N vs N-1, valider les recommandations Advisor/Compute Optimizer non traitées.


Garde-fous & anti-patterns

Anti-patternRisqueCorrection
Supprimer directement les ressources idlePerte de données, rollback impossibleSnapshot → désactivation → suppression après 7 j
Acheter des RI sans historique stableSurengagement inutileAttendre 30 j, commencer par Savings Plans flexibles
Spot pour les BDD ou services statefulPerte de données sur evictionOn-demand obligatoire pour stateful
Ignorer le coût réseau (egress)Facture cachée massiveAuditer le trafic inter-régions et vers internet
Tags inconsistants ou absentsImpossible d'imputer les coûtsEnforcer via Azure Policy / AWS SCP / GCP Org Policy
Over-provisioning "au cas où"40-60 % de gaspillage courantRight-sizing + auto-scaling, jamais de marge fixe > 30 %
Optimiser dev/staging avant prodGains marginaux, risques réels en prodPrioriser : prod > staging > dev

Ordre de priorité recommandé

  1. Quick wins (< 1 semaine) : idle resources, IPs inutilisées, snapshots orphelins, arrêt env dev la nuit
  2. Medium term (1-4 semaines) : right-sizing, lifecycle storage, auto-scaling
  3. Long term (> 1 mois) : réservations 1 an, refactoring vers serverless, architecture multi-region optimisée