Amazon Elastic Block Store (EBS) enables a single Amazon EC2 instance to attach to one or more highly available, highly reliable storage volumes of up to 1 TB of data each. Once attached, applications on a single Amazon EC2 instance can read or write from the Amazon EBS volume similar to a disk drive. With Amazon EBS, an Amazon EC2 instance can now be terminated without losing the data that resides on the Amazon EBS volume. One use case involves running a relational database within an Amazon EC2 instance, but maintaining the data within an Amazon EBS volume.
In the months prior to leaving Heavy, I led an exciting project to build a hosting platform for our online products on top of Amazon’s Elastic Compute Cloud (EC2). We eventually launched our newest product at Heavy using EC2 as the primary hosting platform. I’ve been following a lot of what other people have been doing with EC2 for data processing and handling big encoding or rendering jobs. We set out to build a fairly standard LAMP hosting infrastructure where we could easily and quickly add additional capacity. In fact, we can add new servers to our production pool in under 20 minutes, from the time we call the “run instance” API at EC2, to the time when public traffic begins hitting the new server. This includes machine startup time, adding custom server config files and cron jobs, rolling out application code, running smoke tests, and adding the machine to public DNS. What follows is a general outline of how we do this.