Disclaimer: This is a personal blog, any views or opinions expressed in this blog are personal and belong solely to the blog author and do not represent those of people, institutions, or organizations that the author may or may not be associated with in a professional or personal capacity, unless explicitly stated. Any views or opinions are not intended to malign any religion, ethnic group, club, organization, company, or individual.
It is very quick and easy to get started with WordPress on Amazon Web Services (AWS). If you want to be up and running for a small blog or test site in less than 10 minutes, check out our post on standing up WordPress on a Bitnami Stack on AWS Lightsail.
There are times when you need a more robust solution. One that can deal with high traffic situations, such as a viral blog post or seasonal web site volume, or maybe you need as many 9’s as possible for website uptime. In that case, you are going to want to stand up a Multi-Tier Auto-Scaling WordPress Site on Amazon Web Services (AWS). We will configure things manually so that you get an understanding of each component and what it does. At the very end, we will automate the full set up so that you can replicate it as many times as you need to. We will follow the AWS Reference architecture closely, with some subtle differences for ease of getting details into blog posts.
We will cover each step of the way and use various AWS Services such as VPC, EC2, RDS, EFS, S3, CloudFront, ElastiCache, and more!
Scalability does come with some drawbacks with regard to keeping themes/plugins up to date; however, it all depends on your goal and what you need for your site. The way you’ve traditionally managed WordPress will be different with this architecture and that needs to be taken into account long-term.
Please note that we are going to put the whole WordPress installation on EFS which does have some latency and performance concerns. We will try to overcome this with caching and CDN; however, if that’s not performant enough for your use case, you may want to only put the “uploads” directory on EFS and then have a process to update the base AMI going forward.
Follow along as we go through this journey together.
- Create an AWS Certificate in AWS Certificate Manager
- Create a VPC on AWS
- Create Security Groups
- Create your EFS Volume
- Create your ElastiCache Cluster
- Create your database on RDS
- Create a Bastion Host
- Create an EC2 Instance, and Install OpenLiteSpeed and WordPress
- Create an Amazon Machine Image (AMI)
- Create Elastic Load Balance (ELB) and Configure Auto-Scaling Group