Moving this blog to static hosting - hosting options

4 minute read

I discovered the other day that the Jekyll static templating system has the capability of importing content from various blog systems. At the same time I was setting up static hosting for a client at $work on Amazon Web Services.

Since then I’ve been thinking about moving this blog to a static format. I don’t really use much of the functionality WordPress provides, I get more comments on my G+ posts of my blog entries than on the blog itself, and static file hosting is way cheaper and easier than maintaining an actual server somewhere.

We also use Jekyll a lot at work for building frontend sites so I should learn more about how to actually use it, and I have handy developer support if I can’t figure things out. ;)

In an ideal world, I’d like the resulting setup to be usable by my wife for any simple blog sites she wants to setup as well. This is somewhat of a low bar – my wife used to write semiconductor documentation in LaTeX – but I do want to minimize any support required from me. So a simple setup and process is key.

First I figured I’d better see what static hosting options there are.

My requirements

I must admit I enjoy being the one setting the requirements instead of being given them. ;)

  • Cheap - my blog is not a tier 1 web site or even tier 50, my budget for this basically as little as possible
  • Tools - it’d be great if I could have an automated process for building & deploying blog updates
  • URL - my blog needs to stay under the current URL
  • TLS - my blog should to be served over HTTPS even if there’s no functionality specifically requiring security
  • IPv6 - my blog should be accessible via IPv6 if possible

Contenders

  • Amazon S3 + CloudFront
  • Rackspace Cloud Files
  • Google Cloud Storage
  • Microsoft Azure

There are a ton of other options if I wanted to include normal web hosting, which could certainly handle a static site, but part of the exercise here is to only use a static hosting option.

If you know of another static hosting option I should’ve included let me know!

Amazon Web Services S3 + CloudFront CDN

Working with AWS S3 and CloudFront CDN at work was what first got me thinking about moving my site to static hosting. It doesn’t have IPv6 yet, but does have everything else I’d need, and I’m familiar with various tools to automate uploading. Plus it’s super cheap.

AWS has very limited IPv6 support, and not on S3 or CloudFront. But it does support custom domains with your own SSL certificate, which is great.

Rackspace Cloud Files

The first option I wasn’t already familiar with was Rackspace Cloud Files. My current little server hosting this blog is at Rackspace, so I have an account setup. Their marketing suggested IPv6 is available, which I confirmed, and I was quite interested to see their cloud CDN is actually rebranded Akamai, which is a huge global CDN that I’ve worked with a lot before at $work. Generally it all looked quite promising.

Setup of the bucket was quick, but I was unable to upload a test file through their web interface, just kept getting errors. Searching for other tools was not as fun, most of the command line tools seem dated and Rackspace’s documentation is confusing. Eventually I just installed CyberDuck on my Windows PC and was able to put up a test file. I was able to CNAME a test host under my domain to the Cloud Files URL and it worked as expected.

Unfortunately, most likely because of their Akamai integration, Rackspace is unable to provide TLS for Cloud Files sites using a custom domain. That plus the crusty tools and confusing docs take this one off the list.

Google Cloud Storage

Google seemed a strong contender, especially with their huge network and IPv6-everywhere attitude. However, although they do allow pointing custom domains at Cloud Storage buckets they also do not support HTTPS with custom domains.

Microsoft Azure

I haven’t ever really used Azure, but I thought I’d check them out. Based on the documentation it seems generally OK. You can point custom domains at both Azure File Storage directly as well as the Azure CDN, but neither support HTTPS with custom domains. And no IPv6 anywhere on Azure.

Conclusion

At this point the only static hosting provider I know of that can give me TLS support with a custom domain is Amazon. I’m disappointed that they don’t support IPv6, but hopefully they’ll figure that out soon (like everyone else they’ll be running out of IPv4 addresses) and otherwise I’m happy to give them a shot.

Next I’m planning to write up the process of migrating the blog from WordPress to Jekyll. We’ll see how that goes. ;)

If I missed anything feel free to let me know in my G+ post of this entry.