The Web.Eng WordPress Platform on AWS

Platform

AWS Backs Us, We Back You

For the past 9 years, AWS was evaluated as the Leader in cloud Infrastructure as a Service.

The market for cloud IaaS continues to consolidate as customers and vendors push for more security, innovation, and scale.

Read Gartner Report: Magic Quadrant for Cloud Infrastructure as a Service, Worldwide (2019)

  • Security

  • Availability

  • Performance

  • Global Footprint

  • Scalability

  • Flexibility

Web.Eng builds upon resources we source from Amazon to deliver to our clients a suite of products and services that are optimized specifically for the demands of WordPress.

Contact Us Today
View Pricing Options
About Us Technologies

Public Cloud Computing Market

Source: Statista Global public cloud computing market 2008-2020

Cloud Computing Market Share Breakdown

AWS 32%
Microsoft Azure 18%
Google Cloud 6%
Alibaba Cloud 5%
Others 39%

Source: Canalys Cloud Channels Analysis, February 2020

Infrastructure on AWS

Developer Console

Tech Stack

Server Visibility Layer

Our monitoring systems report on the status of all relevant component programs in the form of live dashboards.

  • Our monitoring systems report on the status of the following component programs:
  • The reporting & monitoring system reports on each component respectively, and includes the following metrics: Current Status, Current Load, CPU Usage, RAM Usage, % SWAP Usage, Read & Write B/s, Version, Disk Space Usage

Application Instance DevOps Layer

The Application Instance layer is focussed on providing better DevOps Management to teams.

  • The Web.Eng Platform includes 3 different application instances which include Staging, Auto Updates and Production.
  • Adding a new WordPress website to your optimised server has never been quicker, easier and more efficient. It takes 3 clicks to build a new website. Pre-packages bundles of themes and plugins can be configured to install and activate, and default users can also be created to log in and start working right away.

  • Each new website build has the options to enable a staging and auto-update instance of the WordPress website. Simply tick the box to enable the features that will allow either the auto-update and/or staging feature to be enabled to the new WordPress website build.

INSTANCE 1

Production

INSTANCE 2

Automatic Updates

INSTANCE 3

Staging

WordPress Website Layer

Tools to manage WordPress on a single page.

  • The last and most useful layer is the WordPress specific website layer to configure SSL, PHP versions, Page Caching, Object Caching, Application-level WAF, backups, domain management and logs.

Scale as Your Business Needs Evolve

Put our experience and knowledge to work on your next project. We offer customised, best-in-class support services to fit your site’s specific needs.

View Pricing Options
Contact Us Today

AWS Global Infrastructure Map

Frequently Asked Questions

Will Web.Eng Optimise My Images?

Short Answer: Yes

Long Answer: We know there are multiple different ways to approach image optimisation, which is why recommend using API or cloud-based plugins where all the image processing happens on remote servers and doesn’t require any local executables to be installed (we disapprove enabling the exec() function for security reasons).

Below is a short list of plugins we recommend our users explore that abide by this approach:

  • Smush.it plugin (see this blog post for a deeper rundown)
  • EWWW Image Optimizer plugin
  • Kraken Image Optimizer plugin
  • ShortPixel Image Optimizer plugin

Note: As an alternative, our VPS hosting plans offer a bit more flexibility with a specialized image processing service we can apply by request. This is our specialized image optimizing service built into our technical stack (at no additional fee) designed to optimise your images on the fly. Bypassing the heavy processing upfront that’s generally required with serving images helps us save your storage and bandwidth costs.

Is Caching Handled by Web.Eng?

All of the various technology features offered in our stack are configured by the Web.Eng team on the customer’s behalf. Not only do we simply enable caching, but prune your environment making custom tweaks to fully augment the benefits of using our platform, catered individually to your WordPress website.

Two of these performance profiting tools are our CDN and Redis Caching services, supported by AWS CloudFront and NGINX. Once cache is set up and functioning properly, the general rule is it can serve two orders of magnitude more of requests per second than PHP while working to conserve the dedicated resources of your Web.Eng VPS.

We encourage new customers to read through our Optimization Guide for achieving strong degrees of speed and scale for your WordPress website.

How to Optimise Your WordPress website

We will be talking about the main points recommended to optimizing your WordPress for speed and scale with Web.Eng’s system.

The items are not in any specific order, but we have seen if they are generally applied, it makes a huge difference in how fast a site is and how many CPU/memory resources are conserved (ie. scale better).

This overview goes into using terminal to debug and confirm some things like cache, but some commands could be substituted by looking at the requested page header responses via the browser.

This article covers the following topics:

  • Page Caching
  • XHR request to admin-ajax.php
  • Transients Object Caching
  • HTTP/2
  • Nginx-Only

PAGE CACHING LAYER (MOST IMPORTANT)

This layer primarily involved hitting the page caching stack of our layers.

To confirm, this is simply looking for the X-Cache-Status: HIT header in the page response.

Via command line this would be:

curl -I -X GET http://www.example.com/ | grep -i "HTTP/\|Cache\|Cookie"

After running that command twice, it should give a response like so:

HTTP/1.1 200 OK
X-Cache-Config: 0 0  
X-Cache-Status: HIT

If it shows X-Cache-Status: MISS or X-Cache-Status: BYPASS then that means some something is causing it to be skipped, usually due to a PHPSESSID cookie being set, like below:

Set-Cookie: PHPSESSID=XXXXXXXXX; path=/
Set-Cookie: wordpress_test_cookie=WP+Cookie+check; path=/

Try to avoid setting a session cookie when the pages don’t have to be dynamic. A helpful command to find what theme or plugin is causing it is

cd ~/sites/www.example.com/
find ./wp-content/ -type f -name '*.php' -exec grep -H "session_start(" {} \;

STOP DOING AJAX POST/GET REQUESTS TO ADMIN-AJAX.PHP

Upon requesting the homepage or certain pages on the site, there are sometimes plugins or themes which do XHR request to admin-ajax.php

Request URL: /wp-admin/admin-ajax.php 
Request Method: POST 
Status Code: 200

Under high traffic load, these have a tendency to overload the server resources due to every POST request to it not being cache-able. This means that a dynamic php worker will have to server ever single one of these requests and use up a lot of the servers CPU.

The first thing to do is to find that they are happening, then to locate which Plugin or Theme is hooking into WordPress that displays them.

Our recommended plan of action is to then remove or disable them, as it’s more important for the site to remain up, rather than overloading the resources so no other visitors are able to visit the site.

REDIS OBJECT CACHE

Transients API, say no to MySQL.

This off-loads queries being made into the Redis object store, so it speeds up and helps overall site performance.

We have a custom drop-in plugin replacement which off-loads the WordPress Transient API to make sure these don’t go into the Database. Please contact support if you’d like that installed on a specific site.

HTTP/2 – BECOME ONE WITH IT.

HTTP/2 is an update to the protocol by the Internet Engineering Task Force (IETF). You’ll get a nice performance boost with compatible clients, and anything that doesn’t support it will gracefully fallback to the old protocol. The performance gain is achieved by only requiring one persistent connection to the server in order to load the website’s assets. Other benefits are prioritization of higher resources, header compression, and multiplexing (multiple requests over the same connection).

In order to support HTTP/2, an SSL certificate will need to be installed on your application. Once that’s done you may contact support for further instructions.

NGINX-ONLY

Switching your site to Nginx-only can help alleviate load caused by too many dynamic PHP requests with a built-in pressure-release valve. All Web.Eng WordPress websites are run from the NGINX framework.

HELPFUL TOOLS/COMMANDS

  • Pingdom – You can see how long the entire site takes to load; helpful to see which assets (js/images/css) take a while to load.
  • Query Monitor – This plugin is useful for finding slow queries on the front and back end. We recommend enabling the plugin as needed.
  • NewRelic – (VPS ONLY) We can connect New Relic so you can get some detailed reporting about your application performance.
  • (VPS ONLY) To view CPU & RAM live, you can use htop (via SSH)
  • Use curl to check the headers of the site:
    curl -I -X GET http://www.example.com/

    In the header response, `X-Cache-Status: HIT` could be used to verify if that page cache is hit.

Additional Monitoring Services Available With Web.Eng

For improved, personalized monitoring and insights beyond our proactive 24/7 Website Uptime Monitoring we have a few solutions available. If you’d like to explore any of these options with our experts, just open a support ticket and we can help get you set up properly with a solution that will adhere to your goals.

Custom Monitoring: Monit

Our Custom Monitoring system, Monit, is a Web.Eng-specific service we offer as an add-on compatible with any of our hosting plans.

This supports real-time metrics for overall system health, PHP-FPM, HTTP request stats, and