Hacker News new | ask | show | jobs
by reilly3000 2317 days ago
RDS can scale read replicas and fail over to master, but aurora and it’s serverless option is much better for auto-scaling. Behind the scenes storage is decoupled from compute with makes scaling fundamentally easier.

EC2 is your only choice if you want a database that AWS doesn’t support, such as Rethink or Cassandra (they just recently launched a managed Cassandra service though). EC2 is also your only choice if you need full control of the DB, such as using many Postgres extensions and foreign data wrappers. Even some triggers and UDFs are limited.

A self-managed, auto-scaling, cross-AZ replicated DB setup is no small matter with EC2. Not to mention logging, metrics, patching of the DB and underlying OS. It’s 100% doable, but one should only proceed with that course with understanding of the human costs.

Personally, I’ve been choosing FaunaDB these days when possible. It’s a no-ops managed service and has on-prem/VPC options. I just write graphQL clients and move on with my life, the rest just works.

1 comments

I went with Aurora Postgres recently for a new application and to be honest it fucking sucks.

When it scales up, queries start to fail and there are long delays. I had to add a try/retry loop around all my inserts to avoid losing data.

I definitely wouldn't recommend it for bursty applications where it needs to rapidly scale up.

The thing that bugs me is that I know a similar workload works fine on a relatively cheap c3.xlarge so I'm not actually saving much money with Aurora.

... were you not handling errors on database inserts through well established concepts like exponential backoff and retry already?

that seems like a colossally bad idea

If you don't need the striped storage model and guarantees that Aurora provides, it might not be the service for you

Normally I’d agree with you but I was only doing a dozen or so inserts per second for maybe a minute or two after hours of idleness.

There was no back off because it was never needed before, even the shittiest instance could handle it without issue but Aurora failed spectacularly.