This website: static hosting on AWS

  • AWS S3
  • CloudFront
  • ACM
  • Terraform
  • GitHub Actions (OIDC)
  • Cloudflare DNS
  • Cloudflare Access
  • Hugo

Overview

This site is plain HTML built with Hugo and served from a private S3 bucket through CloudFront. The infrastructure is in terraform/, in the same repository as the site. The decisions behind it, and the places where AWS didn’t behave as I expected, are in the article How this website works.

How it’s set up

Why static

A static site costs almost nothing, loads quickly and has nothing to patch. The downside is that anything dynamic, like a form or search, needs a separate service, and I don’t need either here. Production doesn’t sit behind Cloudflare the way dev does, so I run a smoke test against the live site after every infrastructure change to catch any difference.