Initial Layout

I’ve had the idea of building out a blog for a while, but was really turned off by the options that I knew of for building and deploying a blog site. I didn’t like Wordpress and how cumbersome it seemed to me, I know I didn’t want to build a complete site from scratch and while I love bootstrap, I felt like I wasn’t advanced enough to be able to provide a quality experience without constantly breaking the site and/or testing for end user experience.

That’s when my friend Adam introduced me to static site generators like Jekyll. While very intriguing, I disliked the idea of needing to maintain a Ruby environment in order to build my site. That’s when I stumbled upon Hugo. Built in GO and a self contained executable. After some research into the technology, I decided to give it a go.

So, I decided on the generator for the site, but how was I going to host it? Well, I figured it was time for me to eat my own dog food, so I proceeded to use AWS S3 to host my static website.

AWS Bucket and Route 53 Layout

This was my first foray into true AWS utilization. I started with building out a wordpress site some time ago on EC2 with an elastic IP, but found this to be cumbersome, costlier than I wanted and so didn’t end up using the platform regularly enough to be productive. To add to the issue, I didn’t have a clear context of how to register my domain and then attach it to the elastic IP address. Once I found the walkthrough for hosting my site on S3, I proceeded to follow the directions.

AWS Site Image

I started with AWS’ Route 53 domain registration for thatmatthoyt.com. Once that was completed, I needed to create my S3 buckets for my content and for my redirect. This is where things got a little confusing, but once I read the documents a couple times it all made sense. An S3 bucket was created for both thatmatthoyt.com and www.thatmatthoyt.com. The base domain, thatmatthoyt.com holds all of my static content. That content, which starts with a traditionally index.html, is where any end users access this content. If a user goes to the www. subdomain, then that S3 bucket has a redirect built in to send it to the first bucket, thus serving the website.

Once I had the S3 layout done, I had to make sure the proper A records were placed in my Route 53 DNS settings. I made 2 A records in total, one for my domain S3 bucket and one for my subdomain bucket. Taking a look at the (very) high level architecture pic I built you can see that all access of the A records will go to their corresponding buckets where it will either directly access the static content or it will redirect to the content.

Overall, I’m pretty happy with how Amazon has laid out their static site offering. Documentation is slightly confusing and has some typos but still is a great resource for getting everything working from their S3 offering. The price is right and the service works great. In the next iteration of this project blog, I’ll be showing more in depth on the bucket layout structure.

Matt Hoyt is a current IT Architect in Columbus, OH. All thoughts displayed here are his and his alone.