I’ve finally completed the migration of this site from Rackspace to GCP. I switched over the DNS record this afternoon, and everything seems fully functional. I’m even using Cloud Logging and BigQuery to analyze my Apache access logs.
As described previously, the architecture of this new site is different than the deployment on Rackspace. The original site ran a MySQL server locally on the virtual machine. This worked well enough, but if I lost the machine, it meant I would also lose the database.
With the move to GCP I instead deployed a dedicated CloudSQL instance for the WordPress database, and the GCE instance connects to that. While the cost of running the site is about 15% more, it does mean my site is much more reliable since I now have automatic backups of my database. And since the virtual machines are basically stateless, I can run more of them if needed.
I even figured out the issue with recreating the Media Library on the new machine — and it was simpler than I thought. When importing the XML backup, you simply enable the import of Attachments and Files, and the media is fetched on the fly from the original website, and installed in the new Media Library. Of course, this means you must leave the original website running during the migration, but that’s something you should be doing anyway.