InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Amazon Brings Virtualized Storage to the Cloud with Elastic Block Storage

Posted by Scott Delap on Aug 21, 2008

Sections
Architecture & Design,
Operations & Infrastructure
Topics
Cloud Computing ,
Virtualization ,
Architecture
Tags
EC2
In April of this year Amazon CTO Werner Vogels announced the development of persistent storage for Amazon EC2. This has long been an achilles heel of the EC2 platform. Server instances startup with the contents of their parent image. Upon server failure/restart the disk reverts back to the original image definition. Today Amazon moved to address this issue with the release of Elastic Block Storage (EBS). Vogels outlines how the offering completes Amazon's suite of common storage patterns:
We had to make sure that the infrastructure storage solutions we were going to develop would be highly effective for developers by addressing the most common patterns first. That analysis led us to three top patterns:
  • Key-Value storage. The majority of the Amazon storage patterns were based on primary key access leading to single value or object. This pattern led to the development of Amazon S3.
  • Simple Structured Data storage. A second large category of storage patterns were satisfied by access to simple query interface into structured datasets. Fast indexing allows high-speed lookups over large dataset. This pattern led to the development of Amazon SimpleDB. A common pattern we see is that secondary keys to objects stored in Amazon S3 are stored in SimpleDB, where lookups result in sets of S3 (primary) keys.
  • Block storage. The remaining bucket holds a variety of storage patterns ranging special file systems such as ZFS to applications managing their own block storage (e.g. cache servers) to relational databases. This category is served by Amazon EBS which provides the fundamental building block for implementing a variety of storage patterns.

Amazon has also provided details in regards to pricing, durability, and performance. Highlights include:

  • Volumes can be between 1GB and 1TB in size.
  • Volumes behave like raw unformatted block devices.
  • Access is limited to within the same availability zone similar to a SAN in a data center.
  • A volume can only be attached to one EC2 instance at a time.
  • One EC2 instance can have several attached volumes.
  • Volumes can have snapshots backed up to S3. Snapshots are incremental with only changed data.
  • Due to data replication, complete volume failure is expected to be 0.1% - 0.5% based on volume size compared to 4% for commodity hard disks.
  • Pricing is $0.10 per allocated GB and $0.10 per million I/O requests.
Given this pricing it is estimated that a medium size database with 100GB of storage would cost $10 in storage and $26 in usage costs. A tutorial is available for running MySQL with EBS. Right Scale has written an overview providing further analysis of the specifications that includes a number of best practices and formulas for cost estimation. In regards to I/O rates they provide the following practical experience:

...As a point of reference, our main database server is pretty busy and chugs along at an average of 17 transactions per second, which should total to around $4.40 per month. But our monitoring servers, prior to some recent optimizations, hammered the disks as fast as they would go at over 1000 random writes per second sustained 24×7. That would end up costing over $250 per month! As far as I can tell, for most situations the EBS transaction costs will be in the noise, but you can make it expensive if you’re not careful...

Finally, GigaOM provides a business analysis of the new offering noting that traditional data centers should be worried.

No comments

Watch Thread Reply

Educational Content

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.