Since 2011 I've used Rackspace for personal projects. I had my own VPS and used it to host websites and test out tech I was interested in.
Safe to say, my server became a snowflake. As time went on I used it less, and I would forget everything I had installed on it. Obviously this isn't good and could lead to my server having vulnerabilities.
I've had a little free time recently, so I set my self up on a Public Cloud.
At work we've been using Terraform and GCP. We ended up having a fully automated environment, which could be spun up and down in a matter of minutes. Pretty fucking cool if I say so myself. It's such a change from the days of requesting metal via a lengthy process. I digress...
I leaned on what I learned at work to setup my personal websites, even if it was a bit overkill haha.
Using Terraform I created a VPC, compute instances, and cloud sql instances and database tables. In addition to this, I setup my DNS and internal networking rules.
I was quite surprised with how easy it was to setup everything. Terraform is super, super cool. It creates all of your infrastructure based on your code, then stores the state, and then determines if updates are required the next run. Not to mention it's module system made it simple to create reusable components.
The only thing I worked on more than I wanted was actually configuring the compute instances. We used Chef at work, but for my personal projects it was a bit of a hack to get it running without a Chef Server. I resorted to using bash scripts. They accepted user input and go off to install and setup everything needed. It wasn't the best solution, but it was the easiest at the time and for the scale of my projects.
Unfortunately, I won't be open sourcing this code as it would broadcast potential future security vulnerabilities. As much as I trust GCP, I still have my reserves.
Until next time...