The private beta test of Amazon SimpleDB has gone really well. We've learned a lot during the beta and have fine-tuned the feature set in order to make sure that we are meeting the needs of current and future users.
Before I delve into the details, let me get one important fact out of the way. After a year of private beta testing, we are moving SimpleDB into an unlimited beta, effective immediately! To get started, simply click the Signup button embedded in this post.
Simple does not mean simplistic and it does not mean that SimpleDB is suited only to storing small amounts of data. In fact, many of the defining and simplifying characteristics of SimpleDB become more and more prominent as request rates rise and the amount of data under management grows to terabyte levels.
Let's take a quick look at what simple means when it comes to SimpleDB:
We've made the business decision to go with SimpleDB even simpler than it was before. You can now get started for free. For at least the next six months, you can consume up to 1 GB of storage, and you can use up to 25 machine hours each month. You can transfer 1 GB of data in, and another 1 GB out. You can move as much data to and from Amazon EC2 as you would like, for free.
We've also reduced (dramatically, I must say) the charge for storage and for processing, effective immediately. SimpleDB storage is now priced at $0.25 per GB per month, down from the former price of $1.50 per GB per month. Of course, existing data stored in SimpleDB will be charged at the new rate.
SimpleDB makes it easy to get started. The conceptual model is very straightforward, as are the APIs. You can jump in and start coding, refining your data model as you go. There's no brittle, fixed schema. You store only the attributes you need to for each item. We've also got some new client libraries to make coding even easier
SimpleDB makes it easy to grow. You can have up to 100 domains and 10 GB of data in each domain during the beta. You don't have to worry about splitting your data up across multiple disks as your database grows. That's all taken care of for you, behind the scenes.
SimpleDB makes it easy to scale. You don't have to worry about creating a complex master-slave setup to support a high level of concurrent access. In fact, concurrent access is where the SimpleDB model really shines. Fire up a bunch of threads and start sending requests our way. SimpleDB can handle the load. In fact, during the private beta the developers at Pluribo scaled their application up until it was making 5600 requests per second (their technology page talks about their use of several different AWS services).
Developers have been building SimpleDB tools and libraries for quite some time. Here's a sampling:
The Simple Database Explorer is a user interface to SimpleDB. Available on a 30 day free trial basis, the program supports direct upload of existing MySQL data into SimpleDB as well as easy creation of domains, items, and attributes.
We've got all sorts of goodies in the SimpleDB Resource Center including Mike Culver's Introduction to SimpleDB video, an Active Record interface to SimpleDB for you Ruby on Rails developers, the RightScale Ruby Library, Boto for the Pythonistas, and Typica for Java developers.
During the past year we added the QueryWithAttributes function to streamline data retrieval, along with sorting of query results on any attribute. Today we're opening up access to domain metadata including attributes names, storage usage, and system state information. We are planning to release a SQL-like SELECT API as well as a Batch Put operation to streamline uploading of multiple items or attributes.
How's that sound?