Welcome and how this site was built

Welcome to my blog, as the first post I thought I would cover how I built it.

This site is hosted using a AWS Cloudfront and S3 bucket using Jekyll as a static content creator. It also uses Lambda@Edge to provide DefaultObject functionality through all the subdirectories. This is one of the simplest of serverless methods to host a website.

The Key Design Decisions

  • Has minimal dependencies. Only a Route53 is required to utilise this template

  • As of September 2020 we are using TLSv1.2_2019 cloudfron Minimum protocol version. This supports TLSv1.3 so our connection meets the most recent TLS standard in general use.

  • A Lambda@Edge Function is used to provide Root Document ‘DefaultRootObject’ functionality for all folders in the website, not just the root folder. This let you use https://somesite/something/ and don’t have to specify the index.html file on every request.

  • Automatically Creates a Public ACM Certificate to host that site and redirects all traffic to HTTPS

  • Logs access to Cloudfront and S3 content bucket for later analysis

Architecture

Here is a simply diagram created by Cloudformation Designer

This lets you upload a Cloudformation (CFN) Template and create simple diagrams from the resources in the template. You will however need to move objects around to make it understandable. It would be great to add some AI/ML here to help with the layout.

Blog Architecture

References

Cloudfront Template used

Jekyll Website

Jekyll Github

Implementing Default Directory Indexes in Amazon S3-backed Amazon CloudFront Origins Using Lambda@Edge