This is a repackaged open source software product wherein additional charges apply for the pre-configured Moodle LMS stack (Apache, MariaDB, PHP, Postfix) with PHP tuned for Moodle, HTTPS redirect, Moodle cron, per-instance database credentials generated on first boot, a configured Amazon CloudWatch agent shipping web, database and mail logs plus host metrics, Amazon SSM Agent for Session Manager access, security hardening, and vendor support.
Moodle LMS on AWS - Pre-Configured, Hardened, and Ready to Deploy
Moodle is an open-source learning management system (LMS) used by educators, administrators, and learners worldwide. This AMI from SolveDevOps delivers a complete, pre-configured Moodle 4.4 stack on AWS EC2 - so you can go from launch to a working LMS in minutes, not hours.
What is Included in This AMI
Full Moodle 4.4 Stack - Pre-Installed and Configured:
Moodle 4.4 stable deployed to /var/www/html/moodle with data root on /opt/moodledata
Apache with HTTPS forced via RewriteRule, mod_ssl and mod_rewrite enabled, dedicated access and error logs
MariaDB bound to localhost with utf8mb4 encoding and file-based error logging
PHP tuned to Moodle-recommended limits: memory_limit=512M, upload_max_filesize=1024M, post_max_size=1024M, max_execution_time=300, max_input_vars=5000
Postfix configured for outbound mail delivery
Moodle cron job scheduled to run every minute
Certbot pre-installed for easy Let's Encrypt certificate setup
Per-Instance Credential Generation:
On first boot, the instance automatically derives unique MariaDB root credentials and a dedicated Moodle database, user, and password from the instance ID
A self-signed SSL certificate is generated in /etc/ssl/certs/solve-devops-dummycerts/
All generated credentials are recorded in /opt/moodle-info/generated-credentials.txt
No two instances share a secret - every deployment starts with unique credentials
Amazon CloudWatch Integration:
CloudWatch agent pre-installed and enabled with a ready-made configuration
Ships Apache access/error logs, MariaDB error logs, mail logs, syslog, and auth logs to CloudWatch Logs with 30-day retention
Publishes CPU, memory, disk, TCP connection, and process metrics under the SolveDevOps/Moodle namespace
Streams organized per instance ID for easy multi-instance monitoring
AWS Systems Manager Integration:
SSM Agent installed and enabled for Session Manager, Run Command, Patch Manager, and Inventory
Manage your Moodle instance without opening SSH ports to the internet
Security Hardening Applied to This AMI
Key-based SSH only - password authentication is disabled
No root login permitted via SSH
No secrets or AWS credentials baked into the image
Cloud-init instance data and SSH authorized keys scrubbed at build time
Unique credentials generated per instance - no shared default passwords
HTTPS enforced with automatic HTTP-to-HTTPS redirect
MariaDB locked down to localhost-only connections with secured root account
Deployment Quick-Start
Launch the AMI and attach an IAM instance profile with CloudWatchAgentServerPolicy and AmazonSSMManagedInstanceCore
Open https:// (port 443; port 80 redirects automatically) to run the Moodle installer
Run sudo change-www to set your site URL
Replace the self-signed certificate using the pre-installed certbot
Find your database credentials at /opt/moodle-info/generated-credentials.txt
A login banner (motd) displays site and admin URLs, credential file location, the change-www command, and CloudWatch/SSM activation steps on every login. Full root access is provided.
Why Host Moodle on AWS
Scalability: Scale EC2 instances up or down based on learner demand
Cost Optimization: Pay-as-you-go model with EC2, RDS, and S3 integration options
High Availability: AWS infrastructure supports disaster recovery and redundancy
Observability: Pre-configured CloudWatch logging and metrics give you visibility from the first boot
A university preparing for exam season needs to rapidly deploy a reliable LMS that handles increased traffic from students accessing quizzes and assignments simultaneously. With this AMI, the IT team launches a pre-configured Moodle instance on EC2, attaches CloudWatch monitoring to track performance under load, and uses SSM for secure remote management - all without manually installing or configuring the Moodle stack.
Highlights
Moodle 4.4 stable with Apache, MariaDB, PHP (all required extensions), Postfix and certbot; PHP limits raised for Moodle (512M memory, 1G uploads, max_input_vars 5000), HTTP-to-HTTPS redirect, Moodle cron running every minute, data directory at /opt/moodledata, and a change-www helper to set the site hostname.
Per-instance secrets: the MariaDB root password, Moodle database name/user/password and a self-signed certificate are generated on first boot and written to /opt/moodle-info/generated-credentials.txt; no shared passwords ship in the image.
Built-in observability and remote management: Amazon CloudWatch agent ships Moodle's Apache access/error logs, the MariaDB error log, mail.log, syslog and auth.log and CPU/memory/disk/TCP metrics (namespace SolveDevOps/Moodle); Amazon SSM Agent enabled for Session Manager
AWS Marketplace now accepts line of credit payments through the PNC Vendor Finance program. This program is available to select AWS customers in the US, excluding NV, NC, ND, TN, & VT.
Pricing is based on actual usage, with charges varying according to how much you consume. Subscriptions have no end date and may be canceled any time.
Additional AWS infrastructure costs may apply. Use the AWS Pricing Calculator to estimate your infrastructure costs.
If you are an AWS Free Tier customer with a free plan, you are eligible to subscribe to this offer. You can use free credits to cover the cost of eligible AWS infrastructure. See AWS Free Tier for more details. If you created an AWS account before July 15th, 2025, and qualify for the Legacy AWS Free Tier, Amazon EC2 charges for Micro instances are free for up to 750 hours per month. See Legacy AWS Free Tier