Structured Proposal To Deploy A WordPress Website On AWS


This post provides an overview of a design proposal to Deploy a WordPress Website on AWS chosen from AWS Cloud Projects.


This document provides an overview of how to Deploy a WordPress Website on AWS.

Functional Requirements

The task is to design and document the deployment of a system that meets the following requirements

  1. Use a common and simple architectural pattern in AWS
    a. EC2, RDS, Route 53, ASG and VPC
    b. Dont use abstractions like Elastic Beanstalk
  2. The Wordpress website is
    a. Highly available
    b. Hosted on Amazon EC2
    c. Connected with Amazon RDS database
    d. Publicly accessible over the internet


This would not be present in a proposal but this is my blog post and my inner nerd needs to know how to do things! :D This is actually doing the work so would be out of scope for a proposal. This is however like I said its my blog and I’ll do what I like :D

  1. Implementation
    a. Deployment must describe how

None-Functional Requirements


Component Design

Reference architecture diagram

3 Tier AWS Network VPC

  • Tier 1: Public subnets, resources like NAT Gateway, Load Balancer and Bastian host
  • Tier 2: Private subnets, resources like web servers (EC2 instance)
  • Tier 3: Another private subnet, database
Component(s) Comments
1. VPC & Avalibility Zones VPC with public and private subnets in 2 avalibility zones
2. Internet Gateway An Internet Gateway is used to allow communication between instances in the VPC and the public internet
3. Avalibility Zones We are using 2 Avalibility Zones for high avalibility and fault tolerance
4. Public Subnets Resources such as NAT Gateway, Bastion Host and Application Load Balancer use Public Subnets
5. Private Subnets .
6. Public Route Table .
6. Main Route Table .

Duplicate subnets over multiple availability zones provides High Availability and Fault Tolerance

Data Model

Here we would traditionally talk about the tables and present a UML diagram for each. As this is a Wordpress database with predefined table I will just link to resources abalible on the internet.

Functional Requirements Covered



Business want all the things, yesterday! As we know this is not always possible so the next best option is to provide esitmations.

Below are rough estimations of the implementatation, assumptions on team size is 5 Engineers, no test analysts or designers as we will use an off the shelf template for the proposal.

Scenario Estimation Assumptions & Comments

Total rough estimation is x sprints with the assumption of all risks raised, no external team dependancies.