Skip to content
Back to skills

Cloud Cost Optimizer

ASecurity

Optimise les coûts cloud (Azure, AWS, GCP) avec workflow FinOps structuré — audit, right-sizing, réservations, Spot, stockage, scheduling, monitoring. Se déclenche avec "coût cloud", "facture Azure", "AWS bill", "optimiser les coûts", "réduire la facture", "reserved instances", "FinOps", "cloud spending". Also triggers on "reduce cloud bill", "rightsizing instances".

  • 27 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 18, 2026
devopsgobashsqlvueexpresskubernetesawsgcpazureterraform

Works with

  • api

Security analysis

A100/100

Scanned October 18, 2026

npx -y skills add khalilbenaz/claude-skills-collection --skill cloud-cost-optimizer --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Cloud Cost Optimizer?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Cloud Cost Optimizer
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/khalilbenaz-cloud-cost-optimizer/badge)](https://www.skillsdirectory.com/skills/khalilbenaz-cloud-cost-optimizer)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: cloud-cost-optimizer
description: Optimise les coûts cloud (Azure, AWS, GCP) avec workflow FinOps structuré — audit, right-sizing, réservations, Spot, stockage, scheduling, monitoring. Se déclenche avec "coût cloud", "facture Azure", "AWS bill", "optimiser les coûts", "réduire la facture", "reserved instances", "FinOps", "cloud spending". Also triggers on "reduce cloud bill", "rightsizing instances".
---

# 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**
```bash
# 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**
```bash
# 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**
```bash
# 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 :**
| Signal | Seuil | Action |
|---|---|---|
| CPU moyen sur 14 j | < 10 % | Downsize ou arrêt |
| Mémoire utilisée | < 20 % | Downsize |
| Volume EBS/Disk non attaché | > 7 j | Snapshot + suppression |
| IP publique non associée | toute durée | Libérer |
| DB connections actives | 0 sur 7 j | Arrêt planifié |

**AWS — lister les EBS volumes détachés**
```bash
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)**
```bash
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.

- **AWS** : Compute Optimizer → export CSV des recommandations EC2/RDS/Lambda
- **Azure** : Advisor → blade "Cost" → recommandations VM/SQL
- **GCP** : Recommender API → `gcloud recommender recommendations list --recommender=google.compute.instance.MachineTypeRecommender`

Règle de décision :
- Downsize si l'utilisation peak sur 14 j < 40 % de la capacité provisionnée.
- Ne pas descendre en dessous de la P95 de la charge (éviter les throttlings).
- Tester sur staging avant de migrer la prod.

**Terraform — changer le type d'instance sans recréer la ressource**
```hcl
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 :**
| Cas | Recommandation |
|---|---|
| Workload stable 24/7, même région, même famille | RI 1 an (Standard) — jusqu'à 40 % |
| Workload stable mais famille/région variable | Savings Plan Compute — jusqu'à 66 % |
| Engagement fort, 3 ans, paiement anticipé | RI 3 ans — jusqu'à 72 % |
| Workload imprévisible | On-demand ou Spot |

**Calcul ROI rapide (AWS)**
```bash
# 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 :**
- CI/CD (GitHub Actions runners, GitLab runners)
- Batch processing, ETL, ML training
- Environnements de dev/test
- Rendering, transcoding

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

**AWS — Auto Scaling Group avec mix Spot/On-demand**
```json
{
  "MixedInstancesPolicy": {
    "InstancesDistribution": {
      "OnDemandPercentageAboveBaseCapacity": 20,
      "SpotAllocationStrategy": "capacity-optimized"
    }
  }
}
```

**Azure — VMSS avec Spot**
```bash
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**
```json
{
  "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)**
```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 :
- AWS Lambda, ECS Fargate (scale to 0 tasks)
- Azure Container Apps (min replicas: 0)
- GCP Cloud Run (concurrency 0)

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

```bash
# 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**
```yaml
# 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)**
```bash
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**
```bash
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-pattern | Risque | Correction |
|---|---|---|
| Supprimer directement les ressources idle | Perte de données, rollback impossible | Snapshot → désactivation → suppression après 7 j |
| Acheter des RI sans historique stable | Surengagement inutile | Attendre 30 j, commencer par Savings Plans flexibles |
| Spot pour les BDD ou services stateful | Perte de données sur eviction | On-demand obligatoire pour stateful |
| Ignorer le coût réseau (egress) | Facture cachée massive | Auditer le trafic inter-régions et vers internet |
| Tags inconsistants ou absents | Impossible d'imputer les coûts | Enforcer via Azure Policy / AWS SCP / GCP Org Policy |
| Over-provisioning "au cas où" | 40-60 % de gaspillage courant | Right-sizing + auto-scaling, jamais de marge fixe > 30 % |
| Optimiser dev/staging avant prod | Gains marginaux, risques réels en prod | Prioriser : 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

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.