Some of our users at FamilyLearn have wondered about what Amazon has to do with FamilyLearn, and how our new software system is going to hold up under high demand. While most people usually associate Amazon.com with books, software engineers like myself are starting to think of Amazon as a bag of tricks and solutions to common web development challenges. For example, here is a brief overview of our plan, using Amazon:

  • Using Amazon’s S3 storage servers, we have unlimited space for all of the pictures and stories that FamilyLearn users upload and send while working on their projects. The data is stored in a fail-safe system so that we’ll never lose anyone’s pictures or books. The final, press-ready PDF files that our system generates are also stored on Amazon S3 so that users can download their finished product.
  • We’ve also started using Amazon’s EC2 computing servers. This gives us a way to increase our computing power on-demand when traffic gets heavier. For now, we haven’t implemented the “on-demand” part of the plan, but we can turn on more servers manually when we see the need.

The technology behind iMemoryBook and Pyxlin is a fairly complicated process. Being able to see a book “published as you go” is a wonderful thing, although it comes with some cost. As it turns out, converting what you see on the internet in to a printed and bound book is a fairly intensive computational task—and in our case, we’re doing it on-the-fly. For those of you familiar with such conversion tools as laTeX, ImageMagick and pdftk, you can imagine what it must take to respond to each web action by converting it and presenting it back to the user as a visible image in the browser. We look forward to optimizing the system so that it will be more responsive in the future; but, for now, we’re quite happy with the way it’s turned out on EC2.