A few days ago, Jeff Barr, Amazon's Web services (AWS) evangelist visited my class and got a report of what we'd built over the course of the last semester on top of AWS. Each student had built part of a project that eventually used 25-30 independent machines. One weak spot was data storage. Jeff promised that there'd be important announcements in the coming weeks. Two days later, it's here: SimpleDB.
SimpleDB isn't a relational database. You stick values in what amounts to a big hash table in the sky. You can query that table (called a "domain") but you can't do joins across domains.
There are some other limitations as well: there's some latency in propagating data around nodes, so you can get what amount to non-repeatable reads. There's only one type: string. Consequently, queries are lexigraphical. And there are no indexes. If you want indexes for text search, you have to build them yourself.
While the lack of a relational model and the other considerations might be limiting for some applications, for many, it's fine. You get the standard database CRUD operators (create, request, update, and delete) along with a reasonable query language, backed up, and network accessible--all for pennies per hour/gigabyte.
In his most recent Gesture Labs post, Steve Gillmor says:
Does it make a difference to the user whether the document creation engine lives on the hard drive or is acceptably and intelligently cached where needed between cloud and device? When these distinctions become invisible to users, the economics of the distributed virtualized model become impossible to stop.
While Steve is speaking of runtimes, Google, and the iPhone, the logic applies equally well to the server level. Virtualizing and commoditizing servers, storage, and databases is game changing. Amazon's most recent entry into it's product line is just one more reason not to buy hardware.
One of the worries in this model for business is building everything on Amazon without any backstop. I think Amazon would benefit from some competition in this space so that people knew there were alternatives.
Even so, the model is compelling. When you can build large, distributed systems and avoid pouring precious dollars into fixed capital assets, startups can do things that just weren't possible before.