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 aws services for moodle 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.