diff options
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 28 |
1 files changed, 28 insertions, 0 deletions
@@ -2,6 +2,34 @@ Joe Carstairs' personal website +Structure: + +├website: My public-facing website +└infrastructure: The infrastructure of my website as code + +## Infrastructure + +The infrastructure has these components: + +- AWS Route53Domains (for domain name registration) +- AWS Route53 (for domain name resolution) +- AWS CloudFront (for path-based routing) +- AWS S3 (for static website hosting) + +The CloudFront bit is needed, because S3 static website hosting can only accept +HTTP requests. CloudFront manages receiving HTTPS requests and forwarding them +to HTTP. + +The S3 bucket includes a secret string of random characters. This is because +when you set up static website hosting, the S3 API becomes open to the internet, +and there's no way to turn this off. So you are theoretically open to DDoS +attacks, for which you will be charged. Including a random string in the bucket +name makes it less likely that an attacker will find the bucket to send requests +to. + +The secret is stored in a GitHub secret called `S3_BUCKET_SUFFIX` so that it can +be accessed by GitHub Actions workflows. + ## Invalidating the CloudFront cache When you update pages, you’ll need to invalidate the CloudFront cache in order |
