Architecting an Highly Available and Scalable WordPress Site in              AWS     Harish11g.aws@gmail.com    http://har...
Why this presentation ?• WordPress is used by over 14.7% of Alexa Internets  "top 1 million" websites• As of August 2011 W...
WordPress Architecture Requirements in                  AWS• Ability to Serve millions of Pages per day• Ability to scale ...
Why AWS is better for WordPress Scaling?• AWS provides flexibility to Scale up and Scale out• AWS provides Building block ...
AWS Building Blocks used in this WordPress               Architecture
Some AWS building blocks Amazon            Amazon Route53 for managing and answering DNS queries Route 53                 ...
Highly Scalable Architecture for WordPress                 application
Admin                                                                                             AmazonAZ : Amazon       ...
Brief about the Architecture• Multi- Tiered Architecture  • Load balancing tier  • Separate WordPress Management and Insta...
Architectural Tiers Explanation Now let us see the tiers in detail !!
Load Balancing Tier
Admin                                                                                             AmazonAZ : Amazon       ...
Load Balancing with Amazon ELB• Amazon Elastic Load Balancing will Load balance the  http requests to WordPress EC2 instan...
Load Balancing with Amazon ELB• Amazon ELB works with Route 53 and Auto Scaling  seamlessly• Amazon ELB is priced @“ Pay f...
How scalable is this architecture ?
Admin                                                                                             AmazonAZ : Amazon       ...
Scalability and Elasticity• Scalability and Elasticity is built in most of the layers  in this architecture• WordPress EC2...
Scalability and Elasticity• Read Scalability is built in the Database layer with  RDS Read Replicas• New RDS Read Replicas...
Scalability and Elasticity• Clustered + Distributed File System of the Storage  pool layer can be manually scaled in case ...
How High Availability and Fault tolerance is        built in this Architecture ?
High Availability• HA @ WordPress Layer  • Multiple WordPress EC2 instances avoid single point of    failure  • WordPress ...
High Availability• HA @ Storage Pool Layer  • Two EC2 instances used for Storage Pool Layer  • Storage Pool is setup in re...
How the Database Tier is Architected ?
Admin                                                                                             AmazonAZ : Amazon       ...
Database layer• RDS Master and Standby provide High availability• RDS Read Replicas provide Read performance• HyperDB plug...
What performance aspects are taken care in            this Architecture ?
Performance• APC (or) Xcache plugin can be used for PHP opscode  caching• W3TotalCache+CloudFront (or)  BatCache+Memcached...
Content Delivery Network
Admin                                                                                             AmazonAZ : Amazon       ...
Content Delivery• Amazon CloudFront will be the Content Delivery  Network (CDN)• W3TotalCache plugin will be configured to...
Deployment• Distributed File Storage Pool is configured between  WordPress Management and Content instances• WordPress Man...
Monitoring and Alerts
Admin                                                                                             AmazonAZ : Amazon       ...
Monitoring• Amazon CloudWatch will monitor the CPU and  Network utilization of the entire setup• Amazon CloudWatch alarms ...
Backups
Admin                                                                                             AmazonAZ : Amazon       ...
Backup• Custom ops scripts will backup the necessary files  from Storage pool to S3 periodically• S3 can be configured to ...
Security• Suitably hardened OS for WordPress Mgmt and  WordPress instances• Firewall (or) AWS security groups configured  ...
Advantages• Highly Available and Scalable architecture• Can elastically scale out to serve millions of hits in  a day• Can...
Disadvantages• Complex to setup and maintain• Will not be ideal for smaller sites that do not need  scale• Will not be cos...
Key Points to Remember• Log files generated in WordPress EC2 instances have  to rotated• Use Amazon EBS for Storage Pool a...
Key Points to Remember• RDS MySQL supports only Innodb engine• Separate the WordPress Management and  WordPress Content in...
Key Points to Remember• Amazon Availability Zones(AZ’s) are distinct physical  locations with Independent power , cooling ...
How do I setup Scalable WordPressarchitecture on AWS?
Leave it to the experts , we willhandle thisCloud Architecture ConsultingCloud Application DevelopmentCloud Migration & Im...
ContactHarish11g.aws@gmail.comhttp://in.linkedin.com/in/harishganesanwww.twitter.com/harish11ghttp://harish11g.blogspot.com
Upcoming SlideShare
Loading in...5
×

Architecting an Highly Available and Scalable WordPress Site in AWS

63,481

Published on

Architecting an Highly Available and Scalable WordPress Site in AWS

Published in: Technology, Business
3 Comments
87 Likes
Statistics
Notes
  • the presentation is very very good, now what I'm looking for is a cloud formation template or a script to setup all that you just described :D
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • how do you build your storage pool?
    if I understand it correct, you need to have the same document-root on the management- and the deliveryservers. how is this done?
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Impressive. All things more or less known to me, but here they are well organized in a complete and coherent architecture. I'll add that this presentation is another proof that building a website that scales to big numbers is now available to practically anyone.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
63,481
On Slideshare
0
From Embeds
0
Number of Embeds
57
Actions
Shares
0
Downloads
0
Comments
3
Likes
87
Embeds 0
No embeds

No notes for slide

Transcript of "Architecting an Highly Available and Scalable WordPress Site in AWS "

  1. 1. Architecting an Highly Available and Scalable WordPress Site in AWS Harish11g.aws@gmail.com http://harish11g.blogspot.com
  2. 2. Why this presentation ?• WordPress is used by over 14.7% of Alexa Internets "top 1 million" websites• As of August 2011 WordPress powers 22% of all new websites• As of December 2011, version 3.0 had been downloaded over 65 million times• Provide some architectural insights to build Highly Scalable and Available WordPress sites in AWS• Help startups and companies who are new to AWS- WordPress with some blueprints
  3. 3. WordPress Architecture Requirements in AWS• Ability to Serve millions of Pages per day• Ability to scale out/down dynamically depending upon traffic• Ability to perform well even with scaling demands• Should be Highly available without Single Points of Failure• Automated Operations – Backup and Monitoring• Cost effective
  4. 4. Why AWS is better for WordPress Scaling?• AWS provides flexibility to Scale up and Scale out• AWS provides Building block services which is inherently robust and fault tolerant• AWS provides full range of options from CDN , OS flavors , Storage Pool , Database , Load Balancers , Monitoring etc• Pay as you go – Save cost by leveraging Auto Scaled WordPress EC2 instances• We can start small and grow big in AWS
  5. 5. AWS Building Blocks used in this WordPress Architecture
  6. 6. Some AWS building blocks Amazon Amazon Route53 for managing and answering DNS queries Route 53 Amazon Elastic Load Balancer for load balancing HTTP/S requests to WordPress Instances RDS MySQL Database Server for storing the WordPress content Simple Storage Service (S3) for storing the WordPress S3 application assets , snapshots and log files Amazon Amazon CloudFront CDN for delivering the application staticCloudFront assets from nearest edge locations Amazon Amazon CloudWatch for monitoring and sending SNS alertsCloudWatch
  7. 7. Highly Scalable Architecture for WordPress application
  8. 8. Admin AmazonAZ : Amazon Amazon CloudFrontAvailability Zones Route 53 AWS Region 1 Static Data SSH/SFTP Elastic Load S3 Balancer Amazon CloudWatch Az-1 Az-2 Alarms Auto Scaled WordPress EC2 WordPress instances Management Server Amazon SNS Notifications Az-1 Az-2 Az-1 Az-2 Standby RDS Master Read Replica Backups and Log files File Storage Pool Database Layer Database Layer
  9. 9. Brief about the Architecture• Multi- Tiered Architecture • Load balancing tier • Separate WordPress Management and Instance nodes • Auto Scaled WordPress EC2 instance nodes • MySQL M-S database with additional Read Slaves • S3 + CDN for content delivery • Monitoring , Backups , Sys alerts
  10. 10. Architectural Tiers Explanation Now let us see the tiers in detail !!
  11. 11. Load Balancing Tier
  12. 12. Admin AmazonAZ : Amazon Amazon CloudFrontAvailability Zones Route 53 AWS Region 1 Static Data SSH/SFTP Elastic Load S3 Balancer Amazon CloudWatch Az-1 Az-2 Alarms Auto Scaled WordPress EC2 WordPress instances Management Server Amazon SNS Notifications Az-1 Az-2 Az-1 Az-2 Standby RDS Master Read Replica Backups and Log files File Storage Pool Database Layer Database Layer
  13. 13. Load Balancing with Amazon ELB• Amazon Elastic Load Balancing will Load balance the http requests to WordPress EC2 instances• ELB will direct the requests to WordPress EC2 across Multiple Availability Zones ( for HA)• Health check , LB algorithms and SSL termination will be done by the Load Balancer• Amazon Elastic Load Balancing can keep expanding its capacity automatically depending upon the traffic
  14. 14. Load Balancing with Amazon ELB• Amazon ELB works with Route 53 and Auto Scaling seamlessly• Amazon ELB is priced @“ Pay for use” model• Amazon ELB is a managed service , so • NO Maintenance headaches • NO SW/HW upgrades • NO Capacity planning • NO manual intervention for expansion
  15. 15. How scalable is this architecture ?
  16. 16. Admin AmazonAZ : Amazon Amazon CloudFrontAvailability Zones Route 53 AWS Region 1 Static Data SSH/SFTP Elastic Load S3 Balancer Amazon CloudWatch Az-1 Az-2 Alarms Auto Scaled WordPress EC2 WordPress instances Management Server Amazon SNS Notifications Az-1 Az-2 Az-1 Az-2 Standby RDS Master Read Replica Backups and Log files File Storage Pool Database Layer Database Layer
  17. 17. Scalability and Elasticity• Scalability and Elasticity is built in most of the layers in this architecture• WordPress EC2 instances can be scaled out and down depending upon the traffic • We can expand the number of WordPress EC2 instances from 1 to 100+ automatically during load peaks • We can reduce the number of WordPress EC2 instances from 100+ to 1 automatically during valleys • Can serve millions of pages with ease • Pay only for the EC2 instance hours used
  18. 18. Scalability and Elasticity• Read Scalability is built in the Database layer with RDS Read Replicas• New RDS Read Replicas can be added / removed with ease • Tips: • During Campaigns alone we can run more RDS Read Replicas • Not more than max 5 RDS Read replicas are recommended • Keep Read Replica’s and RDS Master same EC2 size for better performance
  19. 19. Scalability and Elasticity• Clustered + Distributed File System of the Storage pool layer can be manually scaled in case needed • Minimum 2 EC2 Large instances should be used for Storage Pool Layer ( for HA and better IO) • Design the Storage Pool Layer with HA (very critical)• AWS building blocks like S3 , CloudFront , CloudWatch , SNS used in this architecture are inherently designed for scalability
  20. 20. How High Availability and Fault tolerance is built in this Architecture ?
  21. 21. High Availability• HA @ WordPress Layer • Multiple WordPress EC2 instances avoid single point of failure • WordPress EC2 instances are launched across multiple – AZ’s inside a region for High Availability• HA @ DB Layer • RDS MySQL Master and Standby are launched in 2 different availability zones for High Availability • RDS Read Replicas are created in Multiple –AZ’s
  22. 22. High Availability• HA @ Storage Pool Layer • Two EC2 instances used for Storage Pool Layer • Storage Pool is setup in replicated mode for High Availability• AWS building blocks like S3 , Cloud Front , CloudWatch , ELB , SNS ,EBS used in this architecture are inherently designed for Fault tolerance and HA
  23. 23. How the Database Tier is Architected ?
  24. 24. Admin AmazonAZ : Amazon Amazon CloudFrontAvailability Zones Route 53 AWS Region 1 Static Data SSH/SFTP Elastic Load S3 Balancer Amazon CloudWatch Az-1 Az-2 Alarms Auto Scaled WordPress EC2 WordPress instances Management Server Amazon SNS Notifications Az-1 Az-2 Az-1 Az-2 Standby RDS Master Read Replica Backups and Log files File Storage Pool Database Layer Database Layer
  25. 25. Database layer• RDS Master and Standby provide High availability• RDS Read Replicas provide Read performance• 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
  26. 26. What performance aspects are taken care in this Architecture ?
  27. 27. Performance• APC (or) Xcache plugin can be used for PHP opscode caching• W3TotalCache+CloudFront (or) BatCache+Memcached can be used for Page caching• Multiple RDS Read Replicas for Read performance• RDS Master and Read Replicas are separated to get independent write and read performance• Amazon ELB + Auto Scaling improves the overall Site performance when the load increases
  28. 28. Content Delivery Network
  29. 29. Admin AmazonAZ : Amazon Amazon CloudFrontAvailability Zones Route 53 AWS Region 1 Static Data SSH/SFTP Elastic Load S3 Balancer Amazon CloudWatch Az-1 Az-2 Alarms Auto Scaled WordPress EC2 WordPress instances Management Server Amazon SNS Notifications Az-1 Az-2 Az-1 Az-2 Standby RDS Master Read Replica Backups and Log files File Storage Pool Database Layer Database Layer
  30. 30. Content Delivery• Amazon CloudFront will be the Content Delivery Network (CDN)• W3TotalCache plugin will be configured to use Amazon CloudFront for enhanced performance and reduced latency• Static assets , templates , themes , images etc will delivered from the nearest edge locations of the CDN
  31. 31. Deployment• Distributed File Storage Pool is configured between WordPress Management and Content instances• WordPress Management and Content instances share the common storage pool for files and plugins• Deployment of files and plugins will happen through the WordPress management node• Files and plugins will be immediately available for use in the auto scaled WordPress EC2 instances
  32. 32. Monitoring and Alerts
  33. 33. Admin AmazonAZ : Amazon Amazon CloudFrontAvailability Zones Route 53 AWS Region 1 Static Data SSH/SFTP Elastic Load S3 Balancer Amazon CloudWatch Az-1 Az-2 Alarms Auto Scaled WordPress EC2 WordPress instances Management Server Amazon SNS Notifications Az-1 Az-2 Az-1 Az-2 Standby RDS Master Read Replica Backups and Log files File Storage Pool Database Layer Database Layer
  34. 34. Monitoring• Amazon CloudWatch will monitor the CPU and Network utilization of the entire setup• Amazon CloudWatch alarms configured with Amazon SNS provides Email/SMS alerts to System Administrators
  35. 35. Backups
  36. 36. Admin AmazonAZ : Amazon Amazon CloudFrontAvailability Zones Route 53 AWS Region 1 Static Data SSH/SFTP Elastic Load S3 Balancer Amazon CloudWatch Az-1 Az-2 Alarms Auto Scaled WordPress EC2 WordPress instances Management Server Amazon SNS Notifications Az-1 Az-2 Az-1 Az-2 Standby RDS Master Read Replica Backups and Log files File Storage Pool Database Layer Database Layer
  37. 37. Backup• Custom ops scripts will backup the necessary files from Storage pool to S3 periodically• S3 can be configured to remove old backups automatically• RDS MySQL is configured to take periodic data dumps and DB snapshots• RDS layer can be recovered point in time from the backups
  38. 38. Security• Suitably hardened OS for WordPress Mgmt and WordPress instances• Firewall (or) AWS security groups configured between all the layers in the architecture• SFTP/FTP access only to the WordPress management node• AWS IAM policies to manage user account access• Install WordPress Security plugins
  39. 39. Advantages• Highly Available and Scalable architecture• Can elastically scale out to serve millions of hits in a day• Can grow with load demands in future• Usage of inherently fault tolerant AWS building blocks adds Stability• High performance using CDN and suitable cache plugins• Monitoring , Backup and Recovery is built in• Pay for use
  40. 40. Disadvantages• Complex to setup and maintain• Will not be ideal for smaller sites that do not need scale• Will not be cost efficient for sites that have less traffic
  41. 41. Key Points to Remember• Log files generated in WordPress EC2 instances have to rotated• Use Amazon EBS for Storage Pool and WordPress EC2 instances• Start with EC2 m1.Large Instances for the storage pool and WordPress instances• More Memory – Better Performance for DB • Start with RDS Large for Master • Keep RDS Master and RDS Read Replica’s in same size to improve read performance
  42. 42. Key Points to Remember• RDS MySQL supports only Innodb engine• Separate the WordPress Management and WordPress Content instances for scalability• Do not Scale out/down rapidly in a hour, it will cost more in AWS• Combine AWS On-Demand and Reserved Instance pricing to get more savings per month
  43. 43. Key Points to Remember• Amazon Availability Zones(AZ’s) are distinct physical locations with Independent power , cooling ,network and security having Low latency network connectivity between them inside the same region • Leverage them in WordPress , Storage Pool and DB layers for HA as mentioned in the architecture
  44. 44. How do I setup Scalable WordPressarchitecture on AWS?
  45. 45. Leave it to the experts , we willhandle thisCloud Architecture ConsultingCloud Application DevelopmentCloud Migration & ImplementationCloud Adoption Strategy “Lets get the job done”
  46. 46. ContactHarish11g.aws@gmail.comhttp://in.linkedin.com/in/harishganesanwww.twitter.com/harish11ghttp://harish11g.blogspot.com

×