Regular Quickhash-GUI users who have stuck with the product for several years will know that I have wrestled with various elements to draw a balance between the elements us open source developers often have, which is presenting our products as best we can but without it costing us a fortune.

In 2016, I moved from Sourceforge to hosting on AWS. Back then, I was quite new to AWS and, like many of us, built a website using largely default settings with little thought to the future. After about a year I had learned a lot more and made some improvements, one of which was the adoption of a Load Balancer to serve HTTPS traffic over SSL. That one thing alone has cost me a fortune ever since; an average of £30 a month all together. That’s quite a lot to pay for a website to just deliver a product that nobody is paying you for anyway!

So I then onboarded Ezoic, in an attempt to generate some ad revenue as donations are not all that common. I ran that for about 18 months until I decided enough was enough. The ads just do not suit my ambitions for the website and no matter how much a tweaked the settings, I couldn’t get it right. They annoy me, so they must annoy my users. So I have ditched that as well. Sure, it means a bit of a dip in the revenue I was trying to collect to cover the hosting fees. But at an average of $10 a month, it wasn’t worth it for the harm I felt it was doing for the ‘image’ of the product.

But not long after first using AWS, the base image I was using was getting out of scope for product updates such as updates to MySQL and PHP. Thanks to security plugins like Wordfence and some AWS backend security measures I think I kept the site online and safe but it kept nagging at me that I needed to migrate to a newer base image but I didn’t want the pain that would surely go with it!

Well, in recent times over the last weekend and the last few evenings, and after much trial and error, I worked out how to

  1. Backup my entire website, including database and plugins values
  2. Launch a new base image
  3. Assign a static IP to it
  4. Temporarily switch the DNS records in Route 53 from the old Load Balancer and server to the new non-load-balanced server (which naturally caused some downtime)
  5. Modified the PHP max upload size in php.ini to allow uploading of large backups from the All-In-One-Migration plugin.
  6. Used Certbot to get a FREE ‘Lets Encrypt’ SSL certificate instead of using AWS’s “convenient, free, but actually expensive option because you’re forced to use a Load Balancer” option, and set it to direct all traffic to https, thus meaning I no longer http to https plugins (so I could then delete them too)
  7. Then switched the DNS records back to the original server while I restored the backup to the new one (by using just the IPv4 internet facing IP address)
  8. Restored all data to the new base image by first logging in to the new WordPress setup, then installing the All-In-One-Migration plugin on the new server and importing the backup
  9. Reconfigured Wordfence for the new server
  10. Reverted the php.ini settings back to what they were
  11. Closed down the old server
  12. Deleted the Load Balancer
  13. Deleted the Target Group
  14. Deleted the Ezoic integration making the site ad free again
  15. Created an AMI of the new server in case something goes wrong!

So, fingers crossed to a bright new future in a new server, at hopefully much less than it was costing before. I calculate that all I now have to pay is for the base image, the data from downloads, the Route 53 traffic, the AWS Workmail fee (of $4 a month for one e-mail address!) and disk storage. No Load Balancer fees anymore I hope. Obviously, if QuickHash-GUI gets a mention on a prime time TV show anytime soon, then obviously I might regret not having a Load Balancer! But hey, that is not likely.

If anyone else needs help with similar challenges, I feel now suitably armed with a bit of knowledge so may be able to help.