If you've ever needed a database in a real hurry, Heroku's
PostgreSQL offering which runs on top of Amazon, might be just what you need. Once you have registered with your credit card, getting a running database is about three mouse clicks away. That's pretty sweet. You don't need hardware, or a DBA, to get started.
One of the things that's mildly annoying is that there isn't a simple way to start a standalone database instance with the command line tool. I'm told that this is being addressed. There's a workaround, which is to set up a dummy Heroku application (I just followed the instructions to set up a Django app) and then add a database instance to it. I gather that's what the web interface does under the hood. It's slightly hokey, but works just fine.
Some things worth noting. You won't be a superuser of the database, just the owner. And they use
extension whitelisting so they control what extensions can be loaded. That means you're restricted to functions written in PLPgsql or SQL. No PLPerl, PLPythonu or PLTcl. I imagine that's at least in part because of security concerns. Maybe when we get PLV8 to production quality they will enable it. It has the nice property that it's automatically sandboxed, and people might feel more secure deploying it. Here's the list of whitelisted modules:
btree_gist chkpass cube dblink dict_int dict_xsyn earthdistance fuzzystrmatch hstore isn ltree pg_trgm pgcrypto pgrowlocks pgstattuple plpgsql unaccent uuid-ossp
That will cover a fairly wide range of apps.
I'd like to see them preload autoexplain but with all the settings off, so it could be used on the fly. I think it should be safe enough.
If you deploy this service you should add on one of the Heroku
PostgreSQL backup plans too. They all seem to be free currently, so there is no reason not to use them.
Don't let any of this fool you into thinking that this is a "set and forget" service, any more than any other database installation is. Some of my colleagues and I are starting to get calls for assistance with using it. It's just as possible to write bad queries for this service as for any database instance, and like any instance it can be affected by configuration parameters, which as a non-superuser with only remote access you won't have much control over here. But for many cases this will be a compelling solution to their database needs.
Final whine: I do wish Heroku had a "running tab" meter in something close to real time. Apart from that though, they seem to have done a pretty nice job.