Steps to Setup a High-Availability WordPress Website
High availability is a measure of the ability of a system to maintain operations despite computer and network failures. High Availability is about ensuring that any system or process is available for use at all times. When you need your business website to be available at all times, high availability is non-negotiable.
Introduction: What is High Availability?
It’s basically about ensuring that any system or process is available at all times, with as little downtime as possible. There are lots of different ways to achieve high availability, but one of the most common methods involves using multiple servers and then ensuring they’re always up-to-date with each other by monitoring their performance and automatically transferring data from one server to another if there’s an issue.
There are many benefits to using high availability as opposed to not having it. High availability is important because it prevents the downtime that occurs when a single system or resource fails. If an organisation uses high availability, they can be more productive, efficient and have less worry. High availability reduces the risk that your website could be unable to perform if there is high demand.
Who should consider a high availability setup?
If your website is your business, then you can’t afford to have any downtime. Companies like eCommerce sellers, publishers and lead generation websites should all consider this type of setup. Rather than relying on a single instance, you can leverage the power of cloud hosting infrastructure to future-proof your website and ensure minimal downtime.
Even if your website doesn’t currently reach the capacity to consider a high availability setup, it makes sense to implement this from an early stage. If you’re anticipating website growth in the future, implementing a high availability configuration from the start could help to reduce the likelihood of failures and downtime further down the road.
High availability is about more than just meeting traffic demands. It can also help to improve security and performance for the end-user. Not too long ago, this process wouldn’t have been worth it for a single WordPress website. The complexities of setting up physical hardware in multiple data centres would have outweighed any benefits. But with AWS Public Cloud, the process is simplified and certainly worthwhile.
Benefits of high-availability setup
There are many technical benefits to running a high-availability WordPress website, but what about the commercial benefits? Business owners will appreciate the following perks to running a high-availability website as nearly all of them offer the chance to increase productivity and profitability. The biggest benefits from a commercial aspect include:
- No downtime costs. When your website goes down during a peak trading time, you stand to lose revenue at the time and could also suffer a blow to your reputation. Shoppers might not be so keen to return to you again in the future if you’ve let them down in the past.
- Lower maintenance costs. A broken website won’t fix itself; it needs a professional to step in and fix the problem. This means that you’re losing money at the same time as spending money to get it fixed. With a high-availability website, you almost eliminate the chances of this happening.
- Improved SEO rankings. A high-performing website needs to be fast and reliable, and this is an essential part of building your standing with search engines. With a high-availability website, you reduce the risk of negative ranking factors like slow loading and broken links damaging your SEO efforts.
- Increase customer trust. When customers know they can land on your website and get exactly what they need without waiting around, they are far more likely to reward you with loyalty, repeat custom and referrals. Keeping your website functioning well around the clock can help to boost revenue.
What is AWS Public Cloud?
AWS stands for Amazon Web Services and it is a fast-growing and evolving service provided by Amazon. The core services are infrastructure as a service (IaaS), platform as a service (PaaS) and packaged software as a service (SaaS). It has quickly grown to become one of the most reliable content delivery services available, and a firm favourite with business owners looking for flexibility and reliability.
AWS launched in 2006 as an offshoot of the infrastructure that is used to host Amazon.com. It now offers a pay-as-you-go subscription model for hosting, computing and storage services that ensures complete flexibility and scalability for the customer.
The high availability setup is achieved through dozens of data centres spread across regions throughout the world. Customers can choose one or multiple regions to help bolster their availability and ensure the best possible availability and uptime. The Public Cloud ensures on-demand availability that is flexible and resilient.
Can anyone set up a high-availability WordPress website?
If you know your way around Amazon Web Services and feel confident with the language below, you should be able to set up a high-availability WordPress website with ease. However, there are distinct benefits to using a managed WordPress installation service. If anything goes wrong during the setup process, you won’t be left trying to troubleshoot the problem.
There are also benefits in having someone else monitoring your WordPress website and staying on top of updates, security patches and more. While Amazon Web Services is fairly intuitive to use, even for seasoned professionals, when you are thinking about the health of your website, it makes sense to outsource this task. However, it’s helpful to understand the steps in the process so that you know how high-availability installations work behind the scenes.
How to set up a high-availability WordPress website
If you are sold on the benefits of high availability over a traditional website setup, you’ll be pleased to learn that the process of setting up and switching to this structure is no more complicated than a standard website installation.
The AWS Public Cloud makes it easy and simple to set up your site while only paying for what you use. From a business perspective, this allows companies to control costs in the startup stages while also being ready for growth and expansion. These are the steps you will need to take to set up your WordPress site in a high-availability environment.
Create an Elastic Compute Cloud
The first step in setting up your high availability WordPress website is to create an EC2 (Elastic Compute Cloud). This can easily be achieved on the AWS marketplace with pre-configured consoles that do all of the heavy lifting for you. You can deploy this directly from the marketplace to your virtual private cloud (VPC).
If you don’t yet have a virtual private cloud, don’t worry. This will be automatically created once you deploy the EC2. But if you already have one or more VPCs set up, you will need to specify which one you would like to use.
If you already have an existing website, all you need to do is backup and restore it onto the newly created EC2. If you are building your website from scratch, the next step will be to install WordPress and start building your website in this new environment.
For the sake of clarity, we will only consider the process of building in one availability zone, otherwise known as AZ resilience, rather than cross-regional. It’s a common misconception that one availability zone means one site. Instead, it is multiple sites in the same region. In theory, a fault at one data centre is unlikely to impact performance at other data centres in the same region.
When setting up your EC2, you will have a choice of regions. If you don’t specify an endpoint, the US West (Oregon) endpoint will be selected for you.
Create an Elastic Load Balancer
The next step in setting up your high-availability WordPress website is to create an elastic load balancer (ELB). An ELB will distribute incoming traffic between multiple Amazon EC2 instances. This ensures maximum uptime and a higher level of fault tolerance, without any intervention from the website owner. The ELB will perform health checks and only direct traffic to healthy routes.
Load balances can be found in the EC2 service within Amazon Web Services, so this is another step that is preconfigured and easy to complete. If you have an SSL certificate, you will need to specify your ELB as the termination point. And if you don’t have SSL certification (and it is recommended), then you can obtain and configure this through the Amazon marketplace. Once set up, you will need to ensure there are redirects from any HTTP pages to the HTTPS equivalent.
Setup your Regional Database Service
A WordPress website cannot run without a MySQL database, and to ensure maximum resilience, we need to run this database on a separate availability zone. This avoids the need to replicate the database across multiple EC2 instances.
A Regional Database Service (RDS) is a managed database service provided by Amazon Web Services. This is an essential step that will help with essential tasks such as data migration, backup, patching and recovery. The migration service makes it easy to import or replicate existing databases to ensure a smooth transition to the RDS.
Install your WordPress database
Now that the Regional Database Service is operational, it’s time to import your WordPress database. If you have an existing website, you can use the migration service to backup and import your database to the RDS.
If you are building a new website, you will need to select the MySQL option within AWS and follow instructions to implement this. Once installed, you will need to update your config file to use the RDS database rather than the local database.
Create your Elastic File Share
Just like your database shouldn’t be set up locally, neither should your file storage. Files need to load remotely, rather than being stored locally on the EC2 instance. If the files are stored locally, they would have to be replicated across all instances, which would be a waste of resources. Instead, we use an Elastic File Share to create a single point of contact for your media files.
An Elastic File Share is a scalable file storage system that instantly shrinks and grows as demand increases or decreases. No more worrying about having enough space, simply set it and forget it. To set up this file storage system, you will need to select the same availability zones as your EC2 instances. Once created, you can copy across your media content and then update your config file to point to the EFS share.
Clone your EC2 Instance
At this point, your website infrastructure is ready to go, all that you need to do now is use the Amazon Machine Image to clone the EC2 instance into a separate availability zone. Once the AMI is deployed to a second EC2 instance, you can then add this to your elastic load balancer. At this stage, visitors landing on your website will be directed to one of two instances, depending on the health of the availability zone. If there is an outage in one availability zone, your website will not be impacted.
Maintenance on AWS
When it comes to maintaining your website, you’ll have the added benefit of no downtime. Since the website can be loaded across multiple availability zones, you can update in one location, test the changes, and then implement them across all zones without any downtime.
In summary, high availability is the ideal choice for businesses at every stage in the growth cycle, from startup to scale. If you want a reliable website and you only want to pay for the resources you need at that precise moment, then AWS offers the ideal solution.
At a time when internet users have a low tolerance for unpredictable and unreliable web experiences, ensuring that your website is reliable and fast is an essential step. Using the steps outlined above is one of the best ways to ensure your WordPress website is up and running when you need it the most.
If you’re using a managed WordPress installation service, you can achieve all of these benefits without the stress of getting to grips with the ins and outs of Amazon Web Services.