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:
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.
Hi Andrew,<br />
I'll reply to a few of your points below.<br />
First, we don't use extension whitelisting to control the set of permissible extensions but to enable them at all. You cannot currently install extensions on a database without superuser without this module. We've added a reasonable list of things available in contrib that we think people would like, please let us know if we missed anything.<br />
As to the untrusted languages, we can't give them without giving out superuser, so they're unlikely to be available soon. Users who would like a particular trusted language should drop us a line and we'll see what we can do for you.<br />
Autoexplain is a great idea. We'll do that.<br />
I'm not quite sure what you mean by a "running tab", but if you mean a display of pg_stat_activity, yes, that would be a great idea.
Good point about whitelisting. There are probably a few non-contrib things in common use it would be good to have (ip4r and orafce are a good examples.) If I extended my file FDWs to allow fetching from a URL that might be another good case. Maybe I'll blog about that separately <img src="/andrew/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" /><br />
I'd like to see trusted plperl at least enabled. There are some things it's better at than plpgsql, especially if you are writing something generic that you don't know the field names for.<br />
By "running tab" I meant the current charges that will go to my credit card.<br />
I like your pg_stat_activity idea too <img src="/andrew/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" />
+1 for hoping plv8 makes the cut soon, I'm sooo looking forward to when I can target the web, server, desktop, phone, tv, whatever with one language... I'm not even a js fan, I'm just a fan of not having to know so many languages to get stuff done!