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

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.

