NorthlayerSTHLM

Blog / AWS

7 places your startup's AWS bill is leaking money

Most startup AWS bills grow quietly. Nobody makes one bad decision; small defaults add up month after month. These are the seven places we check first. Open Cost Explorer, group by service, and follow along.

1. Servers and databases sized for a launch that never came

EC2 instances and RDS databases are often picked large "to be safe". Look at CPU and memory use in CloudWatch over the last month. If a server rarely goes above 20% CPU, a smaller size will usually do. AWS Compute Optimizer gives size suggestions for free once enabled.

2. NAT gateway traffic

A NAT gateway charges per hour and per gigabyte that passes through it. Private servers pulling large files from S3 through a NAT gateway pay for every gigabyte. A gateway VPC endpoint for S3 (and DynamoDB) sends that traffic directly, and gateway endpoints have no extra charge. Check the "NAT Gateway" line in Cost Explorer; if it's large, this is often why.

3. Disks and snapshots nobody uses

When a server is deleted, its EBS volume can stay behind, still billed. Old snapshots pile up too. In the EC2 console, filter volumes by state available (attached to nothing) and review snapshots older than your backup policy needs.

4. Public IP addresses

AWS charges for public IPv4 addresses, including ones attached to running resources and Elastic IPs that aren't attached to anything. Release the ones you don't need and put services behind a load balancer where it makes sense.

5. Test environments running all week

A staging environment that runs 24/7 is billed for 168 hours a week. Running it 12 hours a day on weekdays is 60 hours, about 36% of that. Schedule non-production servers and databases to stop outside working hours, or recreate them on demand with infrastructure as code.

6. Logs kept forever

New CloudWatch log groups keep logs forever by default. Verbose application logs at that retention become a real line item. Set a retention period on each log group, for example 30 days for debug logs, and export anything you must keep longer to S3.

7. Paying on-demand for steady usage

If part of your usage runs all the time, such as a production database or a baseline of servers, a Savings Plan or reserved capacity costs less than on-demand prices in exchange for a one- or three-year commitment. Only commit to the steady baseline, never to peaks.

Two habits that keep it down

  • Set an AWS Budget with an email alert at 80% of what you expect to spend each month.
  • Tag resources by product area or environment, so Cost Explorer can show what each part of your product costs.

Want a second pair of eyes? Our Cloud Cost & Health Audit goes through all of this in a week and gives you a ranked list of savings.

Tell us what you're building.

20 minutes, no pitch deck needed. You leave with a clear next step, even if it isn't us.

Book a 20-min call