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.
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 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.
- 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.