The Case for migrating school IT infrastructure to AWS

Technology in Schools is developing at an amazing pace.  Gone are the days of computer labs serving the whole school, now students have their own laptops and even children as young as 4 or 5 are given tablets or Chrome books.  With this advance came a change in the technology infrastructure required by Schools.  We now need web servers, databases, security, monitoring, backup and other infrastructure to support daily learning and management of the school.  We also needed space to host this equipment, air conditioning to cool it and electricity to power it.  This has resulted in increased costs, staffing and space required by the IT department. Now we see schools adopting various SaaS solutions and migrating email, document storage and other services into the cloud. With this reliance on the cloud for school management why not look to take further advantage of cloud services and migrate other infrastructure into the cloud. Services like AWS provide a unique opportunity to schools to provide much greater flexibility, higher performance, cost reductions and security over traditional infrastructure where budgets, scale and expertise have constrained what is possible. We already see Universities and EdTech start-ups adopting the cloud and AWS in large numbers for their infrastructure, so why not schools in general.

Let’s take a look at some of the key benefits of cloud computing for schools, focusing on AWS and Infrastructure as a Service (IaaS).

Cost Reduction

This is a huge area for schools, generally speaking budgets are tight and having predictable monthly costs and the ability to scale or shrink with enrollment is a huge benefit.  Looking at case studies such as Gibralter Area Schools and St Lukes Anglican School as well as my own experience at the Western Academy of Beijing potential saving can be more than 25% depending on your setup.  Though achieving the higher percentage levels of saving will require careful planning and cost optimization.

So how can you save money on AWS?

First the obvious, less servers on site equals less cooling, less power and less space needed. There is also the supporting hardware, such as uninterruptible power supplies, KVM switches, cabling and server specific networking. While these costs are bundled into AWS charges they operate on a scale where the costs passed onto each individual customer is tiny.

The entire server life cycle is no longer one of procurement, installation, maintenance, disposal and upgrade.  Instead you decide on the EC2 instance size that fits your current work load and deploy it, if your needs change you can easily redeploy the server to a larger or smaller instance.  This simplifies investment in new infrastructure as you no longer need to make large initial capital investments on servers and storage committing to a set capacity for the life cycle of that server, in schools typically 5 years.  Instead committing to an hourly cost for the servers you deploy.

Maintenance of servers and support contracts are simplified or removed altogether.  You no longer need to worry about a server breaking and how to manage the down time and getting replacement parts on site.  If you correctly setup AWS with the appropriate backup or redundancy you can have your server back up in minutes.  If you go as far as implementing services such as Auto Scaling you won’t even see any downtime at all.

AWS will also handle the backups for you, at a fraction of the cost of deploying an onsite backup solution.  This is especially true if you use managed services such as RDS.  This allows you to keep historical snapshots of your database and perform point in time restores.

Disposal and storage of old servers is another area of consideration.  Schools generally don’t operate on a volume where disposal companies are happy to take care of the old equipment, especially when the equipment might be 5 years or more out of date.  This becomes AWS’s problem.

Lastly, something not mentioned in other costs saving guides is public holidays.  AWS charges by the hour for servers, so why not switch off non critical servers during summer and winter holidays.  What about development environments?  Finished testing the lasted Moodle release and don’t need the development server again until the next stable version is released.  Shut it down and save money.

Flexibility and learning support.

IT infrastructure in schools is primarily there to support teaching and learning, not just to provide school management services such as student information systems.  We host learning management systems, blogs, Minecraft and many other systems used for learning.  Having the flexibility to scale these systems based on enrollment and usage is a huge benefit.

In addition to these resources used year in year out we might also need to host adhoc services.  For example, TEDxYouth sites, student lead conferences, student project websites, after school activities, sporting events, conferences, the list goes on.  AWS allows you the flexibility to spin up instances specifically for these events and only be billed for the time the server is running.  You don’t need to build capacity for these services into your infrastructure in advance.

This same concept applies to testing new services as well.  You want to test a new LMS? Or a teacher comes to you asking to try some new education software.  No need to think about purchasing a new server.  Within a few minutes you can spin up a new EC2 instance with the required specification, test and evaluate the new product.  Only have the instance running while testing and delete or leave it deployed when done.

Increased performance and fault tolerance.

Last time you setup a web server with a database I bet you hosted everything on the same box; that’s Apache and MySQL.  I also bet it didn’t occur to you to setup a fault tolerant database with both primary and secondary servers, regular snapshots and point in time restore. Guess what, on AWS you can and it would only likely cost you a couple of thousand USD a year, and cover all your database needs.

AWS allows you to consider deploying services with levels of redundancy and fault tolerance you might not have been able to consider before.  Perhaps because you didn’t have the expertise, funding or infrastructure in place to enable such services.

Consider features such as Auto Scaling, Elastic Load Balancing, RDS and others which allow you to deploy highly available systems which easily scale.  I have successfully done this with both WordPress and Moodle and it really is worth the effort.

Screen Shot 2016-11-09 at 12.13.45 PM

This can have a huge impact on users. It can improve their experience of the services you host and reduce the risk of downtime for critical learning services.  Most importantly it can make the IT departments life a lot less stressful when issues do occur.  For example, our WordPress install offloads the database to RDS and all media to S3.  Only core files, plugins and themes are stored on the server.  We then use services such as CodeDeploy to manage the deployment of these files to the web servers.  This provides a huge amount of control over how we manage our WordPress install and should anything catastrophic go wrong, we can literally delete the server and allow the system to deploy a new one.

Where to begin.

First thing you will want to do is create IAM users for all your staff that will be managing AWS and setup two factor authentication for these users.  Don’t use the root account for daily tasks.

Next you will want to pick an AWS Region.  There are two things to consider, how close the region is to your school and the AWS services available. Regions are not equal so check your chosen location supports the features you want to use. Generally speaking you will want to launch all your infrastructure in the same region, unlike a global company, your schools users will mostly be geographically located near to you.

Try to break your services down to into how critical they are and start by moving those that are less import.  Use these sites to evaluate performance and usage on AWS. Use RDS for your database and you might be surprised how much performance you can squeeze from the T2 series instances especially for low traffic websites.

You will want to use something like AWS Database Migration Service (DMS) for migrating large databases, small databases can just be migrated using a database dump.

One good place to start is off site backups.  Setup AWS Storage Gateway and connect your servers directly to S3.  You can then backup directly to the cloud or upload existing backups.  This will be a good opportunity to get familiar with IAM and AWS CLI.

When moving to AWS I would recommend taking some time to plan ahead and research the options.  Attend local AWSome days, Summits and user group meetings.  There are many ways to accomplish the same task and while you can migrate between solutions without to much pain a little planning can save time.

Worried about moving to the cloud?

Some common concerns when moving services to the cloud are related to reliability and consistent access. However, the reality is that the cloud will at the very least be as reliable as hosting locally and more than likely better.  Access from off campus will almost certainly be better.  Consider all the services you relay on in your school currently and I bet a large majority of them are already hosted off site by third parties. You may already depend on the cloud for core services such as email and document storage.  Have contingency plans in place and redundancy within your internet access and you really shouldn’t have any issues.

Some considerations when moving to AWS.

There are some side effects to moving your infrastructure to the cloud.  Firstly, you may well need to increase internet bandwidth and redundancy.  This really depends on your current setup and how heavily you currently utilize your available bandwidth, but additional investment in network infrastructure if always a good idea.

Don’t forget that AWS works on a shared responsibility model for security.  This means you still need to consider things such as patching operating systems. AWS does handle some of this for you but only on managed services such as RDS.  AWS also provides many tools for securing the servers you deploy such as security groups and web application firewalls but it’s up to you to configure them in a manner that is secure.  You may also want to consider cloud specific monitoring and security solutions, your current on site solutions may not provide the same benefits within the cloud.

AWS is a pretty easy service to learn, especially if your current staff are enthusiastic and have a good background in setting up servers.  Its also worth noting that the skill sets needed by your staff will evolve over time.  Cloud setup’s tend to require more programming experience, once you start using Cloud Formation, Code Deploy, Lambda and the like you will be moving away from traditional setups to Infrastructure as Code (IaC) or even serverless technologies.  Training is always a good idea so make sure your use AWS to its fullest and in a manor that is secure.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s