Saturday, April 17, 2021

Lightsail - My Journey from GoDaddy to AWS


About 9 months ago, I decided to migrate my 3 domains and 2 websites from GoDaddy to AWS.  I had been a loyal customer of GoDaddy for 20+ years, but as more and more of my projects and customers migrated to the cloud, it seemed logical for me to do the same.

I first attended an AWS Summit event about 6
years ago.  I appreciated the seriousness with which each speaker took his/her presentation and the uniform recognition of the scope of Amazon's mission to simplify and improve software delivery.  Having previously been responsible for maintenance of departmental hardware in my role at Sun Microsystems, I immediately recognized the value proposition that cloud computing offered.

Since then, the vast majority of the software projects that I have managed were either predominantly or completely hosted in the cloud, mostly AWS but also Azure and GCP.

For my simple needs, and to control budget, I determined that I would use the following AWS services:
  • Lightsail ("Virtual private server for a low, predictable price")
  • Route 53 ("A reliable and cost-effective way to route end users to Internet applications")

The Migration

Here is a guide to the migration, with a few comments along the way!

Provision the Lightsail Instance

Login to your AWS account and provision the Lightsail "instance" here:
This was relatively simple, especially given my somewhat outdated and incomplete understanding of infrastructure provisioning.  Note that I also had to account for multiple domains.  This video was helpful:
After navigating the Lightsail Create Instance wizard, which takes a matter of a couple of minutes at most, you simply input the Public IP (provided for each instance) into the web browser address field and it renders your "base website".  

I particularly appreciated the following:
  • The AWS Lightsail web UI provided an SSH console "out-of-the box"
  • I did not have to pfutz with encryption keys

Migrate Content

I used the Aptana SFTP client to migrate, en-masse, my htdocs content, as follows:
  • Configure SFTP connection from Aptana client to the Public IP for the instance provided through the Lightsail web UI
  • You will need the default username and password generated by Lightsail Create Instance wizard (see the previously noted video for details)
I also used this as an opportunity to clean up my legacy web content.  There was (and still is) "tech debt" that needs to be repaid to minimize future maintenance overhead.  Here are some integrations, specific to my content:
  • Github's public API: Worked without issue
  • Google Maps integration: Worked without issue
  • Google Blogger blog feed: Worked without issue
I performed a side-by-side comparison of the functionality of the existing site (GoDaddy) and the migrated site (AWS Lightsail).  This helped identify 2 minor regression issues, that I have noted and still have to troubleshoot in more detail.

Domain Registration

Refer to this guide that is specific to GoDaddy -> Route 53 domain registration migration:

Key Takeaways

Benefits

In my most recent roles, I am less "hands-on-keyboards" than I used to be.  

However, I still find great value and satisfaction in having a basic understanding of the technologies and services at play.  Performing this migration helped me to better understand the AWS ecosystem and, more generally, the operational mental model and nuances of cloud infrastructure when compared to on-premise.  

It will also provide me with a platform should I need to perform first-hand exploration of other emerging technologies and services.

Complications

I achieved "secure http" -- or https -- as part of the migration to AWS Lightsail.  However, this required a little more work than I was expecting.  These additional instructions helped me navigate this:
My legacy content was dependent on a MySQL database.  Therefore, I selected the AWS Lightsail Bitnami LAMP stack image.  I encountered some confusion in the database setup, although this helped:I was also migrating a WordPress-based site to AWS Lightsail.  The following instructions helped with this part of the migration (and eliminated the need for me to respond to a series of GoDaddy alerts to perform WordPress updates!):

Cost Management

Lightsail promises a "low, predictable price".  Amazon also provides this pricing estimator.  For my situation, I also ensured cancellation of my GoDaddy license and disabled auto-renewal.

Of course, I have heard stories about runaway costs and budget challenges given the AWS price structure and, more generally, cloud metered pricing.  As a result, over the months since my migration, I have paid close attention to my charges from either AWS or GoDaddy.  

I am very happy to report, there has been no double-billing or unexpected charges and, moreover, my net monthly hosting expense has been reduced!