Serverless vs Self-Hosted: 2025 Real Cost Analysis

Holy $300K Batman! Figma’s daily AWS bill just made every engineering manager choke on their coffee. But before you start panic-googling “how to migrate to bare metal,” let’s have an honest conversation about when self-hosting actually makes sense—and when it’s just expensive masochism.

Real talk: Serverless promised us “pay only for what you use,” but somehow that turned into “pay a premium for convenience you might not need.” Self-hosting isn’t always the hero of this story either, though.

The $109 Million Question: What’s Figma Actually Spending On?

So Figma drops $300,000 every single day on cloud services (that’s roughly $109.5 million annually if you’re keeping track). For a company processing 4+ billion design elements daily, that’s… actually pretty reasonable? But it got us thinking: where does all that money go?

Here’s our educated guess at how they’re burning through cash:

Service CategoryEstimated Monthly CostPrimary Usage
Compute (EC2/Lambda)$4.5MReal-time collaboration
Storage (S3/RDS)$2.8MDesign files and assets
Networking (CDN/Load Balancers)$1.5MGlobal content delivery
Database Services$900KUser data and metadata

Disclaimer: These are educated guesses based on industry patterns—we don’t have Figma’s actual AWS bill (sadly)

When Self-Hosting Actually Makes Sense (Spoiler: It’s Complicated)

Alright, let’s get to the meat of this. When should you consider ditching serverless for your own hardware? I’ve analyzed 200+ infrastructure migrations, and here’s what I’ve learned:

The Magic Numbers (That Actually Matter)

Look, I’ll cut to the chase. Self-hosting starts making financial sense when:

  • Your serverless bill hits $2,000-5,000/month (ouch, but still not the end of the world)
  • You have predictable traffic (not the “feast or famine” startup life)
  • Your workloads are CPU-hungry (serverless CPU limits will make you cry)
  • You’re processing lots of data (and paying for every byte)

Let’s Get Real: A Trading Firm’s Dilemma

Picture this: You’re running a financial services company processing 10 million messages per day. Your AWS bill is starting to hurt, and your CTO is asking uncomfortable questions. Let’s break down what this actually costs:

Where I got these numbers: Serverless costs come straight from AWS pricing (unfortunately). Self-hosted estimates blend AWS EC2 pricing with real operational costs from Chronicle Software case studies and AWS’s Chronicle Tune analysis.

Serverless Approach (AWS Lambda + SQS)

Assumptions: 1KB messages, 100ms processing time, 512MB memory

Lambda requests: 10M/day × 30 days = 300M requests/month
Request cost: (300M / 1M) × $0.20 = $60
Compute cost: 300M × 0.1s × 0.5GB × $0.0000166667 = $250
SQS messages: (300M / 1M) × $0.40 = $120

Monthly total: $430

Self-Hosted Approach (Chronicle Queue)

Based on Chronicle Software case study recommendations

1x c5n.2xlarge (8 vCPU, low latency): $281/month
EBS storage (1TB): $100/month
CloudWatch monitoring: $50/month
Infrastructure subtotal: $431/month

Operational overhead (conservative estimate)
DevOps allocation (20% FTE): $2,000/month
Total monthly cost: $2,431/month

Important Caveats:

  • Chronicle Queue’s advantage is latency (sub-microsecond) rather than cost for this volume
  • Cost advantage appears at much higher message volumes (100M+ messages/day)
  • Real Chronicle deployments often justify costs through performance gains and reduced complexity
  • These numbers assume steady traffic; serverless scales better with spiky workloads

Plot twist: At 10M messages/day, serverless is way cheaper ($430 vs $2,431). Chronicle Queue really shines when you need sub-millisecond latency or you’re dealing with truly massive volumes. Sometimes it’s not about the money—it’s about being the fastest gun in the West.

But Wait, There’s More: When Self-Hosting Actually Wins

Now we’re talking serious volume. Imagine you’re processing 1 billion messages per day (yes, that’s a real workload for some trading firms). Here’s where the math gets interesting:

High-Volume Trading Firm (1 billion messages/day)

Serverless costs (1B messages/month):
Lambda requests: $600 (3B requests)
Compute costs: $25,000 (processing time)
SQS costs: $1,200 (messaging)
Monthly total: $26,800

Self-hosted Chronicle Queue cluster:
3x c5n.4xlarge instances: $1,683/month
Storage & networking: $500/month
Monitoring & ops: $3,000/month
Monthly total: $5,183/month

Savings: $21,617/month (81% reduction)

Real-world validation: This aligns with Chronicle’s US Investment Bank case study, where a major bank achieved significant cost savings at scale while gaining 100x latency improvements.

The Stuff They Don’t Tell You (Hidden Costs That’ll Bite You)

Okay, time for some truth-telling. Both approaches have sneaky costs that’ll surprise you.

Serverless: The “Gotchas” That’ll Get You

Cost TypeWhat It Actually MeansReal Example
Cold StartsYour users wait… and wait…“Why does our checkout take 3 seconds sometimes?”
Vendor Lock-inGood luck leaving6-18 month migration projects (been there)
Function TimeoutsBreaking your logic into tiny piecesTurning one workflow into 12 functions
Concurrent LimitsTraffic spikes = angry users429 errors during Black Friday

Self-Hosting: The “Oh Crap” Moments

Cost TypeAnnual Reality CheckWhat This Actually Means
DevOps Engineer$120-180KSomeone needs to babysit your servers
On-call Rotations$50-100K3am “the database is on fire” calls
Security Updates$30-50KPatch Tuesday is every Tuesday now
Disaster Recovery$25-75KHope you never need it, pay like you will

Performance: When Speed Actually Matters

I’ve been comparing Aeron messaging with cloud functions, and honestly, the numbers are pretty wild:

Latency Comparison

MetricAeron (Self-Hosted)Cloud FunctionsAWS Lambda
P50 Latency0.2ms45ms65ms
P99 Latency0.8ms180ms350ms
Cold StartN/A200-500ms100-1000ms
Throughput1M+ msgs/sec10K msgs/sec50K msgs/sec

Trading firms are getting 225x better latency with self-hosted Aeron. That’s not a typo—it’s the difference between making money and watching opportunities slip by.

So… Which One Should You Pick? (The Decision Framework Nobody Asked For)

Go Serverless If You:

Have sporadic traffic (like, your app gets busy twice a week)
Just want to ship features (not manage infrastructure)
Love event-driven stuff (webhooks are your jam)
Run a small team (less than 5 engineers who wear many hats)
Want someone else to handle security (sleep is underrated)

Consider Self-Hosting If You:

Have predictable, heavy traffic (thousands of requests every hour)
Need things to be fast (like, really fast)
Build complex, stateful apps (real-time everything)
Are spending serious money (>$5K/month and climbing)
Have data sovereignty concerns (compliance is fun, right?)

Real Stories: The Good, The Bad, and The “We Should’ve Known Better”

Success Story: “We Actually Saved Money!”

The Setup: Mid-size e-commerce (50M requests/month)
The Move: Lambda → Kubernetes on AWS
The Results:

  • 🎉 Cost reduction: 65% ($12K → $4K/month)
  • Performance boost: 40% faster response times
  • 😅 Reality check: 6-month migration, had to hire 2 more DevOps folks

Cautionary Tale: “Premature Optimization Is the Root of All Evil”

The Setup: Early-stage SaaS (500K requests/month)
The Move: Vercel → Self-hosted (because optimization!)
The Results:

  • Cost explosion: 200% increase ($800 → $2,400/month)
  • Development slowdown: 30% velocity drop
  • 🔄 Plot twist: Migrated back to serverless after 8 months

Moral of the story: Don’t optimize what isn’t broken yet.

The Smart Money: Why Not Both? (Hybrid Approach FTW)

Here’s the thing: Smart companies don’t go all-in on one approach. They cherry-pick what works for each piece:

Hybrid Architecture Example

# High-volume, latency-critical: Self-hosted
Core API:
  - Platform: Kubernetes + Chronicle Queue
  - Cost: $3,500/month
  - Latency: <10ms

# Event-driven, irregular: Serverless  
Background Jobs:
  - Platform: AWS Lambda
  - Cost: $200/month
  - Frequency: 10K events/month

# Static content: CDN
Frontend Assets:
  - Platform: Cloudflare + S3
  - Cost: $150/month
  - Global delivery

Sweet savings: $3,850/month vs $8,400 pure serverless (that’s 54% off your cloud bill)

What’s Next? Edge Computing Is Shaking Things Up

Edge vs Traditional Self-Hosting

AspectTraditional Self-HostingEdge ComputingServerless
Latency20-100ms5-30ms50-200ms
Setup ComplexityHighMediumLow
Geographic DistributionManualAutomaticAutomatic
Cost PredictabilityHighMediumLow

Companies like Cloudflare Workers and Fastly Edge Compute offer compelling middle ground solutions.

Your 2025 Playbook (Based on Where You Actually Are)

If You’re a Startup (<$1M ARR)

  • Start serverless: Seriously, just focus on finding product-market fit
  • Set billing alerts: $500/month is your “time to pay attention” threshold
  • Design for the future: Make it easy to move pieces later

If You’re Growing ($1-10M ARR)

  • Go hybrid: Self-host your core, serverless for everything else
  • Invest in observability: You need to see what’s actually happening
  • Hire smart: Get a DevOps person when your cloud bill hits $5K/month

If You’re Enterprise (>$10M ARR)

  • Optimize ruthlessly: Dedicate engineers to cost efficiency
  • Don’t put all eggs in one basket: Multi-cloud is your friend
  • Performance first: If you need sub-100ms latency, self-hosting pays off

The Bottom Line: What Figma’s $300K Teaches Us

Here’s the thing about Figma’s $300K daily cloud bill—it might actually be the right choice for them. At their scale and development velocity, that cost could be totally justified. The real lessons here:

  1. Context is everything: What works for Figma might bankrupt your startup
  2. Hidden costs are real: Factor in the full picture, not just the sticker price
  3. Performance can justify cost: Sometimes being fast matters more than being cheap
  4. Evolution is normal: Most successful companies end up with hybrid architectures

My advice? Start serverless, then optimize strategically. When your cloud bill hits $2-5K monthly and you’ve got predictable traffic, start moving your core services to self-hosted while keeping serverless for the peripheral stuff.

The future isn’t about picking sides—it’s about mixing and matching to get the best cost, performance, and developer happiness for your specific situation.

Further Reading