In December of 2024, I wanted to write a nice Christmas letter and send it off to friends and family. My wife convinced me that we are living in modern times and it's much easier to connect with a wider audience using social media. So - let's write a digital version, she said. I thought that was a great idea, so I started writing one up. As I began writing it, I realized I didn't really have a good spot for hosting the letter, as I wanted to add some fancy little visual effects that Facebook itself doesn't support, and I didn't have a web server set up.
It turns out that Amazon Web Services (AWS) now offers extremely inexpensive ($5/month) virtual private servers (VPSes) through a service called Lightsail. This is a game changer for me, as I had previously looked into setting up a basic web server in the past but it was looking more like $20/month through Elastic Cloud Compute (EC2), another AWS service. I am a 40-something cheapskate with five kids. There are inexpensive hosting options online (I've used Bluehost in the past), but I am also something of a control freak when it comes to technology. I like to know exactly what is going on under the hood and be able to change the little details if needed. So this cheapo VPS option was the best of both worlds.
That's not to say that Lightsail is perfect for all applications. For example, when I went to set up MySQL on the machine, I immediately ran into memory issues. The smallest dual-stack (IPv4 and IPv6) VPS available costs $5/mo and that gets you: 512 MB RAM, 2 vCPUs, 20 GB SSD. You might recognize 512 MB as... not a lot of memory. So when using the Ubuntu 22.04 image like I did, you need to set up swap space right away. Otherwise even basic operations (like installing the awscli) will run out of memory pretty quickly.
But once swap is set up, the instance works like a happy (if wimpy) little Linux server! The other cost one would run into going this route is, of course, a domain. I have had "siefken.us" for something like 15 years now, and I typically just use it for a catch-all email that forwards to my GMail account (there's plenty to talk about in that department, but I'll save that for another article). So given that I already had a domain and it's sort of strange and suspicious to post links using only an IP address, I set up domain records for "siefken.us" and "www.siefken.us" to point to this new little server. The domain work is easy - the AWS console is very friendly. I also remembered the basics of installing the Apache2 web server software on Linux, so I walked through that manually, and plopped a couple of files on the file system manually, and boom - instant web server!
Mind you, this is clearly a lot more work than setting up a site on Wix.com or something, but I'm kind of old-school. I've been playing around with the internet since around 1994 when it first came to my hometown. So I find these sorts of activities fun to pick at.
I posted my little holiday letter link on Facebook with all the appropriate "meta tags" so that it would show up nicely with a preview page and everything, and I felt great about how it turned out. I was pumped to have a little play space away from work for tech exploration again.
Have you tried setting up a VPS for personal projects? Share your experiences in the LinkedIn comments, and stay tuned for the next part, where I tackle automating infrastructure!