The sky is the limit for educational technologies today. The forecast is more and more closed. The explosion of “Platform as a Service” (PaaS) solutions is increasing the rate of innovation in digital products, enabling them to scale instantly without compromising reliability, and at a lower cost. Leading the PaaS charge is Amazon Web Services (AWS), its reign anything but secure.
It only makes sense to consider the potential of Moodle™, the largest, open source Learning Management System today, on the AWS. The setup can be tricky, but Roy Plomantes, CTO of Nephila Web Technology, has decades of experience making anyone capable to build things they didn’t think they would on the cloud, maybe even struck by its vast potential.
What you need before — Inventory checklist
The process is more or less similar for every operating system. We will focus on the Windows environment, which has some extra steps not needed for Linux of Mac:
- Internet connection and modern web browser.
- Sign up for an account at aws.amazon.com. You will need a valid credit card and a phone for 2-way verification. If this is your first time, you are eligible for a limited, free tier.
- A command line client to connect to the cloud compatible with Linux. Linux and Mac users already have it on their machines. Windows users should install PuTTY (with PuTTYgen).
- An FTP client. In Windows, FileZilla is the weapon of choice.
Variables, key information and files you need to keep present include:
- The IP (“IPv4 Public IP“) or Address of your Instance (“Public DNS IPv4“). You can find them on your AWS EC2 Console.
- The SSH key (PEM file or PPK file) for quick access to the Ubuntu environment on the AWS instance. This guide will show you how to generate and manage them. Make sure you keep them in a place you remember that nobody else can find them. Think of them as the PIN on your bank account.
- MySQL admin credentials (username and password) that Moodle will use.
- Moodle admin credentials.
Technologies that you will need, which are free and you will install or upgrade to their latest versions during this guide are:
Tools and concepts not covered here, but would be greatly recommended for a smoother workflow:
- Git and GitHub, or a similar Version Control System
- Domain purchase and setup
- SSL (HTTPS) Certificate
- Google Analytics
Get started by launching your AWS instance
Log into the AWS console and choose your region. At the time of writing, US-based regions had slightly cheaper rates, Northern Virginia being the lowest. If you operate far from the US, a closer region could give you a better response at only a marginally higher cost.
There are three basic domains you will be moving back and forth during this process:
- The so called EC2 instance in the Amazon cloud, which you access through the AWS Console from a browser
- The Ubuntu (Linux) environment, which you access through your command line client
- The Moodle site, which you access from the browser once it’s installed
1. Choose AMI. Begin by creating an EC2 instance, which is Amazon’s more general platform, and the Ubuntu “image,” which includes a series of default settings and built-in options for better management. Any Linux distribution should work. Here we choose the latest Ubuntu Server available, mainly for familiarity and the extra friendliness that could come in handy; then click “Next.”
If you decided to poke around, you will see that in the AWS Marketplace there are many different images. There are Moodle and even Canvas LMS specific images, the most popular ones provided by Bitnami. You are welcome to try them out. In general terms, there is a trade-off between convenience and ability to customize.
2. Choose Instance Type. These are more or less self explanatory. Only the General purpose, “t2.micro” appears as eligible for the free tier, which is why we will choose it here. If your Moodle’s need for extra computational resources grows larger, you will be able to upgrade your instance at a later time.
3-4. Configure Instance, Add Storage. Here you will see many configuration options, which you can leave as is and move on. Broadly speaking, they allow you to create several similar instances at the same time, set conditions for the networks access, limit capacities and general or “failsafe” mechanisms. Again, most of the variables can be modified later on as you become more acquainted with them.
5. Add Tags. This is an optional window, similar to the custom fields in some CMS and LMS.
6. Configure Security Group. This will define who on the Internet can access your Moodle site. At the very least, you need to enable rules with HTTPS and SSH types to proceed with the creation of your site. Later on you can revise these policies, in fact it should be among the first things on your list once you’re ready to roll our your site to the public.
The last screen in this first step is 7. Review, where you can make sure you are ready. Hit “Launch.”
Stay tuned for Part 2
At this point, you should already have a blank canvas hosted on AWS. You can install Moodle as well as any other tool. The process is the same for Linux and LAMP-based apps, which more or less rule the Internet.