DevOpsFacile
AccueilParcours de formationCertificationsModulesCheat SheetÀ Propos
DevOpsFacile

Une plateforme d'apprentissage complète pour maîtriser les pratiques DevOps modernes, du débutant à l'expert.

contact@devopsfacile.fr

Formation

  • Parcours de formation
  • Modules

Informations

  • À Propos
  • Conditions d'utilisation
  • Confidentialité
  • Mentions légales

© 2026 DevOps Facile. Tous droits réservés.

Fait avec pour la communauté DevOps

ModulesAzure - Avancé : AKS avancé, Azure DevOps et gouvernance09 - Optimisation des coûts avec Azure Cost Management

Détails

  • 35 minutes
  • Avancé

Objectifs

  • Analyser les coûts Azure par service, groupe de ressources et tag
  • Créer des budgets avec alertes automatiques
  • Identifier les ressources sous-utilisées avec Azure Advisor
  • Configurer des recommandations de réduction de coûts
Module Azure - Avancé : AKS avancé, Azure DevOps et gouvernance

Exercice 09 : Optimisation des coûts avec Azure Cost Management

🎯 Objectifs

À la fin de cet exercice, vous serez capable de :

  • ✅ Naviguer dans Azure Cost Management + Billing et analyser les dépenses
  • ✅ Créer un budget avec alertes par email à 80% et 100%
  • ✅ Utiliser Azure Advisor pour identifier les ressources sur-dimensionnées
  • ✅ Estimer les coûts d'une architecture avec la calculatrice Azure

Durée estimée : 35 minutes

Difficulté : ⭐⭐⭐⭐☆ (Avancé)

Prérequis : Accès Cost Management (Owner ou Contributor + Billing Reader)


📖 Contexte

Le "cloud sprawl" (prolifération non contrôlée de ressources cloud) est la première cause de dépassements budgétaires. Des VMs allumées le week-end sans personne, des disques orphelins non attachés, des load balancers vides... Azure Cost Management + Billing vous donne la visibilité et les outils pour contrôler vos dépenses.


📋 Énoncé

Analysez vos coûts, créez un budget et identifiez des opportunités d'optimisation.


🧭 Déroulement de l'exercice

Tâche 1 : Analyser les coûts dans le portail

  1. Portail Azure → rechercher "Cost Management + Billing"
  1. Dans "Cost Management" :
  • Analyse des coûts → vue par service
  • Changer la période : "Ce mois-ci" vs "Mois dernier"
  • Regrouper par : Service, puis par Groupe de ressources, puis par Tag
  1. Créer une vue personnalisée :
  • Filtre : Resource Group = vos groupes de ressources d'exercice
  • Granularité : Mensuelle
  • Sauvegarder cette vue
bash
# Via CLI : voir les coûts par service sur les 30 derniers jours
az costmanagement query \
  --type Usage \
  --scope "/subscriptions/$(az account show --query id -o tsv)" \
  --dataset-aggregation '{"totalCost":{"name":"PreTaxCost","function":"Sum"}}' \
  --dataset-grouping '[{"name":"ServiceName","type":"Dimension"}]' \
  --timeframe MonthToDate \
  --query 'rows[*]' \
  --output table

Tâche 2 : Créer un budget avec alertes

bash
SUBSCRIPTION_ID=$(az account show --query id -o tsv)
SCOPE="/subscriptions/$SUBSCRIPTION_ID"

# Créer un budget mensuel de 50€ avec alertes
cat > budget-config.json << 'EOF'
{
  "category": "Cost",
  "amount": 50,
  "timeGrain": "Monthly",
  "timePeriod": {
    "startDate": "2024-01-01T00:00:00Z"
  },
  "notifications": {
    "alerte-80-pourcent": {
      "enabled": true,
      "operator": "GreaterThanOrEqualTo",
      "threshold": 80,
      "contactEmails": ["votre-email@exemple.com"],
      "thresholdType": "Actual"
    },
    "alerte-100-pourcent": {
      "enabled": true,
      "operator": "GreaterThanOrEqualTo",
      "threshold": 100,
      "contactEmails": ["votre-email@exemple.com"],
      "thresholdType": "Actual"
    },
    "prevision-100-pourcent": {
      "enabled": true,
      "operator": "GreaterThanOrEqualTo",
      "threshold": 100,
      "contactEmails": ["votre-email@exemple.com"],
      "thresholdType": "Forecasted"
    }
  }
}
EOF

az consumption budget create \
  --budget-name "budget-mensuel-50euros" \
  --scope $SCOPE \
  --amount 50 \
  --time-grain Monthly \
  --start-date "2024-01-01" \
  --end-date "2026-12-31" \
  --resource-group-filter "rg-exercice"

# Voir les budgets
az consumption budget list --scope $SCOPE --output table

Indice : Les alertes de budget ne coupent pas automatiquement les ressources (contrairement à AWS). Ce sont des notifications qui vous permettent d'agir. Pour arrêter automatiquement des VMs selon un budget, vous devez créer des Azure Automation Runbooks ou des Logic Apps déclenchés par les alertes.


Tâche 3 : Utiliser Azure Advisor pour l'optimisation

Azure Advisor analyse votre utilisation et propose des recommandations catégorisées.

bash
# Récupérer les recommandations Advisor (toutes catégories)
az advisor recommendation list \
  --query '[*].{Categorie:category,Impact:impact,Description:shortDescription.problem}' \
  --output table

# Filtrer sur les recommandations de coût seulement
az advisor recommendation list \
  --category Cost \
  --query '[*].{Impact:impact,Ressource:resourceMetadata.resourceId,Description:shortDescription.problem}' \
  --output table

Dans le portail Azure :

  1. Rechercher "Azure Advisor"
  2. Onglet Coût : VM sous-dimensionnées ou sur-dimensionnées, disques non attachés...
  3. Onglet Haute disponibilité : ressources sans zone de disponibilité, sans sauvegarde
  4. Onglet Sécurité : ressources sans chiffrement, sans MFA...

Tâche 4 : Estimer les coûts d'une nouvelle architecture

Avant de déployer, estimez les coûts avec la calculatrice Azure.

  1. Aller sur https://azure.microsoft.com/fr-fr/pricing/calculator/
  1. Construire cette architecture de test :
  • 1× VM Standard_B2s (2 vCPU, 4 Go) - Linux - France Centre
  • 1× Azure SQL Database - Basic tier - 5 DTU
  • 1× Bandwidth sortant 100 Go/mois
  • 1× Azure Blob Storage 50 Go - LRS - France Centre
  1. Exporter l'estimation en PDF
bash
# Via CLI : voir les prix actuels d'une VM
az vm list-skus \
  --location francecentral \
  --size Standard_B2s \
  --query '[*].{Taille:name,vCPU:capabilities[?name==`vCPUs`].value|[0],RAM:capabilities[?name==`MemoryGB`].value|[0]}' \
  --output table

Tâche 5 : Stratégies d'optimisation des coûts

bash
# Identifier les disques non attachés (payants même sans VM)
az disk list \
  --query '[?diskState==`Unattached`].{Nom:name,Taille:diskSizeGb,RG:resourceGroup}' \
  --output table

# Identifier les IPs publiques non utilisées (payantes)
az network public-ip list \
  --query '[?ipConfiguration==null].{Nom:name,RG:resourceGroup}' \
  --output table

# Identifier les load balancers sans backend (payants)
az network lb list \
  --query '[*].{Nom:name,BackendPools:backendAddressPools|length(@)}' \
  --output table

✅ Vérification du résultat

  • L'analyse des coûts montre la répartition par service dans le portail
  • Un budget de 50€/mois est créé avec alertes à 80% et 100%
  • az advisor recommendation list --category Cost retourne au moins une recommandation
  • La calculatrice Azure montre une estimation pour l'architecture proposée

💡 À retenir

Top 5 des coûts cachés Azure :

RessourceCoûts même quand "inutilisée"
VM arrêtée (Stopped)Disque + IP publique
Disque non attachéStockage complet facturé
IP publique non utilisée~3-4€/mois
Load Balancer vide~15-20€/mois
ExpressRouteFacturation fixe mensuelle

Réductions tarifaires possibles :

  • Reserved Instances : -40% à -70% (engagement 1 ou 3 ans)
  • Azure Hybrid Benefit : licences Windows Server existantes
  • Spot VMs : -60% à -90% (VMs interruptibles)
  • Dev/Test subscriptions : tarifs réduits pour les environnements non-prod

✨ Solution Complète

bash
# Nettoyage rapide des ressources coûteuses inutilisées
# Disques non attachés
az disk list --query '[?diskState==`Unattached`].id' -o tsv | \
  xargs -I {} az disk delete --ids {} --yes

# IPs publiques non utilisées
az network public-ip list --query '[?ipConfiguration==null].id' -o tsv | \
  xargs -I {} az network public-ip delete --ids {}
Retour au module

Sur cette page

  • 🎯 Objectifs
  • 📖 Contexte
  • 📋 Énoncé
  • 🧭 Déroulement de l'exercice
  • Tâche 1 : Analyser les coûts dans le portail
  • Tâche 2 : Créer un budget avec alertes
  • Tâche 3 : Utiliser Azure Advisor pour l'optimisation
  • Tâche 4 : Estimer les coûts d'une nouvelle architecture
  • Tâche 5 : Stratégies d'optimisation des coûts
  • ✅ Vérification du résultat
  • 💡 À retenir
  • ✨ Solution Complète