Dans la continuité du post précédent sur mon outil CLI d’analyse de coûts à partir d’export FOCUS, je vous propose aujourd’hui de découvrir Infracost.

Il permet de Shift Left (terme souvent utilisé en FinOps) en intégrant la prévision des coûts directement dans le workflow de développement, en particulier lors de l’utilisation d’Infrastructure as Code (IaC) comme Terraform.

Mise en place

Installation

Windows

choco install infracost

Mac/Linux

brew install infracost

Validation

infracost –version #retourne 2.9.x

API Key

Il est possible d’expérimenter gratuitement l’outil en récupèrant une clé d’API.

infracost setup

Suivez les instructions pour créer un compte et obtenir votre clé d’API.

Premier scan

Pour tester l’outil je l’ai implémenté dans mon projet fil rouge TheForge en CLI pour démarrer.

Infracost first scan

Pour avoir plus de détails :

infracost inspect --failing

Failing policies  (1 policy · 1 resource)

⚙️  Compute - consider using current generation machine types
   google_container_node_pool.primary_nodes · gke.tf:25
   N1s are first-generation general purpose VMs. For most use-cases (excluding GPU workloads), Google recommends one of
   their second-generation types such as:
   
   - **E2** offers the lowest total cost of ownership with up to 31% savings compared to N1.
   - **N2** uses 2nd Gen Intel Xeon Scalable Processors (Cascade Lake) and offers a greater than 20% price-performance
   improvement for many workloads and support up to 25% more memory per vCPU.
   - **N2D** uses latest 2nd Gen AMD EPYC (Rome) CPUs, and support the highest core count and memory of any
   general-purpose Compute Engine VM.

Le message est explicite, le template Terraform utilisé pour créer le cluster GKE est obsolète et il est recommandé d’utiliser un type de machine plus récent pour réduire les coûts. Fixons cette erreur.

En utilisant le calculateur de côuts GCP j’obtiens un tarif de 39$/mois pour une machine n1-standard-1 (1 vCPU, 3.75 GB RAM) et 27$/mois pour une machine e2-medium (1 vCPU, 4 GB RAM) et jusqu’à 13$/mois en basculant sur des machines “spot”.

C’est cette dernière option que j’ai choisie car il s’agit d’un cluster de test, nous verrons un peu plus loin le résultat.

Quelques features

CLI

Sa CLI est plutôt bien fournie et dispose notamment de nombreuses fonctionnalités telles que :

infracost inspect --group-by resource  Show every resource sorted by cost
infracost inspect --failing  Show only failing policies
infracost inspect --group-by policy  Group results by policy
infracost inspect --policy <name>  Drill into a specific policy
infracost inspect --diagnostics  Show warning-severity diagnostics from this scan
infracost inspect --json  Re-run with full JSON output

Vous noterez que certaines commandes sont similaires à celles de l’outil FOCUS que j’ai présenté dans le post précédent, la grande différence étant qu’Infracost fait des estimations de coûts à partir de l’IaC là où ma CLI se base sur les coûts réels. Les deux outils ont des similarités mais sont complémentaires.

Dashboard

Infracost propose également une interface web dashboard pour visualiser les coûts et vos politiques FinOps.

Agents IA

Infracost s’intègre avec vos agents IA, vous pouvez ainsi donner accès à Claude / Copilot accès à votre organisation pour qu’ils puissent vous aider à analyser vos coûts et vos politiques FinOps.

Claude

claude plugin marketplace add infracost/agent-skills claude plugin install infracost@infracost

Copilot

copilot plugin marketplace add infracost/agent-skills copilot plugin install infracost@infracost

puis Give me a full cost breakdown of this project and highlight the most expensive resources.

Extension IDE

  • VsCode : ext install Infracost.infracost
  • JetBrains : https://plugins.jetbrains.com/plugin/24761-infracost

Integration CI/CD

Enfin, il est possible d’intégrer ces scans dans des pipelines de CI/CD et d’intégrer le rapport dans vos revues de PR. Infracost bénéficie d’une intégration native avec GitHub Actions, GitLab CI/CD et Azure Pipelines si vous avez suivi l’étape de setup vous devriez en bénéficier par défaut.

Sinon il est également possible d’ implémenter manuellement les scans dans vos pipelines.

Enfin, le fichier de configuration infracost.yml permet de personnaliser le comportement de l’outil et des scans.

Résultat après avoir corrigé les remontées du scan précédent et poussé une PR : Infracost Github Integrations

Pour aller plus loin

Comme nous l’avons vu, Infracost est un outil complet pour mettre en place une stratégie FinOps et “Shift Left” dans vos projets IaC. Il est possible d’aller plus loin et d’avoir une vision globale de vos coûts cloud à travers vos différents repository. Infracost est aussi capable de vous accompagner sur la stratégie de tagging de vos ressources et de mener des itérations FinOps “Campaigns” dans une optique d’amélioration continue.

N’hésitez pas à consulter la documentation officielle pour découvrir toutes les fonctionnalités et possibilités offertes par Infracost.