If you take a look at the average Moodle install within schools you will generally see all aspects of the setup deployed on a single server. This would include both the web server and database. The courses and server will be backed up but there will be no other form of failover or high availability support. Cloud services such as AWS allow us to relook at these types of deployments, I discuss the benefits of AWS in detail in another blog post entitled The Case for migrating school IT infrastructure to AWS.
As for this post it is part one of a series of blog posts discussing how to host highly available Moodle installs on AWS. In this post I will be focusing on the design and key issues involved in this type of deployment. I will discuss high level concepts related to code management, auto scaling, storage and other features of a cost efficient highly available setup. Future articles will focus on configuration, working examples and migrating from on premises to AWS.