Skip to content

8.Wordpress

1. WordPress: fault tolerant and scalable (MySQL)

Use this CloudFormation template to create a fault tolerant and scalable WordPress environment on AWS running on MySQL.

1.1. Features

  • HTTPS only
  • CDN caching static files
  • Scalable file storage
  • Fault tolerance due to multi-AZ setup

1.2. Services

This template combines the following services:

  • CloudFront: CDN for dynamic and static content
  • ELB: load balancer forwarding requests to EC2 instances and terminating SSL
  • EC2: virtual machines running the web servers
  • EFS: storage for WordPress files (WordPress core, plugins, themes, user uploads, ...)
  • RDS: MySQL database

Architecture

1.3. Installation Guide

Important: A custom domain name (e.g. www.yourdomain.com) is needed before installing Wordpress based on this template.

  1. This templates depends on one of our vpc-*azs.yaml templates. Launch Stack
  2. Create an ACM certificate for your custom domain name within the region you want to launch your stack in. Copy the ARN of the certificate. This is for the ELB.
  3. Create another ACM certificate for your custom domain name in region us-east-1. Copy the ARN of the certificate. This is for CloudFront (note: CloudFront only supports ACM certificates in us-east-1)
  4. This templates depends on one of our zone-*.yaml templates. Launch Stack
  5. Launch Stack
  6. Click Next to proceed with the next step of the wizard.
  7. Specify a name and all parameters for the stack.
  8. Click Next to proceed with the next step of the wizard.
  9. Click Next to skip the Options step of the wizard.
  10. Check the I acknowledge that this template might cause AWS CloudFormation to create IAM resources. checkbox.
  11. Click Create to start the creation of the stack.
  12. Wait until the stack reaches the state CREATE_COMPLETE
  13. Copy the value of CloudFrontDomainName from the Outputs tab of your stack.
  14. Create or update a CNAME/Alias record for your custom domain name pointing to the CloudFrontDomainName from the previous step.

1.4. Dependencies

  • vpc/vpc-*azs.yaml (required)
  • vpc/zone-*.yaml (required)
  • vpc/vpc-*-bastion.yaml (recommended)
  • security/auth-proxy-*.yaml
  • operations/alert.yaml (recommended)

1.5. Limitations

  • WordPress will only run in two Availability Zones, even if your VPC stack has more.
  • PHP files are cached for 300 seconds on the web servers.
  • Static files wp-includes and wp-content are cached for 15 minutes on the CDN.
  • Pre-defined auto-scaling might not be able to cover your requirements and needs load and performance testing.
  • No backup of EFS file system

2. WordPress: fault tolerant and scalable (Aurora)

Use this CloudFormation template to create a fault tolerant and scalable WordPress environment on AWS running on Aurora.

3 or more AZs required

2.1. Features

  • HTTPS only
  • CDN caching static files
  • Scalable file storage
  • Fault tolerance due to multi-AZ setup

2.2. Services

This template combines the following services:

  • CloudFront: CDN for dynamic and static content
  • ELB: load balancer forwarding requests to EC2 instances and terminating SSL
  • EC2: virtual machines running the web servers
  • EFS: storage for WordPress files (WordPress core, plugins, themes, user uploads, ...)
  • RDS: Aurora database

Architecture

2.3. Installation Guide

Important: A custom domain name (e.g. www.yourdomain.com) is needed before installing Wordpress based on this template.

  1. This templates depends on one of our vpc-*azs.yaml templates. Launch Stack
  2. Create an ACM certificate for your custom domain name within the region you want to launch your stack in. Copy the ARN of the certificate. This is for the ELB.
  3. Create another ACM certificate for your custom domain name in region us-east-1. Copy the ARN of the certificate. This is for CloudFront (note: CloudFront only supports ACM certificates in us-east-1)
  4. This templates depends on one of our zone-*.yaml templates. Launch Stack
  5. Launch Stack
  6. Click Next to proceed with the next step of the wizard.
  7. Specify a name and all parameters for the stack.
  8. Click Next to proceed with the next step of the wizard.
  9. Click Next to skip the Options step of the wizard.
  10. Check the I acknowledge that this template might cause AWS CloudFormation to create IAM resources. checkbox.
  11. Click Create to start the creation of the stack.
  12. Wait until the stack reaches the state CREATE_COMPLETE
  13. Copy the value of CloudFrontDomainName from the Outputs tab of your stack.
  14. Create or update a CNAME/Alias record for your custom domain name pointing to the CloudFrontDomainName from the previous step.

2.4. Dependencies

  • vpc/vpc-*azs.yaml (required, 3 or more AZs required)
  • vpc/zone-*.yaml (required)
  • vpc/vpc-*-bastion.yaml (recommended)
  • security/auth-proxy-*.yaml
  • operations/alert.yaml (recommended)

2.5. Limitations

  • WordPress will only run three Availability Zones, even if your VPC stack has more.
  • PHP files are cached for 300 seconds on the web servers.
  • Static files wp-includes and wp-content are cached for 15 minutes on the CDN.
  • Pre-defined auto-scaling might not be able to cover your requirements and needs load and performance testing.
  • No backup of EFS file system