TerraCost
Multi-cloud Terraform cost estimation and AI-powered optimization tool
TerraCost is a comprehensive solution that scans your Terraform infrastructure files, estimates costs across AWS, Azure, and GCP, and provides AI-powered suggestions to optimize your cloud spending. Available as both a CLI tool and VS Code extension.
✨ Features
🌐 Multi-Cloud Support
- AWS: EC2, S3, Lambda, RDS, and more
- Azure: Virtual Machines, Storage Accounts, App Services
- GCP: Compute Engine, Cloud Storage, Cloud Functions
- Unified Cost Analysis: Compare costs across providers
🤖 AI-Powered Optimization
- Budget Optimization: Fit infrastructure within target budget
- Cost Savings: Conservative, moderate, and aggressive strategies
- Best Value: Optimal cost-performance balance
- Smart Suggestions: LLM-powered infrastructure recommendations
🚀 CI/CD Integration
- Budget Enforcement: Prevent pipeline execution if costs exceed limits
- Cost Monitoring: Track spending trends and growth rates
- Automated Checks: Integrate cost validation into your deployment pipeline
📊 Advanced Analytics
- Cost Uncertainty Analysis: Statistical confidence intervals
- Timeframe Flexibility: 1 month to 2 years projections
- Resource Breakdown: Detailed per-resource cost analysis
- Real-time Updates: Automatic refresh when files change
🛠️ Installation
# Install from PyPI
pip install terracost
# Or install from source
git clone https://github.com/yourusername/terracost.git
cd terracost
pip install -e .
Requirements: Python 3.8+
VS Code Extension
- Open VS Code
- Go to Extensions (Ctrl+Shift+X)
- Search for "TerraCost"
- Click Install
🚀 Basic Usage
Cost Estimation
# Estimate costs for your Terraform infrastructure
terracost plan -f infrastructure/
# Specify timeframe (1m, 3m, 6m, 1y, 2y)
terracost plan -f . -t 6m
# Detailed breakdown
terracost plan -f . --verbose
AI-Powered Suggestions
# Get cost savings recommendations
terracost suggest --savings
# Fit infrastructure within budget
terracost suggest --budget 50.0
# Find best value configuration
terracost suggest --bestvalue
CI/CD Budget Enforcement
# Check if costs exceed $2000/month limit
terracost budget --limit 2000 -f infrastructure/
🔧 Configuration
Environment Variables
# Required for AI suggestions
export OPENAI_API_KEY="your-openai-api-key"
# AWS credentials (optional, for enhanced pricing)
export AWS_PROFILE="default"
export AWS_REGION="us-east-1"
# Azure credentials (optional)
export AZURE_CLIENT_ID="your-client-id"
export AZURE_TENANT_ID="your-tenant-id"
export AZURE_CLIENT_SECRET="your-client-secret"
# GCP credentials (optional)
export GOOGLE_APPLICATION_CREDENTIALS="path/to/service-account.json"
📁 Supported Infrastructure
AWS Resources
- Compute: EC2 instances, Lambda functions, ECS services
- Storage: S3 buckets, EBS volumes, RDS databases
- Networking: VPC, Load Balancers, API Gateway
- Security: IAM roles, Security Groups, KMS keys
Azure Resources
- Compute: Virtual Machines, App Services, Functions
- Storage: Storage Accounts, Blob Containers, SQL Databases
- Networking: Virtual Networks, Load Balancers, Application Gateway
- Security: Key Vault, Network Security Groups
GCP Resources
- Compute: Compute Engine, Cloud Functions, App Engine
- Storage: Cloud Storage, Cloud SQL, BigQuery
- Networking: VPC, Load Balancing, Cloud Armor
- Security: IAM, Cloud KMS, Security Command Center
🎯 AI Suggestion Types
Budget Optimization (--budget
)
- Analyzes current infrastructure costs
- Suggests modifications to fit within target budget
- Provides risk assessment for each change
- Includes cost estimates for alternatives
Cost Savings (--savings
)
- Conservative: Safe changes with minimal risk
- Moderate: Balanced optimization with some risk
- Aggressive: Maximum savings with higher risk
- Detailed explanations for each strategy
Best Value (--bestvalue
)
- Optimizes cost-performance ratio
- Considers reliability and scalability
- Balances upfront vs. ongoing costs
- Recommends resource sizing optimizations
🔄 CI/CD Integration
Pipeline Budget Check
# In your CI/CD pipeline
terracost budget --limit 2000 -f infrastructure/
if [ $? -ne 0 ]; then
echo "❌ Costs exceed budget limit!"
exit 1
fi
Cost Growth Monitoring
The tool automatically:
- Tracks cost changes between pipeline runs
- Warns about excessive cost growth (>50% by default)
- Provides detailed cost breakdowns
- Saves cost reports for historical analysis
🎨 VS Code Extension Features
- Costs Tab: View infrastructure costs with timeframe selection
- AI Tab: Get optimization suggestions directly in VS Code
- Real-time Updates: Automatic refresh when files change
Inline Cost Display
- Ghost Text: See monthly costs directly in .tf files
- Non-intrusive: Gray text that doesn't interfere with code
- Tooltips: Hover for detailed cost breakdowns
Seamless Integration
- File Watching: Automatically detects .tf file changes
- Context Menus: Right-click for quick cost calculations
- Terminal Integration: Dedicated terminal for TerraCost commands
📊 Example Output
Cost Estimation
📊 Infrastructure Analysis
📁 Directory: ./infrastructure
🔧 Total Resources: 15
[AWS] AWS: 8 resources
[AZURE] AZURE: 4 resources
[GCP] GCP: 3 resources
💰 Total Cost: $247.83/month
📈 Cost Uncertainty Analysis:
📊 68% Confidence: $235.12 - $260.54
📊 95% Confidence: $222.41 - $273.25
📊 Volatility: 8.2% monthly variation
AI Suggestions
🤖 AI-Powered Cost Optimization Suggestions
📋 Conservative Strategy (Low Risk):
💰 Estimated Savings: 15-20%
🔧 Changes: Instance type optimization, storage tier adjustments
⚠️ Risk: Minimal impact on performance
📋 Moderate Strategy (Balanced):
💰 Estimated Savings: 25-35%
🔧 Changes: Reserved instances, auto-scaling policies
⚠️ Risk: Some performance variability
📋 Aggressive Strategy (High Risk):
💰 Estimated Savings: 40-50%
🔧 Changes: Spot instances, aggressive scaling
⚠️ Risk: Potential downtime during scaling
🏗️ Architecture
Core Components
- Terraform Parser: Extracts resources from .tf files
- Cost Services: Provider-specific pricing calculations
- AI Service: OpenAI integration for suggestions
- Progress Tracking: Real-time operation monitoring
- CI/CD Service: Pipeline budget enforcement
Supported Providers
- AWS: Boto3 integration for pricing
- Azure: Azure SDK for cost estimation
- GCP: Google Cloud client libraries
- Multi-cloud: Unified cost analysis across providers
🚧 Requirements
- Python 3.8+
- Terraform files (.tf) in your project
- OpenAI API key (for AI suggestions)
- Cloud provider credentials (optional, for enhanced pricing)
VS Code Extension
- VS Code 1.103.0+
- TerraCost Python package installed
- Python available in PATH
- Terraform files in workspace
🔍 Troubleshooting
Common Issues
No Cost Estimates Displayed
- Verify .tf files are in the specified directory
- Check if Terraform configuration is valid
- Ensure cloud provider credentials are configured
AI Suggestions Not Working
- Verify
OPENAI_API_KEY
is set
- Check internet connectivity
- Ensure Terraform files contain cloud resources
CI/CD Pipeline Fails
- Check budget limits are reasonable
- Verify cost estimation is working locally
- Review cost growth warnings
Debug Mode
# Enable verbose output
terracost plan -f . --verbose
# Check version
terracost --version
🤝 Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
Development Setup
git clone https://github.com/yourusername/terracost.git
cd terracost
pip install -e .
npm install # For VS Code extension
🆘 Support
- Issues: Report bugs and feature requests on GitHub
- Documentation: Check the Wiki for detailed guides
- Community: Join discussions in the GitHub Discussions
Made with ❤️ by the TerraCost team
Members:
- Daniël van Zyl
- Shailyn Ramsamy Moodley
- Tevlen Naidoo
TerraCost helps you build cost-effective cloud infrastructure without compromising on performance or reliability.