Skip to content
E-commerce2025-10

E-commerce Platform: $28K to $14K/Month AWS Bill

A fast-growing e-commerce platform was spending $28,000/month on AWS with no reserved capacity, oversized instances, and a NAT Gateway processing 4TB of data monthly. A 3-week cost audit cut the bill in half.

Deploy Time
N/A
N/A
Deploy Frequency
N/A
N/A
Incidents
$28,000/month AWS spend
$14,200/month AWS spend
Cost Impact
-
$13,800/month ($165K/year)

The Challenge

The engineering team had built fast and scaled vertically whenever something was slow. The result was a fleet of m5.4xlarge instances running at 12% average CPU, no Savings Plans, staging environments running 24/7, and $6,000/month flowing through a NAT Gateway routing Docker image pulls instead of ECR. Nobody had reviewed the bill in detail for 18 months.

The Approach

We ran a structured cost audit: pull the last 90 days from Cost Explorer by service and usage type, identify the top five cost drivers, model savings from reservations and right-sizing, then implement in order of impact. The rule was to touch nothing requiring application changes - all savings had to come from infrastructure configuration alone.

The Implementation

Reserved capacity and Savings Plans

We purchased 1-year Compute Savings Plans covering 70% of steady-state EC2 usage and Reserved Instances for three RDS databases. No upfront payment. This reduced the compute and database line items by 34%.

AWS Cost ExplorerAWS Savings PlansRDS Reserved Instances

Right-sizing and instance scheduling

We right-sized 11 instances after reviewing 30-day CloudWatch utilization metrics. Production instances moved from m5.4xlarge to m5.xlarge. Staging and dev environments were scheduled to stop at 7pm and restart at 8am on weekdays.

AWS CloudWatchAWS Instance SchedulerTerraform

NAT Gateway traffic elimination

We migrated all Docker base images to ECR, added an S3 Gateway Endpoint for direct S3 access from private subnets, and configured VPC endpoints for ECR and Secrets Manager. NAT Gateway traffic dropped from 4TB to 280GB/month.

AWS ECRAWS VPC EndpointsAWS S3 Gateway Endpoint

S3 storage tiering

Enabled S3 Intelligent-Tiering on the product image bucket (2.3TB) and added Lifecycle rules to move order history and log archives older than 60 days to Glacier. Storage costs dropped 58%.

AWS S3 Intelligent-TieringS3 Lifecycle PoliciesS3 Glacier

Key Takeaways

  • Reserved capacity is the highest-ROI change in almost every cost audit - most teams leave it untouched too long
  • NAT Gateway costs are invisible until you look - migrating image pulls to ECR was a single Terraform change
  • Staging environment scheduling requires no application changes and saves 60–70% of non-production costs
  • S3 Intelligent-Tiering pays back its monitoring fee within the first month for any bucket over 100GB

Facing Similar Challenges?

Book a free 30-minute audit and I will tell you what I see.

Book Free Audit
All case studies