Amazon RDS now supports PostgreSQL 9.4.1
aws.amazon.com
aws.amazon.com
Postgres is widely acknowledged as the leading open source database. It's frustrating that it remains a second class citizen on AWS.
I know, from personal experience that most large companies are using mysql, even if they use postgresql they're also using mysql for smaller things..
to give some examples the only company I ever worked in which used pgsql as a direct backing store and primary database still used mysql to manage it's internal documentation servers and caching systems (records used to keep track of what is cached inside of memcached).
simply due to the ubiquity of the tools developed around mysql and the notion that you will never have a hard time finding a person with mysql experience causes people to choose mysql when designing new things.
currently I'm getting a lot of force against postgresql adoption in my company, even though it makes complete sense for my project- the fact that "nobody understands it" and that "tooling exists behind mysql" is enough to keep the status-quo for a long time unless someone fights really hard (which I'm doing).
Postgres is still comparatively new to AWS, whereas MySQL was one of the first (the first?) supported RDS engines way back in 2008/9 or thereabouts. I guess this is due in part to the relative latecoming of built-in streaming replication support in Postgres, it's only been since 9.0 that it's been a thing, and 9.1 that it's been production-ready, which coincides with it's rise in popularity over recent years (well, that and Oracle buying Sun..).
My money is on support for x-region replication being announced late this year; it's a feature I'm interested in for sure.
Plus it's all hooked into the rest of the AWS system, which can be really helpful.
I think RDS is great until the needs are extreme enough to require a full-time sysadmin or DBA. Nowadays, though, that means you're dealing with quite a lot of traffic (or just an edge case in terms of your read/write ratios or latency requirements).
If the former, then unfortunately the only option is a database dump followed by creating a new RDS instance and then restoring.
As for the latter you can do an in place upgrade following the PG docs.
Right now the best you can do is a scheduled cutover. This isn't as bad as it sounds because you can provision the new instance, import the production data and test everything before final sync and cutover.
As someone who has done this multiple times in the past I have to disagree.
Yes, it is very much as bad as it sounds and a big pain point with Postgresql in general and RDS in particular.
For small databases it may be considered a mere nuisance. But when your pg_dump takes an hour to complete then the whole "final sync and cutover" becomes a real problem.
this is pretty much a problem with RDS only. Postgres itself offers pg_upgrade which can do even huge databases (2 TB here) in seconds.
That depends on various factors. Sometimes pg_upgrade has to copy all your data. In those cases and for 2T you'll be measuring the wait in hours, not seconds.
https://aws.amazon.com/blogs/aws/rds-postgres-read-replicas/