Last year, a major Nigerian e-commerce company came to us with a problem: their AWS bill had grown from $18,000 per month to $47,000 per month over 18 months, with no corresponding growth in revenue or traffic. Engineering had added features. No one had reviewed the cloud spend.

Eleven weeks later, their monthly bill was $19,800 — a 58% reduction. We had not touched a single line of application code, rewritten any architecture, or migrated any workloads to a different cloud. Pure FinOps practice.

Here is exactly what we found and what we did.

The Audit

The first step was a comprehensive Cost and Usage Report (CUR) analysis. AWS generates these reports in S3 — they are enormous CSV files that most engineering teams never look at. We loaded four months of CUR data into Athena and built a dashboard in QuickSight that broke costs down by service, tag, and linked account.

Within two days, we had identified five categories of waste:

1. Untagged Resources (23% of total spend)

Roughly $10,000 per month in AWS resources had no cost allocation tags. These were predominantly EC2 instances, EBS volumes, and RDS snapshots created during development sprints and never cleaned up. Without tags, nobody knew who owned them. Without an owner, nobody deleted them.

Fix: AWS Config rule enforcing mandatory tags on all resources. Any resource without required tags is flagged for deletion review. We ran a clean-up sprint that terminated 34 instances and 180 EBS volumes — $8,200 per month saved in week one.

2. Oversized RDS Instances (18% of total spend)

The company had three RDS instances — a production database and two "staging" instances — all running on db.r5.4xlarge ($1,800/month each). CloudWatch metrics showed the staging instances never exceeded 8% CPU utilisation and had peak connection counts of 12. They were provisioned "just in case."

Fix: Downsized staging RDS to db.t3.medium ($67/month each). Saved $3,466/month instantly.

3. On-Demand Pricing for Stable Workloads (31% of total spend)

Every single EC2 instance was on On-Demand pricing. This is the most expensive way to run AWS. For a workload with predictable baseline capacity, Reserved Instances or Savings Plans offer 40–72% discounts.

Fix: 1-year Compute Savings Plan covering 60% of baseline EC2 and Fargate spend. Savings: $8,900/month at full amortisation.

4. Data Transfer Costs (14% of total spend)

$6,580/month was leaving in data transfer fees. Investigation revealed that the application was making cross-AZ API calls in a pattern that multiplied transfer costs unnecessarily — services in AZ-a calling services in AZ-b and AZ-c in round-robin, even though the same service existed in all three AZs.

Fix: Application configuration change to prefer same-AZ endpoints. No code change required — just a configuration variable. Saved $4,200/month.

5. Forgotten Services (14% of total spend)

Three Elasticsearch clusters ($1,200/month each) from a search feature that had been deprecated six months earlier. An NAT Gateway generating $900/month in data processing fees for a VPC that had been migrated. Two ElastiCache clusters nobody remembered provisioning.

Fix: Termination. $5,500/month saved.

The FinOps Culture Change

Technical fixes are the easy part. The harder work is preventing the waste from returning. We implemented:

  • Weekly cost reviews in the engineering team's Monday standup — a five-minute CUR summary shared automatically
  • Anomaly detection alerts — any service exceeding 110% of its 30-day average cost triggers a Slack notification to the team lead
  • Pre-provisioning review — any new resource above $200/month requires a brief justification comment in the infrastructure PR
  • Monthly FinOps review with the CFO — cloud cost as a percentage of revenue, trending over 12 months

The Lesson

Cloud cost optimisation does not require architectural heroics. The majority of cloud waste is created by three things: lack of visibility (nobody is looking at the bill), lack of accountability (nobody owns the spend), and lack of process (no mechanism to catch waste before it accumulates).

FinOps is not a one-time project. It is a discipline. The organisations that build it as a continuous practice will always spend less on cloud than those that treat it as a periodic cleanup exercise.