Skip to main content

Command Palette

Search for a command to run...

Cloud Costs Are Destroying Startup Margins

Cloud infrastructure costs often exceed engineering salaries. Here's why AWS, GCP, and Azure are more expensive than startups realise and why they use

Updated
5 min read
Cloud Costs Are Destroying Startup Margins

AWS bills that exceed engineering salaries are normal now. Startups with 100,000 users paying $50,000/month for infrastructure that could run on a $200/month dedicated server.

Cloud infrastructure is convenient. It's also absurdly expensive once you move beyond toy projects. And the costs compound in ways that aren't obvious until you're locked in.

The Real Cost Comparison

Scenario: A typical SaaS startup with 100k users, ~500GB database, moderate traffic

AWS:

  • RDS (db.r5.xlarge): $500/month

  • EC2 instances (3x m5.large for redundancy): $450/month

  • Load balancer: $25/month

  • Data transfer out: $500-2,000/month (depending on traffic)

  • S3 storage and requests: $200/month

  • CloudFront: $100/month

  • Backups, snapshots, logs: $150/month

  • Monitoring, alerts: $50/month

Monthly total: $2,000-3,500/month

Hetzner dedicated server (AX102):

  • CPU: AMD Ryzen 9 7950X (16 cores)

  • RAM: 128GB

  • Storage: 2x 3.84TB NVMe SSD

  • Bandwidth: Unlimited at 1Gbit/s

Monthly total: €200 (~$220/month)

The AWS bill is 10-15x higher for comparable resources. And that's before costs balloon with scale.

Hidden Costs

Cloud vendors bury costs in fees most startups don't anticipate.

Data transfer (egress) fees

AWS charges $0.09/GB for data transfer out. Seems small until you do the math:

  • 100k daily active users

  • Average 5MB per session

  • 500GB/day = 15TB/month

  • 15TB × $0.09 = $1,350/month just for bandwidth

Hetzner: Included. No egress fees.

Cross-region transfer

Moving data between AWS regions costs $0.02/GB. If your database is in us-east-1 and your app servers are in us-west-2, every query costs money.

NAT Gateway

Need private subnets to access the internet? $0.045/GB processed + $0.045/hour. Easily $50-100/month for basic usage.

Load balancer fees

Application Load Balancer: $0.0225/hour + $0.008/LCU. Minimum ~$16/month, realistically $25-50/month.

Reserved instances trap

"Save 30-60% by committing to reserved instances!"

You commit to 1-3 year contracts. Your usage patterns change. You're stuck paying for resources you don't need while also paying for the resources you actually use.

Support fees

Basic support: Free (but useless, 24-hour response time for production issues) Developer: $29/month minimum or 3% of AWS bill Business: $100/month or 10% of AWS bill (minimum for 1-hour response)

If your monthly bill is $10,000, business support costs $1,000/month on top of that.

Compounding Cost

Cloud costs don't scale linearly. They compound.

Example progression:

Month 1-6 (MVP): $200/month - single small instance, small database Month 7-12 (early traction): $800/month - added load balancer, bigger database, redundancy Month 13-18 (growing): $3,500/month - multi-region, CDN, caching layer, monitoring Month 19-24 (scaling): $15,000/month - auto-scaling, managed services, increased traffic Month 25+ (mature): $50,000+/month - everything costs more at scale

Revenue might grow 10x. Infrastructure costs grow 250x.

Why Startups Use Cloud Anyway

If cloud is so expensive, why does everyone use it?

Speed to market

Provisioning a server takes minutes on AWS. Buying hardware takes weeks. Early-stage startups optimize for speed, not cost.

No upfront capital

Buying servers requires cash. AWS is OpEx, not CapEx. Startups short on cash choose monthly bills over hardware purchases.

Scaling flexibility

Need 10x capacity for a product launch? Spin up instances. Traffic drops after? Scale down. With owned hardware, you're stuck with excess capacity.

Managed services

RDS handles database backups and failover. S3 handles file storage. Lambda handles compute. No DevOps engineer needed (initially).

Investor expectations

VCs expect startups to use cloud infrastructure. Saying "we run on bare metal" raises questions about scalability.

Developer preference

Engineers want AWS/GCP/Azure on their resume. Managing physical servers feels outdated.

When Cloud Costs Break Startups

The breaking point comes when infrastructure costs exceed engineering salaries.

Real example (anonymised):

SaaS company, $2M ARR, 15 employees

  • Engineering team (5 people): $750k/year

  • AWS bill: $960k/year

Infrastructure costs more than the team building the product.

Gross margin: 52% (should be 80%+ for SaaS) Path to profitability: Unclear because AWS costs grow faster than revenue

The Margin Destruction

Typical SaaS metrics:

  • Target gross margin: 80%+

  • Customer acquisition cost: $500-2,000

  • Lifetime value: $5,000-20,000

When cloud costs consume 40-50% of revenue:

  • Gross margin: 50-60%

  • Less capital for growth

  • Longer path to profitability

  • Less attractive to investors/acquirers

Cloud vendors effectively tax your revenue at 30-50%. And the tax rate increases with scale.

Repatriation

Companies are moving off cloud to save money.

37signals (Basecamp, Hey):

Moved off cloud, saved $7 million over 5 years. Bought hardware, colocated in data centers. Margins improved dramatically.

Dropbox:

Moved storage off AWS to owned infrastructure. Saved $75 million over 2 years.

Discord:

Moved from MongoDB Atlas to ScyllaDB on owned hardware. Saved millions annually while improving performance.

The pattern is that companies hit scale, realise cloud costs are destroying margins, migrate to owned infrastructure.

Migration

"Just move off cloud" sounds simple. It's not.

Vendor lock-in

Built with AWS Lambda, API Gateway, DynamoDB, and SQS? That's AWS-specific. Migration requires rewriting.

Operational complexity

Moving to owned infrastructure means:

  • Managing hardware failures

  • Handling network issues

  • Maintaining security

  • Scaling manually

  • Hiring DevOps/SRE team

Upfront costs

Buying servers and colocation contracts requires capital. Startups operating on VC runway don't have it.

Risk

Cloud providers have SLAs. Owned infrastructure means you're responsible for uptime. One mistake costs customers.

Time

Migration takes months. Engineering time spent migrating isn't spent building features. Opportunity cost is massive.

What I Do

For early-stage projects: I use cloud. Speed matters.

For projects with revenue: I run numbers monthly. When cloud costs hit 15-20% of revenue, I start planning migration.

For established projects: Hybrid approach. Owned infrastructure for predictable workloads, cloud for spikes and backups.

I don't pay AWS for bandwidth that's free elsewhere. I don't pay for managed services I can run myself. I don't commit to reserved instances.

Final Thoughts

Cloud infrastructure is a tool. It's not a requirement.

Early on, cloud makes sense: fast provisioning, no upfront costs, managed services. The cost is worth the speed.

At scale, cloud is a tax on your revenue. Companies with mature products running on AWS are often paying 10-15x what the same infrastructure costs elsewhere.

The migration path exists. It's just painful, which is exactly why cloud vendors designed it that way.

If your AWS bill exceeds your engineering salaries, you have a problem. If your gross margins are below 70% because of infrastructure costs, you're building a less profitable business than necessary.

Cloud vendors have successfully convinced the industry that expensive infrastructure is inevitable. It's not. It's a choice.

Choose deliberately.

Cloud Expenses Impacting Startup Profitability