
mazon has built an online-merchandising empire selling not just books, but also music, electronics, groceries, and all manner of consumable goods. All the while, Amazon has quietly built a set of public online tools to enhance sales of its existing product lines: from the Amazon Associates Web Service (formerly known as the Amazon E-Commerce Service), which lets you push Amazon merchandise on your own site, to the Alexa line of services, which you can use to build search-engine-like tools. Having made such an investment in building its own systems, in early 2006, Amazon began to market its own expertise in building scalable applications. Known collectively as
Amazon Web Services (AWS), Amazon's services offerings are making it possible to build applications almost entirely in "the cloud" with seemingly limitless capacity.
AWS consists of a constantly-expanding toolset for building applications in the cloud. According to Wikipedia, cloud computing involves moving computing resources from individual hardware resources to virtually managed pools of resources. In some sense, this idea suggests that we will draw mainly on the cloud's capacity for scalability and its built-in facilities for backup, redundancy, power, HVAC, network, Internet bandwidth, and so on. While the physical server resources are a part of Amazon's offering, AWS goes farther by providing inexpensive storage (Simple Storage Service), high-capacity queuing (Simple Queue Service), and a simplified database server (SimpleDB).
In short, Amazon is assembling a meta operating system that developers and entrepreneurs are leveraging to build scalable, reliable applications that would cost orders of magnitude more were they hosted on more traditionally constructed platforms where vast farms of servers and disk arrays are required to maintain high levels of redundancy and surge-levels of capacity. Companies are freed not only from some of their highest infrastructure costs, but also from infrastructure management (for the most part). However, the AWS platform still has some obvious holes that require third-party tools and improvisation to smooth over.
This article covers some of the compelling features of the AWS platform, how you can use them to help build your application infrastructure, and important implementation details that can cause problems if overlooked. It also points out some of the more interesting ways these tools have already been employed.
AWS "Case Studies"
Before examining each of Amazon's new services, consider the following two company scenarios in which Amazon's cloud services could help:
- Company A operates a successful photo-sharing site that offers unlimited photo storage and sharing. Repeated expenditures on large volumes of storage space, combined with the high price of reliable long-term storage (estimates range from $15-150 per GB), force the company to reconsider the cost of the business model.
- Company B, operated by two recent university grads, hosts a startup video-sharing service with high hopes, few customers, and even less money.
Company A is shopping around for an inexpensive way to continue to provide unlimited storage, while Company B is looking to scale the infrastructure costs of operating its business linearly with the growth of its customer basewhile having the infrastructure necessary to support the Digg storms they seek. Amazon's AWS tools can satisfy the needs of both companies.