Wordpress site scaling architecture on cloud infrastructure with AWS. The architecture including Database, CDN, and deployment model. It's just a high level and concept design
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Wordpress site scaling architecture on cloud infrastructure with AWS
1. 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.
2. 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.
3. 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.