Here is a high-level summary of our team’s effort to migrate dozens of WordPress websites from WP Engine (and Inmotion Hosting) to AWS EC2 instances.

Preparation

If you were using LargeFS to move wp-content files to S3, call WP Engine support and have them migrate files back down to your website(s) prior to the migration to AWS.

In addition, we recommend purchasing the Duplicator Pro WordPress plugin to perform the migration. If you have many sites and you foresee migrating additional sites in the future, go with the Gold option.

AWS Server Management

We tried a few Cloud Server Control Panel options before landing on SpinupWP. Don’t take our word for it — here are some reviews from Trust Pilot. If you have a team managing your servers, you will want to select the Team edition.

Perform the Migration

1 – Take a backup of your site(s) using WP Engine’s portal.

2 – Use Duplicator Pro (see above) to download backups for your site(s).

3 – Use SpinupWP to spin up a new EC2 instance in AWS. Read SpinupWP’s Getting Started guide.

  • On the AWS side, we recommend using a General Purpose instance type. As of 2022, we used a combination of t3.small and t3.medium instances. The latter supports 10-20 sites. You can read more about selecting the right size server here.
  • SpinupWP runs on Ubuntu. You will have to check to see what is the latest version of Ubuntu that SpinupWP supports. Check here.

4 – Once the server is up and running, spin up a new site using SpinupWP.

5 – Migrate site(s) content using Duplicator Pro. Here are the steps.

6 – (optional) In our case, our DNS Registrar is Cloudflare. This infrastructure choice allowed for us to use Cloudflare’s CDN and security features such as its Web Application Firewall (WAF).