A presentation discussing how to run a large-scale Drupal installation using Amazon Web Services (AWS). The final system is capable of serving millions of unique pages, and storing tens of terabytes of data.
First presented at DrupalCamp Brighton in January 2015. There is an hour long recording of this presentation at https://www.youtube.com/watch?v=Rh_yBzRpOnk
26. Server provisioning
โข Automate everything!
โข Use Ansible (or Chef, Puppet, etc.)
26
โIf you have to SSH into your servers,
then your automation has failed.โ
โ Rich Adams
35. [auto]scaling
โข AMIs = Amazon Machine Image
โข Autoscaling policies
โข โpets versus cattleโ again
โข Problem: servers must have latest Drupal code
โข Conflict with Fabric 'pushโ technique
โข Interim solution: create an AMI after
each deployment
35
36. Backup
โข AMIs - Amazon Machine Image = snapshot
server images
โข ELB snapshots
โข S3 โ Simple Storage Service = REST storage
โข Glacier = long-term storage
โข We used:
โ Snapshots with RDS
โ S3 with versioning, plus Glacier for Drupal
assets and image assets
36
40. Gotchas
โข GlusterFS for PHP files โ donโt!
โข Custom Drupal cache โ careful of
uncontrolled growth!
40
41. Tips
โข Use โtermination protectionโ
โข Enable ELB logging
โข โMaintenance 200โ module
โข Create a โdown for maintenanceโ server
41
42. Conclusion
โข 21 instances
โข 6 load balancers
โข 67 ELB volumes
โข Lot of work to set up, but quick to alter
โข Easily coped with launch traffic:
โ 21k sessions/day
โ peak of 350 concurrent users
42
43. Further Reading
โข Justin Slattery, "Multiple Region Autoscaling
Drupal in Amazon Web Services"
http://dev.mlsdigital.net/posts/Cloud-Native-
Drupal/
โข Rich Adams, "AWS Tips I Wish I'd Known Before
I Started" https://wblinks.com/notes/aws-tips-i-
wish-id-known-before-i-started/
โข Laura Hamilton, "Are your servers pets or
cattle?" http://www.lauradhamilton.com/servers-
pets-versus-cattle
43