NewGenApps Blog posts

Deploying WordPress on AWS

Written by Anurag | Aug 2, 2016 6:30:00 PM

WordPress is one of the most popular open source blogging tool and content management system (CMS) based on PHP and MySQL. It is used to power anything from personal blogs to high traffic websites. Amazon Web Services (AWS) is designed to provide a reliable, scalable, secure, and highly performing infrastructure built for the most demanding applications.

WordPress modules, the capabilities of this CMS solution are constantly expanding. It is possible to build a WordPress architecture that takes advantage of many of the benefits of the AWS platform.

Here are some things to consider before deploying WordPress on AWS

  1. Selecting the right instance type and size: Amazon EC2 provides a large set of instance types with varying combinations of CPU, memory, storage and networking capacity. Each instance also comes in different sizes, so you can scale your resources based on requirements to meet your workloads.
  1. Recovering from Failure: To establish the availability of the Wordpress website, you must configure your architecture to recover following components, as and when required:
  • OS and services installed
  • WordPress application code and configurations
  • Wordpress themes and plugins installed
  • Database
  • Media files / Uploads
  1. Improving Performance and cost effectiveness: An important aspect of the end user experience is the network latency involved when delivery the static and dynamic content from the website around the whole world. Amazon CloudFront is a service which comes with an easy and cost effective way to distribute the content of the website using edge locations. We can create a cloudfront distribution and can map it with the website domain with some other configurations to set up content delivery. This can improve the delivery of content throughout the world.
  1. Database Caching: This can reduce the latency and can increase the throughput for websites. Having this implemented will allow you to have lower cost associated with database directly when your website has a large number of queries.

 For websites with more traffic which cannot be handled using a single instance server, we can have a setup of different servers for web and database. We can use Amazon RDS services to host the database separately and have the website solely on EC2. Using AWS Elastic Load Balancer and Auto Scaling services we can ensure the website has all the best practises in place for high availability and disaster recovery.

With AWS, we have multiple options to run a Wordpress website for serving static and dynamic content to achieve high availability and disaster recovery of the website. Web administrators can select the best and suitable option based on their website requirement.

For static website the single-instance architecture could be suitable while if the load is towards the higher side then the implementation of separate web and database tier could be more optimized option. Having the content delivery system configured correctly and auto scaling feature in place user can achieve low latency and high availability of the website.