database-expert
Expert database architect specializing in schema design, query optimization, data modeling, and migration strategies. Japanese: データベースエキスパート
Estimate infrastructure costs from Terraform configurations
> /plugin marketplace add Fujigo-Software/f5-framework-claudeHow it fires
How this agent gets triggered: by you, by Claude, or both.
Context preview
The summary Claude sees to decide when to auto-load this agent.
Estimate infrastructure costs from Terraform configurations
name: terraform-cost-estimator description: Estimate infrastructure costs from Terraform configurations triggers: - "estimate terraform cost" - "tf cost" - "infrastructure pricing"
Estimate and optimize infrastructure costs by analyzing Terraform configurations before deployment.
1. **Cost Estimation**: Calculate monthly/yearly costs 2. **Cost Comparison**: Compare different configurations 3. **Optimization Suggestions**: Recommend cost-saving changes 4. **Budget Alerts**: Track against budgets 5. **FinOps Integration**: Support cloud financial operations
# macOS brew install infracost # Linux curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | sh # Register API key (free tier available) infracost auth login
# Generate cost breakdown infracost breakdown --path . # Compare with baseline infracost diff --path . --compare-to baseline.json # Output formats infracost breakdown --path . --format json > costs.json infracost breakdown --path . --format html > costs.html infracost breakdown --path . --format table
$ infracost breakdown --path .
Project: myapp-infrastructure
Name Monthly Qty Unit Monthly Cost
aws_instance.web
├─ Instance usage (Linux/UNIX, on-demand, t3.large)
│ 730 hours $60.74
├─ root_block_device
│ └─ Storage (gp3) 50 GB $4.00
└─ ebs_block_device[0]
└─ Storage (gp3) 100 GB $8.00
aws_db_instance.main
├─ Database instance (on-demand, db.r6g.large)
│ 730 hours $131.40
├─ Storage (gp3) 100 GB $11.50
└─ Additional backup storage 50 GB $0.95
aws_nat_gateway.main[0]
├─ NAT gateway 730 hours $32.85
└─ Data processed 1000 GB $45.00
aws_nat_gateway.main[1]
├─ NAT gateway 730 hours $32.85
└─ Data processed 1000 GB $45.00
OVERALL TOTAL $372.29# .github/workflows/infracost.yml
name: Infracost
on:
pull_request:
paths:
- '**.tf'
- '**.tfvars'
jobs:
infracost:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- uses: actions/checkout@v4
- name: Setup Infracost
uses: infracost/actions/setup@v2
with:
api-key: ${{ secrets.INFRACOST_API_KEY }}
- name: Generate Infracost JSON
run: |
infracost breakdown --path . \
--format json \
--out-file /tmp/infracost.json
- name: Post Infracost comment
uses: infracost/actions/comment@v1
with:
path: /tmp/infracost.json
behavior: update## 💰 Infracost Cost Estimate | Project | Previous | New | Diff | |---------|----------|-----|------| | myapp-prod | $372.29 | $487.45 | +$115.16 (+31%) | ### Cost Breakdown **New Resources** - `aws_elasticache_cluster.main` +$85.41/mo - `aws_cloudwatch_log_group.app` +$29.75/mo **Modified Resources** - `aws_instance.web` t3.large → t3.xlarge (+$60.74 → +$121.48) ⚠️ This PR will increase monthly costs by **$115.16**
# Before: Over-provisioned
resource "aws_instance" "web" {
instance_type = "m5.2xlarge" # 8 vCPU, 32 GB - $280/mo
}
# After: Right-sized based on metrics
resource "aws_instance" "web" {
instance_type = "t3.large" # 2 vCPU, 8 GB - $60/mo
}
# Savings: $220/month (78%)# On-demand pricing # t3.large: $0.0832/hr = $60.74/mo # 1-year reserved (no upfront): # t3.large: $0.0526/hr = $38.40/mo (37% savings) # 3-year reserved (all upfront): # t3.large: $0.0316/hr = $23.07/mo (62% savings)
resource "aws_spot_instance_request" "worker" {
ami = data.aws_ami.amazon_linux.id
instance_type = "c5.xlarge"
spot_price = "0.08" # Max price
wait_for_fulfillment = true
# On-demand: $0.17/hr
# Spot: ~$0.05/hr (70% savings)
}# NAT Gateway: $32.85/mo + $0.045/GB
# 3 AZs = $98.55/mo fixed + data transfer
# Alternative: NAT Instance (t3.micro)
resource "aws_instance" "nat" {
instance_type = "t3.micro" # $7.59/mo
# Total savings: ~$90/mo per AZ
}
# Alternative: Single NAT for non-prod
# Saves $65.70/mo by using one NAT# S3 Lifecycle Rules
resource "aws_s3_bucket_lifecycle_configuration" "optimize" {
bucket = aws_s3_bucket.main.id
rule {
id = "optimize-storage"
status = "Enabled"
# Move to IA after 30 days
transition {
days = 30
storage_class = "STANDARD_IA"
}
# Move to Glacier after 90 days
transition {
days = 90
storage_class = "GLACIER"
}
# Delete after 365 days
expiration {
days = 365
}
}
}
# Cost comparison (per GB/mo):
# Standard: $0.023
# Standard-IA: $0.0125 (46% savings)
# Glacier: $0.004 (83% savings)# AWS Budgets with Terraform
resource "aws_budgets_budget" "monthly" {
name = "monthly-budget"
budget_type = "COST"
limit_amount = "500"
limit_unit = "USD"
time_unit = "MONTHLY"
notification {
comparison_operator = "GREATER_THAN"
threshold = 80
threshold_type = "PERCENTAGE"Repo: Fujigo-Software/f5-framework-claude
Expert database architect specializing in schema design, query optimization, data modeling, and migration strategies. Japanese: データベースエキスパート
Expert DevOps architect specializing in CI/CD pipelines, infrastructure as code, containerization, and monitoring. Japanese: DevOpsアーキテクト
Mobile app architecture specialist. iOS, Android, React Native, Flutter.
Backend architecture specialist. Microservices, APIs, databases.
Frontend architecture specialist. React, Vue, Angular, Next.js.