Blog

Implement AWS cost recommendations as pull requests

By ·

A change card gets an Approved stamp, moves into a savings ledger as a new line, and the monthly bill comes down.
A recommendation becomes a change, the change gets approved, and the bill shows the result.

Every AWS account has a list of savings nobody has made: oversized instances, unattached volumes, compute that would be cheaper on a Savings Plan. The list is accurate. The bill has not moved.

The problem is rarely finding the savings. It is the step after: changing production safely, deciding who approves it, and proving later that the saving was real.

Where recommendations stall

  1. A report says a service could run on a smaller instance family and save about $1,100 a month.
  2. Someone agrees it looks right.
  3. Nobody owns the change: the service team is busy, the platform team won't resize someone else's service.
  4. Three months later, the same line is in the next report.

The recommendation arrived as a finding, not as a change.

Make the saving a pull request

A pull request already answers every question that stalled the saving:

  • Who changes it? The pull request is the change; the team only reviews it.
  • Is it safe? The diff shows what moves, CI runs, and the rollback is one revert.
  • Who approves? The same people who approve every other change to that service.
  • Did it work? The pull request is the unit you measure on the bill.

This is Savings as Code: one saving, one pull request, approved by your team, measured after the merge.

A savings pull request description, in five lines
What changes   orders service: m5.2xlarge to m7g.xlarge (3 instances)
Why            p95 CPU 18% and memory 31% over the last 30 days
Estimate       about $1,100 a month
Risk           ARM build needed; image already multi-arch; load test attached
Rollback       revert this pull request; previous instance type restored on deploy

Measure it on the bill

The estimate gets the change approved. The bill decides what it was worth. About 30 days after the merge, record the result next to the pull request:

Pull request Estimate a month Measured a month
orders: smaller Graviton family $1,100 $1,040
Delete unattached volumes $480 $510
Lifecycle rule for old logs $350 $330

Illustrative example.

Start this week

  1. Export the current recommendations for one account, for example from AWS Compute Optimizer.
  2. Pick the five with the largest estimate and the lowest risk.
  3. Write each as a pull request with the five lines above.
  4. Ask the owning team to review them like any change.
  5. Set a reminder 30 days after each merge to record the measured saving.

No infrastructure as code? Use a small change-log repo: same review, same measurement.

If you want the list found and the pull requests written for you, that is what we do: a free review of your AWS bill, then we implement the savings and you approve every change.