It has been a while since I’ve reconsidered how my personal sites and projects were hosted. Long before I went to work at Red Ventures, I started hosting my sites on a Bluehost VPS server. I really didn’t have much of an issue hosting this way, my traffic was fairly low and I made sure I was setup to scale should something suddenly go viral. Early on the costs were low, it was kind of ridiculously cheap, but those costs have crept up and this year my bill was looking to be $194.
But over the years, this hosting solution has started to feel stale and rigid. I wanted a hosting solution that was smaller, faster, ligher, leaner, and more modern. The LAMP stack while it has its good parts, has some limitations. I think working inside a LAMP stack is a great place to begin, its a virtual sandbox with which you can do anything you’d like. The limitations started to show themsleves as I began to work with single page applications and microservices. I previously thought it was handy to work with all of my projects inside the same server, now I wanted to decouple all of it from eachother.
I had a few requirements to consider when I started this project:
- I hosted a number of sites for other people, some were paying clients.
- Most of my sites are low traffic with bursts of interest, I didn’t need a large expensive solution.
- I wanted to start taking advantage of edge caching.
- I wanted to easily implement a modern CI pipeline into my personal workflow.
- I’d like to achieve a cost savings compared to my previous hosting solution
- It needs to be easy to maintain.
With these goals in mind I began looking for solutions. The obvious choice would be to just go with all the AWS services I need and call it a day. But, while reasonably priced many Amazon services come with a lot of overhead in most cases. This overhead can be actual money, but it can also come in the form of labor to spin it all up, and maintain it. I also intially looked at Amazon’s Route53 as a DNS host. I quickly realized I didn’t need all of the Route53 features. So I landed at just managing all my Domains through Hover’s DNS tools, which are transparent and robust enough for my purposes.
I then turned my attention to the number of WordPress sites I was hosting. I reached out to the respective site owners to get a pulse check on who wanted to stay with me during this move and who wanted to move their site elsewhere. A couple of people took their sites to another Friend who was willing to host them, as my free ride was ending. Two remaining WordPress sites would need hosting and I wanted to have my own WordPress install to use as a simple content API. When looking for solutions here there was some expensive choices, but I wanted to keep everything small.
Amazon’s Lightsail hosting service allows you to setup a small VPS server with a Plesk control panel UI. The users of this VPS would end up being my wife and myself. With the Lighsail server Plesk offers users a 3 domain lifetime liscense to their software. (Turns out this is actually a pretty sweet deal) This allowed my wife full control over her server, and allowed me more granular control of each domain. Instead of cramming it all in subdirectories, sites would now have their own hosting accounts. I knew one of these WP sites was only staying on the server temporarily, which would leave us with one open spot we can fill in the future as my API was taking up the third hosting slot. It occured to me as I was working through this process, the Lightsail server would make a decent starting host for nearly any API I wanted to build, and I planned to use it accordingly.
In addtion to the WordPress sites, I have a few static SPA style sites that did not need the robust LAMP stack hosting. These were also the sites that I wanted to start practicing Continuous Integration in my personal work. I was talking to a co-worker and lamenting about the un-helpful nature of S3 buckets. Don’t get me wrong S3 buckets are great, but they’re meant to hold files not host sites despite being able to do both. He mentioned that he hosts a number of his personal projects on Netlify, and as a bonus unless you used a lot of bandwidth, it was free.
I went investigating Netlify, and its amazing. They will set you up with a CI pipleline that integrates very nicely with your Git repository. You get 300 build minutes per month for free, and in my epxerience unless you’re a large scale application you’re not going to need that much build time. For personal sites, and small businesses it seemed like a perfect host. Did I mention it would also be free?
So now I begin the work of migrating all of these sites. My old VPS host goes offline on 6/29, so all the work will need to be completed before that time. That deadline shouldn’t be a problem. This will be fun!