Azure & Cloud
Audit FinOps sur Azure : Reprenez le contrôle de vos coûts avec le FinOps Toolkit

Audit FinOps sur Azure : Reprenez le contrôle de vos coûts avec le FinOps Toolkit

On a tous connu ce moment de solitude en découvrant une facture Azure qui a doublé du jour au lendemain. Dans le Cloud, la facilité de déploiement est une arme à double tranchant : si on ne surveille pas l'infrastructure, le gaspillage financier (Cloud Waste) s'accumule à une vitesse folle. C'est ici qu'intervient la démarche FinOps (Financial Operations).

Mais auditer des centaines de groupes de ressources à la main est impossible. Pour industrialiser cette démarche, Microsoft met à disposition une arme redoutable, souvent méconnue : le FinOps Toolkit et ses Azure Workbooks.

Plongeons sous le capot pour comprendre comment structurer votre audit technique.

1. Deep Dive : Qu'est-ce que le FinOps Toolkit et les Workbooks ?

Le FinOps Toolkit est un projet open-source soutenu par Microsoft. Il rassemble des scripts, des rapports Power BI et surtout des Azure Workbooks (classeurs Azure).

Contrairement à l'interface classique Cost Management qui se base uniquement sur la facturation, les Workbooks du FinOps Toolkit s'appuient massivement sur Azure Resource Graph (ARG) et le langage KQL (Kusto Query Language). Cela change tout : au lieu de simplement voir que vous dépensez "1000€ en stockage", le Workbook croise les données financières avec les métriques techniques de vos ressources. Il peut ainsi corréler un disque de 1 To avec le fait qu'il n'est rattaché à aucune machine virtuelle depuis 30 jours, ou identifier une base de données SQL dont le CPU ne dépasse jamais 2%.

Le Cost Optimization Workbook (inclus dans le toolkit) est la pierre angulaire de votre audit. Il cartographie votre infrastructure selon les trois piliers du FinOps :

  • Inform : Visibilité sur ce qui tourne et à qui cela appartient (via les Tags).

  • Optimize : Identification des ressources surdimensionnées (Right-sizing) ou inutiles.

  • Operate : Suivi des recommandations et application des Azure Hybrid Benefits (AHB) ou des instances réservées (RI).

2. Méthodologie d'Audit : Les 3 fuites de budget à traquer en priorité

Lors de votre audit avec le Workbook, voici les éléments techniques à cibler immédiatement :

  1. Les ressources orphelines (Orphaned Resources) : C'est le gain rapide par excellence. Lorsqu'un administrateur supprime une VM, il oublie souvent de cocher la case pour supprimer le disque managé, l'adresse IP publique (PIP) ou la carte réseau (NIC) associée. Ces ressources continuent d'être facturées à plein tarif.

  2. Le surdimensionnement (Right-sizing) : Le Workbook analyse les métriques Azure Monitor. Si une VM série D (General Purpose) consomme moins de 5% de CPU et de RAM sur le mois écoulé, elle doit être rétrogradée (downgrade) vers une série B (Burstable), beaucoup moins chère.

  3. Le licensing dormant : Avez-vous des licences Windows Server On-Premise avec Software Assurance ? Si oui, l'Azure Hybrid Benefit (AHB) permet de ne payer que le compute Linux pour vos VM Windows. Le Workbook met en évidence les machines éligibles où cette case n'a pas été cochée.

3. Script et mise en pratique

Bien que les Workbooks soient visuellement excellents, vous aurez souvent besoin d'exporter ces données ou de les intégrer dans vos pipelines CI/CD. Puisque les Workbooks utilisent Azure Resource Graph, nous pouvons interroger la même API avec PowerShell.

Voici un script indispensable pour tout ingénieur Cloud. Il interroge l'Azure Resource Graph pour lister tous les disques managés orphelins (qui ne sont rattachés à aucune VM) et qui vous coûtent de l'argent chaque jour :

PowerShell
# Prérequis : Install-Module Az.ResourceGraph
Connect-AzAccount

Write-Host "Recherche des disques orphelins (Unattached) sur votre tenant..." -ForegroundColor Cyan

# Requête KQL exécutée via PowerShell pour une exécution ultra-rapide
$query = @"
Resources 
| where type == 'microsoft.compute/disks' 
| where properties.diskState == 'Unattached' 
| project ResourceGroup, NomDuDisque = name, TailleGB = properties.diskSizeGB, SKU = sku.name, Localisation = location
| order by TailleGB desc
"@

# Exécution de la requête
$orphanedDisks = Search-AzGraph -Query $query

if ($orphanedDisks) {
    $orphanedDisks | Format-Table -AutoSize
    Write-Warning "Attention : Ces disques ne sont pas utilisés mais sont toujours facturés."
} else {
    Write-Host "Bravo ! Aucun disque orphelin détecté." -ForegroundColor Green
}

Note: Vous pouvez adapter la requête KQL (where type == 'microsoft.network/publicipaddresses') pour chercher les IP publiques non assignées.

4. Références officielles Microsoft

Pour déployer le FinOps Toolkit dans votre tenant et maîtriser ces concepts, je vous invite à consulter ces ressources incontournables :

Conclusion

Faire du FinOps ne se résume pas à lire une facture Excel en fin de mois. C'est une discipline d'ingénierie continue. Le FinOps Toolkit et ses Workbooks vous fournissent l'interface visuelle pour comprendre votre dette technique, tandis que des requêtes ciblées via PowerShell vous permettent de nettoyer le terrain.

MAKHZOUM Hussein
Auteur
MAKHZOUM Hussein
Consultant Cloud & Infrastructure Engineer
Voir le profil

Articles similaires