develicit
← Back to posts

Why I self-host my blog on AWS

·1 min read

When building a blog, the first question is where to host it. Most Next.js blogs end up on Vercel — it's frictionless.

For a static site, though, running it yourself on AWS S3 + CloudFront is

  • cheap (under $5/mo)
  • fast (global CDN edge)
  • free of lock-in (extensible with Lambda@Edge, etc.)

The pieces

ComponentRole
S3Static asset storage, private, OAC-only access
CloudFrontHTTPS, compression, security headers, global CDN
ACMTLS cert (must live in us-east-1)
Route 53DNS, apex alias
GitHub ActionsKeyless deploys via OIDC

Cost estimate

For a small personal blog (~10k pageviews/month):

  • CloudFront: ~$0.5 (after the 1GB free tier)
  • S3: ~$0.1 (storage + GET requests)
  • Route 53: $0.5 (hosted zone)

About a dollar a month. Compared to Vercel Pro ($20), the gap is wide.

Trade-offs

  • More upfront setup (Terraform learning curve)
  • Preview environments are DIY
  • Image optimization is on you (CloudFront + Lambda@Edge or build-time)

Once it's running, though, maintenance is essentially zero. And because the infra lives in Terraform, reproducibility is 100%.


Comments