Skip to content
CloudBudgie logo

Infrastructure as code

AWS cost optimization, delivered as Terraform and CloudFormation pull requests.

When your AWS infrastructure is managed as code, fixing waste directly in AWS can create configuration drift. For supported optimizations, CloudBudgie finds the infrastructure code that defines the resource and BudgieBot opens a pull request with the change. Your team reviews, approves, and deploys it through the workflow you already use.

No credit card required

From detected waste to a reviewable pull request

Every proposed change follows four steps. Your team reviews and deploys the changes on its own terms.

  1. Step 1

    Detect

    CloudBudgie analyzes your connected AWS accounts for cost-saving opportunities, such as an oversized instance or a log group that never expires, and estimates the monthly savings.

  2. Step 2

    Propose a diff

    BudgieBot locates the Terraform or CloudFormation that defines the resource in your connected GitHub repositories and edits it. The change is a small, focused diff in your own code, not a generated replacement.

  3. Step 3

    Validate

    The proposed change is checked before a pull request is opened. If BudgieBot cannot make a safe change, it reports “No safe change” with the reason instead of opening a pull request. Your own CI checks then run on the pull request as usual.

  4. Step 4

    Review and approve

    The pull request explains what was detected, what is changing, why, and the estimated savings. Your team reviews it, requests changes, merges it, or closes it. CloudBudgie never merges for you.

What a BudgieBot pull request looks like

Focused changes. Clear explanations. Estimated savings your team can review before deploying.

Set a retention period on application logsTerraform
The log group never expires, so storage grows every month.

Estimated savings

$64/month

terraform/logging/main.tf

 resource "aws_cloudwatch_log_group" "app" {   name              = "/app/api"+  retention_in_days = 30 }
Right-size an over-provisioned Lambda functionCloudFormation
Peak memory use stayed well below 2,048 MB. The estimate assumes similar duration at 1,024 MB.

Estimated savings

$41/month

cloudformation/worker.yaml

 WorkerFunction:   Type: AWS::Lambda::Function   Properties:-    MemorySize: 2048+    MemorySize: 1024

Illustrative examples. Actual pull requests, file paths, and savings depend on your code and AWS environment.

No state access. No automatic deployment. Your team stays in control.

Generating a pull request is a code change, not a deployment. The IaC pull-request plane works only with your repository. Applying a change directly to AWS is a separate, opt-in CloudBudgie feature that uses only the IAM permissions you grant.

  • No Terraform state access

    BudgieBot edits source files. It does not read or write your Terraform state or state backend.

  • No apply in the pull-request plane

    BudgieBot does not run terraform apply or update CloudFormation stacks. Your pipeline deploys the change after you merge.

  • Humans approve every change

    BudgieBot does not merge pull requests. They follow your branch protection, required reviews, and CI. Nothing is merged automatically.

  • You choose the repositories

    BudgieBot is a GitHub App. It can only see the repositories you install it on.

Supported workflows

Works with

  • Terraform
  • CloudFormation
  • GitHub repositories via the BudgieBot GitHub App
  • One-off pull requests for the optimizations listed below
  • Continuous Optimization, for policies that support the IaC execution method

Optimizations with a pull-request option

  • EC2 rightsizing
  • Stopped EC2 instances
  • Unassociated Elastic IPs
  • Idle load balancers
  • EBS rightsizing
  • Detached EBS volumes
  • RDS rightsizing
  • Lambda memory rightsizing
  • Lambda Graviton
  • ECR lifecycle policies
  • S3 incomplete multipart uploads
  • Inactive NAT Gateways
  • CloudWatch Logs retention
  • Redshift underutilized clusters

CloudBudgie shows the pull-request option only where it is supported for that resource.

Limitations

Not every optimization supports infrastructure as code. Here is where the pull-request path stops.

  • Some optimizations are recommendation-only or apply directly to AWS. Off-Hours schedules start and stop resources directly and do not open pull requests.
  • The resource must be defined in Terraform or CloudFormation in a repository BudgieBot can access. Resources created outside code cannot be fixed with a pull request.
  • If more than one repository could own a resource, CloudBudgie asks you to choose the owner before opening a pull request.
  • If BudgieBot cannot find a safe, minimal change, it reports “No safe change” instead of opening a pull request.
  • Pull requests are opened in GitHub. Other Git hosts are not supported today.
  • Savings are estimates. Actual savings depend on your AWS usage and when the change is deployed.

Turn your next AWS savings opportunity into a pull request.

Start free, connect AWS with an IAM role, and install BudgieBot on the repositories you choose. Every plan includes the full product.

See pricing

No credit card required