I’ve had a few friends ask me to look into their WordPress instances for some redundancy and performance improvements. Specifically they want a highly available wordpress which can auto-scale. Lots of people install the whole stack on a single instance and then ignore it for a while. Some use WordPress on AWS but only utilize EC2. Once performance starts to degrade they typically migrate to a larger server. This process will repeat until the costs skyrocket. Not only that, but they’re getting no redundancy or high availability.

Highly Available WordPress on AWS

This write-up will be in 3-4 parts starting with this introduction. My next entries will be planning and then implementing the deployment of the AWS infrastructure needed to host the HA WordPress instances. I’m going to setup my own WordPress sites on AWS in a Highly Available configuration. There are a few things I know right now and a few things I’m going to need to test out.

This chart may not be exactly how it looks in the end, but this can give you somewhat of an idea.

Planning Infrastructure

We’re going to utilize Terraform to deploy the necessary infrastructure in AWS. Terraform is a great tool for this as it maintains state in .tfstate files and makes it simple to add/remove infrastructure. I know my requirements are to setup multiple instances of WordPress. These instances need to be HA and scale for performance. I would like to go with docker but a plain EC2 instance may be easier to manage. The next entry you will find out what AWS components I’m going to choose as well as some of my results from testing different configurations.

Future

During the implementation write-up I will include terraform code examples as well as strategies used to setup a HA WordPress instance. My final write-up will include strategies for failing over to other cloud providers.

Check out the follow-up to this post

Here’s how I did this with terraform.