wordpress site scaling architecture on cloud infrastructure with aws

3
Wordpress Site cloud infrastructure Overview: - ABC-XYZ is an interior design community. - ABC-XYZ is built from Wordpress CMS and Bootstrap front-end framework. - Deploying ABC-XYZ into the cloud computing will bring many benefits, one of these is capability of millions user serving. Additional, security and quality should be better with new deployment process that we could do automation test before source code goes live. Deployment Architecture: Traditional deployment architecture - With traditional architecture, there is single point of failure on main server. It's not easy to scaling, deploying and maintaining. - System Admin would manually maintain coding and server directly via FTP, SSH.

Upload: le-kien-truc

Post on 18-Jul-2015

128 views

Category:

Software


3 download

TRANSCRIPT

Page 1: Wordpress site scaling architecture on cloud infrastructure with AWS

Wordpress Site cloud infrastructure

Overview:

- ABC-XYZ is an interior design community.

- ABC-XYZ is built from Wordpress CMS and Bootstrap front-end framework.

- Deploying ABC-XYZ into the cloud computing will bring many benefits, one of these is

capability of millions user serving. Additional, security and quality should be better with new

deployment process that we could do automation test before source code goes live.

Deployment Architecture:

Traditional deployment architecture

- With traditional architecture, there is single point of failure on main server. It's not easy to

scaling, deploying and maintaining.

- System Admin would manually maintain coding and server directly via FTP, SSH.

Page 2: Wordpress site scaling architecture on cloud infrastructure with AWS

Amazon Web Services deployment architecture

- In Amazon Web Services architecture, wordpress application should be stateless. Every static

content like images, templates, javascript and, uploaded file should be stored in S3 service.

- For fastest delivery and performance, system should use ElasticCache and CloudFront

service.

- All system source code and plugin management should be done via Elastic Beanstalk.

Page 3: Wordpress site scaling architecture on cloud infrastructure with AWS

Modify in ABC-XYZ

1. Database:

System should use Amazon RDS as database service. RDS Master and Standby

provide High availability, Read Replicas provide Read performance.

ABC-XYZ should be modified in other to use these functionalities.

HyperDB is an advanced database class that supports replication, failover, load

balancing, and partitioning. https://wordpress.org/plugins/hyperdb/

HyperDB plugin is configured to use multiple endpoints like RDS master and RDS read

replicas in this architecture. DB security groups will allow DB access only to WordPress EC2

instances. Periodic Dumps , Snapshots and Point in time recovery is possible in this

architecture.

2. CDN & Caching:

A Content Delivery Network is a fleet of servers distributed around the world which

contain copies of our content. This way users visiting our site receive a response from the

server closest to their location, hence decreasing data travel distance and intermediaries,

resulting in a quicker access to the content.

Site’s images should be stored outside the web server that’s hosting WordPress,

offloading any work related to image serving from our EC2 instances and allowing browsers to

download them at the same time they download the text content. To do so, system should be

configured to use Amazon S3 and CloudFront. This services would cache images from S3 to

the edge locations Amazon.

A plugin that will handle the uploading of pictures to S3 giving a CloudFront link to. (

http://wordpress.org/plugins/amazon-s3-and-cloudfront/ )

Another plugin will deal with browser, page, object, database, minify javascript to

improve user experience and page speed.

3. Deployment model:

Elastic Beanstalk is the Platform as a Service component of AWS which is an easier way

to quickly deploy and manage applications in the AWS cloud.

Instead of directly manage file system on running instances. Application source code

should be uploaded via GIT, and Elastic Beanstalk automatically handles the deployment details

of capacity provisioning, load balancing, auto-scaling, and application health monitoring. Write

permission on running instance and online source code edit via administration dashboard

should be removed.