Scalable Moodle on AWS

Scalable Moodle on AWS

by Willen Goulart -
Number of replies: 6

HI, everyone!


I'm going to setup Moodle on AWS and I'm going to create a scalable Moodle Install for 500 users/month.

I want to know there is someone that already did this to share knowledge.

I'm thinking on EC2 intances for Moodle App and for a NFS for keep moodledata sync for all Moodle App Instances.

For DB, RDS service of course, and use Memcache services for sessions.

I'm doing moodledata folder backups to S3.


What do you think? I'm new on Moodle, so I don't know if i'm doing this right.

Thank you, all!


Average of ratings: -
In reply to Willen Goulart

Re: Scalable Moodle on AWS

by Michael Spall -
Picture of Core developers Picture of Testers

Willen,

I have been investigating AWS for Idaho State University and have set up several different test systems. I would look at using GlusterFS for moodledata and the file system based caches that need to be shared.

I would use 2 separate memcached servers, one for sessions and one for application cache. These servers can be on the same machine, just different ports. I am currently testing having the memcached server for the application cache located on each of the webservers and using the relatively new memcached setting to allow a write many read local setup. AWS Elasticache can also be used, but I think local memcached will be faster and less expensive.

I agree with using RDS and am currently comparing Aurora with MySQL.

Backing up moodledata to S3 is also a good idea. And for longer backup retention that you won't access often, or hopefully at all ;), move some snapshots to Glacier.

Average of ratings: Useful (2)
In reply to Michael Spall

Re: Scalable Moodle on AWS

by Ron Meske -
Picture of Particularly helpful Moodlers


Michael,

Out of curiosity, why do you recommend separating the sessions and application caches?

When using AWS auto-scaling, how do you plan on configuring each web server to use memcached in a write many read local?  My understanding is you need to know the IP addresses of each server.  This is why I looked at AWS Elasticache. 

For now GlusterFS seems to be the best option.  AWS has in a preview mode Amazon EFS, which looks like it will eventually be a good choice as well.  NFS Performance on AWS

In reply to Willen Goulart

Re: Scalable Moodle on AWS

by Nadav Kavalerchik -
Picture of Core developers Picture of Plugin developers Picture of Testers Picture of Translators
In reply to Nadav Kavalerchik

Re: Scalable Moodle on AWS

by Ron Meske -
Picture of Particularly helpful Moodlers

Nadav,

For a quick single server install of Moodle on AWS, the Bitnami Moodle AMI is a great choice.  Within a couple of minutes you can have Moodle up and running.

If you want to be able to scale up using load balancing, then you need a setup similar to what Michael describes above.

 

 

Average of ratings: Useful (1)
In reply to Ron Meske

Re: Scalable Moodle on AWS

by Nadav Kavalerchik -
Picture of Core developers Picture of Plugin developers Picture of Testers Picture of Translators

You are right.

But as I saw that he needs it for only "500 users/month", I thought it is an overkill. so...

he better use bitnami.com

---

I am running two large clusters (not on amazon) and the vertical growing is done manually. (more info)

We monitor the load and if needed initiating a new Moodle node from a VM template that has mounting points to /etc /moodleapp / moodledata

The extra setting is done with MOOSH and Ansible, when needed. It all take about 15min if we decide to add a node. and it rarely happen. so I recommend something similar.

---

Btw, ProfitBricks has an interesting cloud managing service: http://moodlemagic.info/blog/?p=1183

and Juju can be used to orchestrate node adding and configuration on amazon and other clouds.

Average of ratings: Useful (1)