Hosting your EdTech infrastructure on Amazon Web Services (AWS) is a smart choice as it allows for massive scalability. It also has a wide variety of services that are used within the EdTech world to improve your application’s performance, availability and security. Using AWS for education gives you the ability to monitor costs, and makes it easy to automatically scale your infrastructure up (when the load on your site increases) or down (to avoid unnecessary overspending).
As your EdTech business grows, you need to ensure that your site or app’s performance and availability remain high. You should also start planning early for the need to scale, while maintaining good data security and compliance with local data protection regulations. All these targets need to be hit while also keeping costs at an affordable level.
Improving EdTech application performance
Reputation is everything in this highly competitive market. Both educational providers and their students expect web pages, activities, audio and video to be readily available and load quickly, so that their lessons are not interrupted. Your site or app needs to be consistently fast so that they don’t go looking for alternatives. There are a number of different areas of your infrastructure that can be improved to help with performance:
Start by setting up Amazon Cloudwatch to monitor all your AWS resources. Cloudwatch allows you to set up alarms that will alert you when resources become slow or unresponsive.
Code and resource optimization
Ensure that you’re writing efficient code. You can use a code profiling tool to examine which parts of your code are taking too long, and rewrite them to be more optimized. Before starting work on a new product, do some research to work out which are the most appropriate languages, database platforms and tools for your project. You can also optimize any videos or images on your site, which is about finding a balance between good visibility but also small file sizes so your web pages can load faster.
Caching will speed up your site by storing the response from any web query (including files, images, videos and database queries) in a place where they can be retrieved much faster. If your site hosts a lot of videos you can make huge speed improvements by caching these. However, it’s not always a good idea to cache everything on your website indiscriminately — parts of your site that might change regularly, such as a student comment section, will need the freedom to be more regularly updated, and user-specific information should not be cached at all. Popular caching choices include Redis and Memcached, and either of these works with Amazon Elasticache (Amazon’s managed caching service). Elasticache is much easier to use than running and hosting your own cache.
The three most common AWS storage services are Amazon Simple Storage Service (S3), Amazon Elastic File System (EFS), and Amazon Elastic Block Store (EBS). S3 is the best choice for statically hosted files, images, and videos, as well as other assets, including user generated content, because it is cheap and the files can be accessed from anywhere. However, it is not suitable for hosting your live web application code, cache/sessions, or any other files that need to be regularly modified and shared between instances.
Storage for the AWS Elastic Compute Cloud (EC2) instances that host your live code can be provided by EBS or EFS. EBS is cheaper and faster than EFS, while EFS can be shared between EC2 instances. Your instances should be backed by performant EBS storage, and any shared resources can be hosted on EFS volumes.
Read more in our guide to AWS Storage services.
Content Delivery Network (CDN)
You can use Amazon CloudFront CDN to deliver your data globally, which is useful if your online learners are based all around the world and need to do resource-intensive things like stream video fast.
Choose a database that is appropriate for your use case. For example, Amazon Relational Database Service (RDS) is the appropriate choice for relational databases, and Amazon DocumentDB (as a managed database service for MongoDB) is a good option if you need to use a document database.
Ensuring high availability
To ensure that your application doesn’t go down for long periods of time, you should make use of multiple different AWS Availability Zones. This means having duplicate services spread across different physical locations, with traffic to each service managed by a load balancer. If one service goes down, the load balancer will pass the traffic to a different duplicate service.
Occasionally, despite all your best plans, disaster can strike! The ability to recover quickly from a site outage or other technical issue is paramount if you want to maintain a good reputation. Deciding a disaster recovery plan in advance will be extremely useful here, as you need to respond quickly if something goes wrong, and you don’t want to waste time working out how to recover during an emergency. Regular practice of your recovery procedures can include rolling back code changes, failing over to redundant infrastructure, and full recovery from backup. Just as schools and businesses insist on regular fire drills, you should insist on regularly practicing terminating services and recovering from backups at a safe time.
As your EdTech business expands, your site or app will need to deal with more and more students accessing the site at the same time, as well as teachers uploading more content each week. This will slow your site and cause your web traffic to grind to a halt if you’re not careful. You can keep on top of this by scaling your application, but you should be prepared to do this before it is required, to avoid downtime.
Vertical scaling (increasing the computing power for your existing EC2 and database instances) is an easy way to begin, as it only involves a simple configuration change. However, the biggest gains are made by horizontally scaling your infrastructure — hosting your application across multiple EC2 and database instances. This type of scaling may require significant changes to your infrastructure and code base ahead of time.
AWS Auto Scaling groups allow your site to scale elastically. This means that more instances will be automatically added or removed as needed. When high loads are detected, more instances will be added, and when the load is lower (for example, during the summer holidays or on weekends), instances are removed, saving you money.
Securing student data
It’s important to keep personally identifiable information (PII) safe, and any data that is held on children is often subject to more regulation. You should make yourself aware of any local regulations that might be relevant to you, such as the Family Educational Rights and Privacy Act (FERPA) or the General Data Protection Regulation (GDPR).
If your business began in the EU and is now expanding into other countries outside of it, beware that GDPR has strict regulations against allowing international transfer of EU personal data to most countries outside of the EU. This includes storing data in an AWS Region outside of the EU (either in a database or file storage).
Delivering cost-effective high-performance EdTech apps
In order to get the most out of your IT infrastructure budget, it pays to understand which technologies can help you implement the most efficient and performant AWS solution possible. AWS itself has a number of services that can help with this, including AWS Trusted Advisor, which gives you suggestions on how to follow AWS best practices — including cost saving tips and new tools and services that can add functionality to your applications. Also useful are AWS Cost Explorer (which allows you to visualize how your costs and usage of AWS services are changing over time) and AWS Budgets (which allows you to set budgets for different AWS resources and set alerts when you are going to go over them). Tagging your AWS resources will be useful for using some of these services, and is generally useful for helping with cost tracking.
Outside of AWS, third-party vendor solutions such as CloudCheckr can help you review all your AWS resources and give suggestions for improvements and optimizations. CloudCheckr has excellent visibility for billing, and for viewing which department is using which resource.
Bonus best practices for EdTech startups
If you’re an EdTech startup, you can apply for funding in the form of AWS Promotional Credits through EdStart, the AWS accelerator program. This means you can get big discounts on your AWS bills. As you grow, you can join the AWS Partner Network, which can also give access to more AWS credits, or even, in some cases, cash grants. If you join their competency program as an education specialist company, you can also qualify for education-specific funding, including cash grants.
This article provides some useful tips and starting points for how to continue to follow AWS best practices for education as your EdTech business grows. If you’re experiencing fast growth or are unsure if you have the time or resources to implement some of these changes, contact Logicata to discuss how we can help you. As an official AWS Partner, Logicata is a Managed Service Provider (MSP) with expertise in both AWS and EdTech, and can work with you to understand your needs and keep you up to date with the latest AWS tools and techniques. Working with a proven MSP gives you the confidence and reassurance that your EdTech infrastructure is secure and optimized, so you can safely ideate, build, and deploy using the full range of tools AWS provides.