Skip to content
Rearway logorearwayLet's talk ↗

Services · Cloud cost audit

Cloud Cost Audit & Optimisation (AWS and Google Cloud)

Sample reportDownload cloud cost audit ↗Anonymised GCP-style sample. Figures are illustrative, not a real client's results.

01

The problem

Cloud costs tend to grow faster than usage. A few patterns cause most of the extra spend:

  • Wrong-fit databases. A real-time database such as Firestore or DynamoDB ends up storing analytics, history and exports. Every dashboard or report then reads millions of documents, and you pay for each read.
  • Capacity that only goes up. Servers are added for a traffic peak and never removed.
  • Services that never sleep. Internal tools and batch jobs run all day and night with minimum instances set above zero.
  • Forgotten resources. Disks, snapshots, IP addresses, test databases and load balancers outlive the projects that created them.
  • Expensive data movement. Traffic crosses regions, and large files are served without a CDN.

Your bill shows which services cost money. It doesn't tell you why, or which costs you can safely cut.

02

What we do

1. Baseline and cost attribution

  • Billing data: we turn on the billing export (AWS Cost and Usage Report, or Google Cloud Billing export to BigQuery) and break spend down by service, product line, project, label and resource.
  • Unit cost: we compare spend with usage, such as cost per user or per 1,000 requests, so you can see whether costs are growing faster than the business.
  • Forecast: we project the next six months if nothing changes.

2. Database and data-platform review

  • Which services really need a real-time database. For each service we check whether it needs live updates, offline sync or low-latency document reads. Many don't.
  • Moving history and analytics to a warehouse. We move historical and analytical data out of Firestore or DynamoDB and into BigQuery (or Redshift/Athena on AWS).
    • Tables are partitioned by date and clustered on the columns you filter by most, so each query reads only the days and keys it needs.
    • We turn on `require_partition_filter`, so nobody can accidentally run a full-table scan.
  • Data volume assessment. For each collection or table we record document or row counts, size and access pattern, and decide whether it should move, stay, or expire automatically (TTL).
  • Safe migration. We copy history across, write to both systems for a verification period, reconcile row counts and checksums, then switch over one collection at a time.

3. Idle and orphaned resources

  • Finding them: we use Cloud Asset Inventory, AWS Config, Recommender / Compute Optimizer, and utilisation data from monitoring.
  • Confirming them: every resource is confirmed with its owner before any action.
  • Removing them safely: we snapshot first, then delete or stop. Lifecycle policies then stop the same build-up happening again.

4. Scale-to-zero and right-sizing

  • Scale-to-zero: we set minimum instances to zero on Cloud Run, Lambda-style or container services where traffic allows. Startup CPU boost keeps cold starts acceptable.
  • Right-sizing: we fit Kubernetes requests and limits, node pools and autoscaling settings to measured usage plus headroom.

5. Load and scaling tests before cutting capacity

  • Joint testing: together with your engineering team, we run k6 load tests: peak replay, spike, soak and stress. These prove that the reduced capacity still meets your latency and error-rate targets.
  • Kept for future use: the test scripts are handed over and can run in your CI pipeline as a regression check.

6. Network and egress

Moving services into the same region, putting a CDN in front of media and static files, and reviewing traffic that crosses regions or zones.

7. Governance so costs stay down

  • Alerts: budgets and anomaly alerts.
  • Ownership: a labelling or tagging policy so every cost has an owner.
  • Review: a monthly FinOps review routine your team can run without us.
  • Commitments: committed use / Savings Plan sizing, done only after the new, lower baseline is known.

03

How it works

  1. Scoping call. We cover your accounts, main workloads and goals.
  2. Read-only access. Billing viewer, monitoring viewer and asset inventory access. We make no changes during discovery.
  3. Discovery and analysis. Usually two to four weeks.
  4. Findings and plan. Each finding comes with an estimated saving, the effort involved and the risk.
  5. Implementation support. Quick wins first. Larger changes such as data migration and right-sizing go through your normal change process, with a rollback plan for each.
  6. Report and handover. Final report, dashboards and runbooks.

04

What you receive

  • Cost baseline report: your 12-month trend, a breakdown by service, and unit costs.
  • Findings register: each finding has an ID, severity, estimated monthly saving, owner and status.
  • Service-by-service datastore audit and data volume assessment.
  • BigQuery or warehouse schemas with partitioning and clustering, plus example queries and a comparison of query costs.
  • Idle-resource and scale-to-zero change logs.
  • Load test plan, results and k6 scripts.
  • Before-and-after projection, implementation roadmap, risks and rollback.
  • Appendix of methodology and data sources.

Download a sample report (PDF, anonymised)

05

Standards and tools

Approach: aligned with the FinOps Framework, the AWS Well-Architected Cost Optimization pillar and the Google Cloud Architecture Framework (cost optimisation).

Tools:

  • Billing data: AWS Cost and Usage Report, Cost Explorer, Google Cloud Billing export to BigQuery
  • Monitoring: Cloud Monitoring, CloudWatch
  • Resource discovery and recommendations: Recommender, Compute Optimizer, Cloud Asset Inventory, AWS Config
  • Data and analysis: BigQuery INFORMATION_SCHEMA, Looker Studio
  • Delivery and testing: Terraform, k6

06

Packages

We offer fixed-price packages for businesses with different needs, from a focused audit of a single account to a full audit with implementation support. You get a written proposal after the scoping call.

07

Next step

Book a 30-minute call and we'll tell you where we'd look first.

Book a call

FAQ

Questions

Will you change anything in our production environment?

Not during discovery. We work with read-only access. Changes are made later, either by your team or with them, through your change process, and each one comes with a rollback step.

Do we have to move off Firestore or DynamoDB?

No. We keep them for the features that need real-time updates, such as live status, tracking or presence. What usually moves is history and analytics, which fit a warehouse better.

How do you make sure the savings don't hurt performance?

Before reducing capacity, we test it with load tests against your latency and error targets. Data migrations run in parallel with the old system until the results match.

How accurate are the savings estimates?

They are based on your actual usage and current list prices. We give a range and list our assumptions. The final report separates savings already made from savings that are still estimates.

Do you only work with AWS and Google Cloud?

Those are our focus. We can also review Azure using the same approach.

What do you need from our team?

- **From engineering:** a technical contact, a few hours from service owners for workshops, and help with load tests. - **From finance:** a contact to agree how costs are allocated.

Start a project

Have a product to ship?

Engagements are fixed-price packages, shaped to the business. Book a call for a quote.

Book a 30-min call ↗