Category: Moodle

AWS services for Moodle

Moodle, no doubt, is the best open-source LMS in the world. It has tons of features. This is written in PHP, and generally utilized Linux/Apache/PHP/Mysql(MariaDB) stack for the host, however, you can use other databases apart from MySQL like postgre.

AWS is the best most demanding Cloud service. which provides VPC [virtual private cloud] to host our own service and it also provides tons of other services as SAAS model.

If you go with AWS + MOODLE, the following are the services that can help/enhance/optimize the performance of the application.

If you want to manage AWS , you can choose AWS ROUTE 53 service as well.

Single Machine Based Implementation :-

AWS lightsail service is good to choose with if you just want to host a moodle. This has a very simple intuitive interface to set up the application [mostly website] on AWS platform, where, no deep knowledge is required.

OR

You can go for the core AWS services,

  • Amazon EC2 for compute
  • Amazon RDS for Database

Although, Lightsail offers, Loadbalncer as well, still , in aspect of DB, it would be vertical scalable deployment, where you can increase the machine size on the base of need.

Horizontal Scalable Based Implementation:-

This type of implementation is done for mid-scale to large-scale moodle implementation

In this case, you may use,

  • AWS load balancer + auto scale group + launch template
  • AWS ec2 fleet for apache and PHP [In case of docker, we can choose for AWS fargate as well]
  • EFS / S3 [as moodle support S3 file system as well] for moodle data
  • AWS RDS [Aurora] serverless [Mysql Compatible] for auto-scaling
  • AWS elastic cache for setting up Redis bases caching layer . See why ?

You can build the whole system using AWS Elastic beanstalk [–make sure RDS and EFS are out of beanstalk environment, otherwise, during deployment, you will lose the data.] or You can set up individual components and connect them as you need.

AWS architecture for Moodle

[optional]

  • AWS Cloudfront to serve your site using AWS CDN
  • AWS backup for managing backup and AWS glacier for putting up old data into the archive.
  • AWS cloud watch for monitoring

Application-level Service for Utilization:-

  • AWS SES to set up SMTP service for email notification in moodle. AWS emails have a reputation, so reach directly in your inbox.

Enhancement Service:-

  • Moodle Global Search using AWS elastic search service.[https://github.com/catalyst/moodle-search_elastic]
  • AWS recognition, to bring AI proctoring into quiz module, through available/paid plugins in the market. [there are a market player who provides the moodle addon, and you can directly use AWS service for rekognition]
  • Providing Text-to-Speech using AWS Polly service.

Cost of Running Moodle as your own

As moodle is open source and have full features which are required to run a digital education platform,

  • WEB platform [online]
  • Mobile App platform [offline suppport]
  • Desktop APp as well [offline support]

there are 1000 of plugin base, an active community, 6 monthly updates so much…..

It is just we have to host it somewhere, and we are ready for the digital education environment.

and if you have a little bit of technical background, you can opt for free cloud service with major cloud provider, and this is all which is required.

Case is not like this, however, this is good for your testing lab .

In a production environment, there is a lot of things that need to be done.

Moodle also provides a hosting plan (https://moodlecloud.com/) . and you can see the cost for the running platforms.

When you actively use a system, whether for small scale or large scale, if this is adding the value in your objective/business, then, keeping the system healthy and running become a need.

so let me share the cost that may hit you for running the moodle system as your own.

I am dividing it into 3 parts. I am not including any human effort for setting and managing this platform. This cost is just about machine or hosting.

Core Service

  • Domain name
  • SSL certificate [optional, but required for many features like the app, audio/video recording, payment]
  • Computing Cost [ assuming app and Database are on the same machine]
  • Storage Cost
  • Backup Cost
  • Outbound Data transfer [bandwidth utilization cost]

External Service

  • Email Service [may be the very first thing to do after setup]
  • Any third party paid service, like zoom or bigbluebutton
  • any paid theme
  • any paid plugin that you want to use
  • any monitoring tool
  • notification service for mobile

Optimization

  • Cost of CDN [content delivery network] to optimize the performance
  • Cost of Performance monitoring tools
  • Cost of Caching servers etc.

Core services are required to run the platform. Others are optional and this is just about moodle platform.

So you may be thinking about the amount or the numbers.

Cost Matrix for Core service

I am assuming that we are on a paid AWS account. So let’s calculate it for the core services. This is just a rough idea


Assumption: site-size : 100 GB, active userbase : ~500

Cost Matrix approx onlySupported User base
[Yearly]
Domain~ 10-15 $
SSL certifcate (*)~ 200-300 $
[Monthly]
Compute~45$(t2.medium)~ 250-750 active users, concurrent active ~100
Database~70$(t2.medium)~ 250-750 active users, concurrent active ~100
Storage : Active~.12$ /GB
= 12$ /100 GB
Bandwidth*~.09 $/GB
.09*100GB = 9$
roughly calculation : (course size * active enrolledusers)
let’s assume for site size
Email~0
Backups1$/permont/10GB
~10$
depend upon storage, let’s assume, we are following gold, silver, bronze policy. 7 days, 4 weekly, 12 monthly, 1 yearly

you can say that the bill will be around 150 $ / month to keep running your platform.

Bandwidth cost is so dynamic that, let’s say you upload a video of 100 MB which is on a public page (can be viewed by without login). and it was seen by 10000 people. one person one time. then the cost for this video may be around : (10000 user * 100 MB ) *(.09/1024 MB) = 9 $

9 $ for one video of 100 MB for 10000 serving

Digital Content plays a key role in LMS. this is why Moodle has caps on it. even for the biggest plan, they allow only 1 GB of storage. Less storage, less distribution of content, less bandwidth utilization.

Disclaimer:   the above values are rough figure only.  Even the load matrix are kept by putting jmeter load test on a good course for the active numbers. the variation is because of rampup time and the activity of moodle. viewing course and attending quiz are just pole apart. However this will give you brief idea of cost  and the factors affecting cost.

there are a lot of things that can be done to optimize the cost of the running platform. I will share that in another thread.