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 officiel | https://www.infracost.io/ |
| Repository | https://github.com/infracost/infracost |
| Licence | Apache 2.0 |
| Langage | Go |
| Providers supportés | AWS, Azure, GCP, Datadog, New Relic, etc. |
| Formats IaC | Terraform, 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
- Documentation : https://www.infracost.io/docs
- GitHub : https://github.com/infracost/infracost
- Slack communautaire : https://www.infracost.io/community-chat
- Exemples : https://github.com/infracost/infracost/tree/master/examples