Oleksandr Fesak

Oleksandr Fesak


Amount of businesses that failed due to poor web hosting is tremendous. You can make a stunning design, build a quality product, build your brand, and build a sales funnel, but if you take hosting lightly, it can ruin everything you did. Surprisingly, how many web hosting propositions are available across the web, and they all look so promising that you might think nothing could be better.

Web hosting is like a truck, which needs to be fast enough, reliable, and strong enough to carry heavy loads.

In this article, I will examine the following topics:

  • What is the high availability on a website
  • What are 3 types of web hosting commonly used for WordPress
  • How to install AWS hosting for WordPress with preinstalled cPanel

What is the high availability on a website

People usually say that website hosting availability is when the server is able to respond 99.9% of the time. I'd include a load resistance here too, otherwise it makes no sense if the server that is up 99.9% of the time goes down because of too many connections.

Below is a list of key facilities (services) that help in better availability of the site:

  • Correct web hosting. More information about that I will write below.
  • CDN service.
  • Proper caching mechanism.
  • Load balancer (rarely used for WordPress).

Of course, the WordPress website should be technically correct itself, otherwise no one hosting will help.

What are 3 types of web hosting commonly used for WordPress

Type 1. Shared hosting

In this type of web hosting, your website resides on a single server instance along with others, and all resources are shared among all sites hosted on that server.

Advantages of shared hosting:

  • Low cost.
  • Simplicity in use.

Disadvantages of shared hosting:

  • You are restricted in traffic and bandwidth.
  • Shared resources are not isolated. In the case of a traffic surge on one website, all others may go down for some period.
  • A large number of websites are usually hosted on one server instance, about one hundred.
  • You are limited in the number of websites you can host.

Type 2. Managed WordPress hosting

This type of web hosting offers isolated system resources and a ready-to-use WordPress environment.

Advantages of managed WordPress hosting:

  • Simplicity in use.
  • Very quick site setup.
  • Backup and staging options in a few clicks.

Disadvantages of managed WordPress hosting:

  • You are restricted in traffic and bandwidth.
  • You are restricted in the amount of hosted websites.
  • You don't know the exact hardware resources you pay for. We think users significantly overpay for the allocated resources they have.
  • Most of the managed WordPress hosting platforms have their global server-side cache to speed up hosted websites. It cannot be disabled, it cannot work together with other caching mechanisms, and in some cases, it can cause problems when developing user flows of higher complexity. In EcDev Studio we can make a custom caching configuration that provides a pretty higher speed increase than such a global cache. This is a primary reason why we don't recommend managed WordPress web hosting to any of our clients.

Type 3. Cloud server

Before talking about cloud servers I want to mention such hosting types as VPS (Virtual Private Server) and Dedicated Server. They are advanced hosting types and they offer isolated resource allocation. When you purchase hosting, the initial configuration and launch of the server instance are handled by hosting company staff, and the hardware configuration is fixed. VPS and classic dedicated servers we consider outdated hosting types and I will not describe them in detail in this article.

The cloud is a network of connected hardware with the ability to quickly set up server instances, change their configuration on the fly, or destroy them. Unlike VPS and dedicated servers, with cloud server instances all the operations are performed without human staff involvement. For example, it is possible to change RAM, CPU, and SSD storage with just a few clicks without contacting customer support.

The cloud server is an advanced and recommended approach to hosting websites. There are such popular cloud server providers as AWS (Amazon Web Services), Google Cloud, Microsoft Azure, Heroku, and Digital Ocean. In EcDev Studio our preferred provider is AWS so in this article I will provide an in-detail guide on how to host a WordPress site on AWS without previous knowledge of cloud administration.

Advantages of cloud servers:

  • Infrastructure is backed by a large company.
  • Easy and fast setup in a few clicks.
  • Relatively high overall performance and stability of the cloud server instance.
  • You are able to choose the exact hardware resources you pay for.
  • You can pay $30-$80 per month for the average resources and host an unlimited amount of websites. Of course, you should care if the allocated server resources are enough for your needs.

Disadvantages of cloud servers:

  • Together with total freedom, it usually requires higher skills in order to administrate the server instances. Administration tasks can be simplified in case of using options with a preinstalled web panel like cPanel.
  • You need to have basic Linux skills in order to connect to the server and check the disk usage, as well as RAM/CPU usage.

How to install AWS hosting for WordPress with preinstalled cPanel

In this guide, we will launch the AWS EC2 instance of class t3.small. AWS EC2 is an on-demand computing service based on the AWS cloud platform, that allows you to create server instances quickly and scale them as needed. The total approximate price in the us-west-2 region (Oregon) is $30.96 per month. I say approximate because billing is calculated on an hourly basis. Later, you will be able to scale your server to a higher plan according to your needs based on the expected number of hosted websites, traffic, etc.

Here is what's inside the t3.small package:

  • 2 X CPU Intel Xeon 3.1 GHz.
  • 2 GB memory.
  • 20 GB SSD disk space.

In this guide, I will show how to create a server with cPanel, however, in the real case, you will be able to use a free CentOS Web Panel instead of a poplar cPanel, but in that case you'll need to manually install it on the server via SSH. Below is a step-by-step instruction for setting up an AWS EC2 instance with preinstalled cPanel.

Part 1. Creating EC2 instance

Step 1. Log in AWS console, and switch to the right region.

Step 2. Enter EC2 in the search, and click on the corresponding service.

EC2 search

Step 3. Click on “Launch instance” and choose “Launch instance”

Launch instance

Step 4. Set the server instance name, for example, "WordPress Web Server"

server instance name

Step 5. In the search enter “cPanel&WHM for Linux” and press Enter

search cPanel&WHM for Linux

Step 6. In the tab “AWS Marketplace AMIs” select “cPanel&WHM for Linux” By cPanel

select cPanel&WHM for Linux

Step 7. Click “Continue”


Step 8. Click “Confirm Changes”

Confirm Changes

Step 9. Leave “t3.smal” in the Instance type field

Leave t3.smal

Step 10. Click on “Create new key pair” to create a new SSH key.

Create new key pair

Step 11. Enter a key name and click ”Create key pair”. You should download the key pair and save it on a local computer. You need it to access the server instance via SSH.

download the key pair

Step 12. Leave the default Network settings.

Leave the default Network settings

Step 13. For the storage, you can either leave the default 20Gb or make it higher.


Step 14. Click “Launch instance”.

Launch instance

Step 15. Click “View all instances”.

View all instances

Step 16. Select the newly created server.

Select the newly created server

Step 17. Open the Security tab and click on the security group that is created by default. You will see the security group settings at the bottom.

Security tab

Step 18. Add the following rules:

  • 22 - for SSH access.
  • 2083 - for cPanel access.
  • 2087 - for WHM access.

It should be the same as in the screenshot below.


Step 19. Click “Save rules”.

Step 20. Go to the Elastic IPs section.

Elastic IPs section

Step 21. Click “Allocate Elastic IP address”

Allocate Elastic IP address

Step 22. Click “Add new tag”, add tag “Name”, and click “Allocate”

Add new tag

Step 23. Select the newly created IP address, copy the “Allocated IPv4 address” value, and save it locally (you will need it for further server access via SSH). Then click Actions >> Associate Elastic IP address.

copy the Allocated IPv4 address

Step 24. On the next screen choose the server and click “Associate”

choose the server

We completed steps 20-24 to set the static IP address for the server. Otherwise, the IP address would change with every restart of a server instance.

Part 2. Configuring cPanel

Step 25. Launch SSH terminal. If you use Windows OS it can be a Putty application.

Step 26. If you use a Linux-based OS you should grant the right permissions for the key. Use this command:
chmod 600 {path_to_private_key}

The key pair you have downloaded at step 11.

Step 27. Connect to the server via SSH in order to get the URL for accessing WHM (Web Host Manager). Use this command if you use a Linux-based OS:
ssh centos@{server_ip_address} -i {path_to_private_key}

Step 28. When you get the question “Are you sure you want to continue connecting (yes/no/[fingerprint])?“ you should type “yes” and press Enter.

Are you sure you want to continue connecting (yes/no/fingerprint)

Step 29. Connect to WHM using the URL that you get in a terminal.

Connect to WHM

Step 30. The browser will show the SSL error “Your connection is not private”. You should click “Advanced” and then “Proceed”.

 click Advanced and then Proceed

To get rid of a warning, the SSL certificate should be installed for your cPanel instance, there is a lot of available information about that in public access.

Step 31. Accept the terms of usage for access to WHM and cPanel.

Accept the terms of usage

Step 32. Click “Log in”

Log in

Step 33. Create a new cPanel account or log in to your existing account.

Create or log in

Step 34. Enter the email address for receiving service notifications and click “Finish”.

Enter the email address

Step 35. Set the root password. Click WHM >> Home >> Server Configuration >> Change Root Password

Step 36. Click WHM >> Home >> Networking Setup >> Change Hostname in order to change hostname. You can choose one from the list displayed on the right side.

change hostname

Part 3. Adding the domain

Step 37. Create WHM account. Click WHM >> Home >> Account Functions >> Create a New Account

Create WHM account

Step 38. Copy Name Servers from your WHM account and set them for your domain.

Name Servers

Step 39. Log in to cPanel. To do this you should go to WHM >> Home >> Account Information >> List Accounts, and click on the сPanel icon.

Log in to cPanel

Step 40. On the new page, you should choose WordPress.

choose WordPress

Step 41. Wait until WP installation finishes, and click on “Add content”.

Wait until WP installation finishes

Step 42. You will be able to fully control WordPress on the opened page, log in as a WP-admin, etc.

fully control

Сhoosing and configuring high availability WordPress hosting: Final Thoughts

There is a large room for improvement of the WordPress site and web hosting in order to achieve higher speed and availability. It is possible to use Docker container, setup automated deployment, move a database to the cloud and decouple it from the server instance, add CDN, make the headless architecture for WordPress, set up autoscaling, and make other improvements. Here in this article, I have covered just the basics, so users without much technical knowledge can start using the high-availability AWS cloud to host their WordPress websites.

In addition, consider hiring WordPress developers if you need assistance with the development, optimization, maintenance, or infrastructure changes to your WordPress website.

Vetted experts, custom approach, dedication to meet deadlines

As your reliable partner, our team will use the right technology for your case, and turn your concept into a sustainable product.

Contact us
upwork iconclutch icon

Further reading