You’re ready for the Deep Dive! If you haven’t checked out my “considerations” document yet, start there so you can get your grounds for where this document started.
Generally speaking, we would have an entire multi-page document detailing the scope, of our project and the exact details of what we would cover with the expectations of outcome that we believe we can reasonably achieve for the client. Since this is a write-up to assist you with technical deployment, I’ll bypass the business/project management side.
Okay, our client agreed to our service contract. $20/month hosting and $75/hour building, $100/hour maintenance, and $135/hour resolution handling.
RTO – 2 hours.
RPO – 1-hour recovery/restore point.
Basically, a GCP VM instance with WordPress installed and configured, Cloudflare serving as the DNS registrar, and backups going to my cloud-provided storage solution.
Deep Dive #
Google Cloud Platform Configuration #
Put everything into its own “project”. This helps drastically with billing, switching between tasks without accidentally rebooting the wrong instance, etc.. .
So, head over to Google Cloud Console and select “NEW PROJECT”. Add an easy-to-follow project name, we typically use the client’s business name or domain name to track the project.
Select the project that you just created and head over to the “marketplace”.
Once you’re there, search for the “WordPress Certified by Bitnami and Automattic” WordPress deployment. Automattic = JetPack (FYI)
In this scenario, our customer wants a monolithic instance for under $20/month. We will use the default instance requirements which should cost around $13.60/month for 1vCPU and 1.7GB of memory. We’ll up the storage to 20GB of Standard Persistent Disk to support on-machine backups.
Make sure you grab the WordPress SSH keys, username, etc.. after GCP confirms the successful launch of your instance.
The rest of the WordPress configuration and environment variable configuration is up to you. But if you need help, reach out and I’ll gladly assist.
Don’t forget to head over to VPC network –> IP addresses to set a static public IP for your instance.
Now that your instance is online, you’re able to access it, and you’re ready to redirect the domain requests to the static IP you assigned – you’re ready to configure Cloudflare!
Cloudflare Configuration #
All you need are two records.
A – example.com – x.x.x.x (static ip)
A – www – x.x.x.x (static ip)
And make sure you use the “proxied” offering from Cloudflare – that’s why we are using them!
Backup Configuration #
Heading back to our WordPress instance (example.com/wp-admin), we can now sign back in using the domain name, not the IP! Navigate to Plugins and “add new”.
Look for “Backup Guard“, it’s hands down the most affordable and easy-to-use plugin for backing up your contents, restoring, or migrating your WordPress data. It’s especially powerful for those of us that operate WordPress like a service provider. This plugin, for $99/yr offers us unlimited sites, no backup limits, backups to cloud providers, etc…
Best of luck with your deployment, and remember to back up your clients’ data!