Guide: Free Web Hosting on AWS, with VestaCP and LetsEncrypt SSL!
I have been hosting this domain name (and a bunch of other ones) completely for free on Amazon AWS for almost a year now, so I figure I should share my secret here.
You see, whenever you sign up for Amazon AWS, they will give you 12 months worth of their “free tier” services. This means you can spin up a t2.micro EC2 instance and run it completely for free!
A basic t2.micro EC2 instance can actually handle web hosting for quite a few web sites (as long as they are static or small WordPress sites, such as this blog you are reading right now).
But who has time to go configure a bare metal linux box? For some people, this would be easy, but for the average layperson, it can be daunting. They would have to have extensive knowledge of numerous software components and security procedures if they wanted to set it up properly.
This is where control panel toolkits (such as cPanel, Plesk, and VestaCP) really come in handy. By installing a control panel on your linux box, you can turn it into a full blown web server, complete with automatic security updates and a web admin area for managing your server and all of the sites you are hosting on it.
Unfortunately, control panels like Plesk and cPanel have licensing costs, and by the time you pay for a license, you might as well just be paying for a virtual server from some place like hostgator or godaddy.
Enter VestaCP. It is totally free to use (although they offer paid support plans, if you are running a commercial enterprise), and it is full featured and crazy polished. It even has built in support for LetsEncrypt (free SSL), which can be enabled on your sites with just the click of a checkbox.
It initially took a little bit of effort to figure out how to install VestaCP on a free AWS EC2 instance (there weren’t any other guides out there on the topic), but I ultimately succeeded. My free server has now been running rock solid for almost a year straight (with no reboots), with zero maintenance or effort required on my part, and has handled millions of traffic hits across all of the different domain names I host on it. You can see how fast it is, too, just by reloading my blog home page!
I ended up recording a Youtube video of the step-by-step setup process, if anyone else wants to follow along and set up their own server: