While web services have become almost ubiquitous in the web 2.0 arena, professor von Eicken concentrated on Amazon’s services because they provide the infrastructure solutions that his students needed for their projects. In particular, Amazon Simple Storage Service (Amazon S3) and Amazon Elastic Compute Cloud (Amazon EC2) formed the cornerstones for his course.
Amazon S3 is storage for the Internet, providing a simple web services interface that can be used to store and retrieve any amount of data, at any time, from anywhere on the web. Amazon EC2 is a web service that provides resizable compute capacity in the cloud. Amazon EC2 reduces the time required to obtain and boot new server instances to minutes, allowing users to quickly scale capacity, both up and down, as computing requirements change. Both web services are highly scalable, reliable, fast, and inexpensive infrastructure solutions.
“Amazon Web Services was a major supporter of our students by providing in-classroom training and support,” said Prof. Thorsten von Eicken. “While it is often tedious for the students to get into all the nitty gritty details that are necessary to actually make the project work, the experience and insights they gain while doing that are invaluable for building their skills and making them coveted resources when they graduate. In the end, it makes the difference between students that know the concepts but falter when put to task and students that can confidently plan and execute a project.”
The project consisted of building a transactional dynamic web site in Ruby on Rails, running on Amazon EC2 and storing data in Amazon S3. Each site was required to contain >100,000 searchable database records, multiple user accounts, and include some type of transactional capability, such as a shopping cart check-out.
To Prof. von Eicken the marriage of Ruby on Rails (RoR) and Amazon EC2 is a very natural one: Ruby on Rails is a very scalable agile web development framework which uses a “shared nothing” architecture that lends itself very well to scaling horizontally by adding more and more application servers. The benefit of Amazon EC2 is obvious: the performance of a RoR site can be increased on demand by launching the RoR application on additional Amazon EC2 servers and the cost can be dialed back during idle periods by shutting down Amazon EC2 servers.
The very hands-on nature of the course with a significant project component allowed the students to test these promises of scalability and agility. They could experience for themselves where the scalability can be realized and where the roadblocks are. The lectures provided background information to support the project and explained technologies beyond the scope of the project.
“During the first stage of the project I asked everyone to use a web service for the purpose of gathering over 100,000 items to create a database,” said Prof. von Eicken. “Students used a wide variety of web services that are freely available and several groups used Amazon ECS to gather product data from the on-line Amazon.com catalogs.”
Each project was then required to be deployed on multiple servers within Amazon EC2, and the teams used httperf to demonstrate that they could scale the performance of their sites by running a front-end load balancer server, a database server, a memcached server, and up to 10 application servers. All of this was accomplished in a 10-week quarter, with none of the students knowing either Ruby on Rails or Amazon EC2 at the outset.
“Everyone was of course working frantically on their project during the last 24 hours prior to the deadline,” said Thorsten. “It was a real testament to the agility enabled by Amazon EC2 that all the groups could just fire up instances to meet their needs on-demand. There was no moment where a group couldn’t get the resources it needed.”
“Amazon EC2 was a pleasure to use for scalability experiments,” Thorsten continued, “We had more than 80 instances running concurrently during many testing periods and we launched close to 700 instances total. Being able to leverage Amazon Web Services made a tremendous difference for the success of the class.”
Over 30 students participated in the course and submitted 15 applications for final grading. All of the students passed the course. Visit http://www.voneicken.com/courses/ucsb-cs290f-fa06/index.php
to learn more about the course curriculum and the top three applications.
(Published 2006)