AWS Official Blog

SecondTeacher – Scalable Math Homework Help in the Cloud

by Jeff Barr | on | in Amazon EC2, Amazon SDB, Cool Sites |

Despite the fact that I have written over 800 posts for this blog, I never know what to expect in terms of traffic or attention from any given post. Last Friday afternoon I spent an hour or two putting together a relatively quick post to remind everyone that it is possible to use Amazon SimpleDB for free.

Driven by my initial tweet and a discussion on Hacker News , word spread quickly and traffic to the post was quite robust, especially for a Friday evening!

I’m a big believer in the ClueTrain and its perspective-changing observation that “Markets are conversations.” Blog posts are a great way to get conversations started. Several people took the time to leave comments on the post. A comment from Robert Doyle of SecondTeacher caught my eye, and I asked him if he could tell me a bit more about his use of SimpleDB. He sent me a wonderful summary of his experience to date with the site and with AWS. I’ll do my best to summarize what he told me.

 

Robert is a one-time OS/2 developer who now writes Windows code. When he was designing Second Teacher he decided to offload the heavy lifting to someone else so that he and his brother could focus on the site instead of on the infrastructure.

Robert and his brother started SecondTeacher a year or so ago, with the idea that they could make math easier to understand for kids in school. They wanted to make the service inexpensive (currently $25 per year) and accessible. They realized this goal by creating a 10-minute instructional video for each chapter of a number of popular textbooks. A certified teacher explains the concepts and works the problems using a whiteboard.

Traffic to the site is variable yet very predictable. Peak traffic occurs between 3 PM and 9 PM on weekdays, with very low load at other times. Robert told me that he keeps one EC2 instance running in off hours and scales to twenty during the daily peak. Over the course of a week he has an average of three instances running.

The site uses a number of AWS services! The video content is stored in Amazon S3 and distributed world-wide using Amazon CloudFront. Elastic Load Balancing is used to distribute incoming traffic across a variable number of EC2 instances.

User data, content management information, and session state are all stored in Amazon SimpleDB. The session state (a string) is retrieved on each page request and averages 200 bytes per user. Robert said that all of his usage to date has remained within the free level! He also told me:

We really have used SimpleDB as a traditional database and we have found it to be easily as reliable as roll your own databases and with little or no maintenance required. Initially we found the variable number of attributes in a domain a bit off putting but we have grown to love it and use it extensively.

You can read Robert’s recent post, Building a Scalable Website, to learn even more about the site’s architecture.

As a parent who has spent way too much time trying to understand enough “new math” in order to help my children with their homework over the years, this sounds like a really valuable tool.

– Jeff;