Aller au contenu principal

Infracost

Overview

Infracost, c'est l'outil open-source qui pense que savoir combien ça va coûter avant de déployer, c'est mieux. Il analyse tes fichiers d'Infrastructure as Code (Terraform, CloudFormation, Pulumi, etc.) et te donne une estimation détaillée des coûts mensuels et annuels pour les ressources cloud (AWS, Azure, GCP). Si tu veux savoir combien ça va coûter avant de déployer, c'est parfait.

Infracost s'intègre directement dans ton workflow de développement, permettant de voir l'impact financier des changements d'infrastructure avant même de les déployer. Ligne de commande, pipelines CI/CD, intégrations avec GitHub, GitLab, tout y passe.

Infracost se distingue par son support multi-providers (AWS, Azure, GCP, tout y passe), son intégration native avec les outils IaC (comme si c'était fait pour), et son utilité pour la prise de décision avant déploiement (tu sais combien ça coûte avant de déployer).


Informations essentielles

PropriétéValeur
Site officielhttps://www.infracost.io/
Repositoryhttps://github.com/infracost/infracost
LicenceApache 2.0
LangageGo
Providers supportésAWS, Azure, GCP, Datadog, New Relic, etc.
Formats IaCTerraform, CloudFormation, Pulumi, Terragrunt, CDKTF

Fonctionnalités principales

Estimation des coûts avant déploiement

  • Analyse des fichiers Terraform, CloudFormation, Pulumi
  • Estimation des coûts mensuels et annuels
  • Détection des changements de coûts entre versions
  • Support des réservations et des remises

Intégration CI/CD

  • Commentaires automatiques sur les pull requests
  • Comparaison des coûts entre branches
  • Alertes sur les augmentations de coûts significatives
  • Intégration avec GitHub Actions, GitLab CI, CircleCI, etc.

Dashboard et reporting

  • Dashboard cloud pour visualiser les coûts
  • Rapports détaillés par projet, environnement, équipe
  • Historique des coûts et tendances
  • Export des données pour analyse

Multi-providers

  • Support AWS, Azure, GCP
  • Base de données de prix à jour
  • Support des régions multiples
  • Calcul des coûts de transfert de données

Cas d'usage

  • Estimation avant déploiement : Voir les coûts avant de créer des ressources
  • Review de code : Intégrer les coûts dans le processus de review
  • Optimisation : Identifier les ressources coûteuses et les alternatives
  • Budgétisation : Estimer les budgets pour les nouveaux projets
  • Gouvernance : Mettre en place des contrôles de coûts dans les pipelines

Installation

Via Homebrew (macOS/Linux)

brew install infracost

Via script d'installation

curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | sh

Via Docker

docker pull infracost/infracost:latest

Utilisation basique

Estimation des coûts d'un projet Terraform

# Analyser un répertoire Terraform
infracost breakdown --path ./terraform.

# Comparer deux versions
infracost diff --path ./terraform --compare-to ./terraform-old.

# Générer un rapport JSON
infracost breakdown --path ./terraform --format json

Intégration GitHub Actions

- name: Setup Infracost
uses: infracost/actions/setup@v2
with:
api-key: ${{ secrets.INFRACOST_API_KEY }}

- name: Generate Infracost cost estimate
run: |
infracost breakdown --path ./terraform \
--format json \
--out-file infracost.json

- name: Post Infracost comment
uses: infracost/actions/comment@v2
with:
path: infracost.json

Avantages

  • Open-source : code source disponible et communauté active, tu ne seras pas seul
  • Multi-providers : support AWS, Azure, GCP, tu choisis où tu es
  • Intégration native : s'intègre facilement dans les workflows existants, pas besoin de tout refaire
  • Prévision précise : base de données de prix régulièrement mise à jour, tu as les prix à jour
  • CI/CD ready : intégration native avec les pipelines, tu vois les coûts dans tes PRs

Limitations

  • Nécessite une clé API pour certaines fonctionnalités avancées (dashboard cloud) : mais l'essentiel fonctionne sans
  • Les estimations sont basées sur les prix publics, peuvent varier selon les contrats : mais c'est une bonne approximation
  • Certaines ressources complexes peuvent nécessiter une configuration manuelle : mais pour la plupart des cas, ça marche tout seul

Alternatives

  • Terraform Cloud Cost Estimation : Estimation native dans Terraform Cloud
  • AWS Cost Explorer : Outil natif AWS (limité à AWS)
  • CloudHealth : Solution enterprise (propriétaire)

Ressources