AWS Aurora Serverless - A Quick Review
We were really excited when we read about Aurora Serverless. We have had good experiences with Aurora and the idea of having it serverless is really enticing.
What we expected was a way to run a database without having to necessarily pay for it when we aren‘t using it. A little bit like DynamoDB for MySQL/PostgreSQL. AWS also portrait it as well as such, as something well suited for dev environments and small scale setups.
Unfortunately it did not deliver what we expected. Aurora Serverless is somewhat serverless; you still have to define how many CPU cores and how much memory you need. What Aurora Serverless does is to automatically scale your resources up and down depending on demand and a few settings.
The main problem we ran into: When trying to use this to power a small backend for an app, we wanted to save resources (and therefor money) and have the database shutdown; to actually save money by AWS managing this for us.
The problem is that when your Serverless Database Cluster has 0 CPU and memory available, requests are not being processed. The database will instead start to reserve resources and will respond to requests later on, however the original requests go unanswered.
Okay, after figuring out that it is not like DynamoDB we tried to have at least 2 CPUs running at all times, to make sure we are operational at all times. Keep in mind that this is a very small usage but it is still in production. Now you would think that Serverless would be still a little bit more affordable then a regular database instance, or at least we hoped this was the case. Unfortunately it turns out that Aurora Serverless is decently more expensive (about 30% in our case) than just having an instance running at all times.
Does it mean that Aurora Serverless is useless? Not at all, we are not trying to say that! It will certainly work wonderfully in setups where you need to be able to scale very quickly up and down. However, it did not deliver us with something we could use a permanent replacement for smaller clusters in the hopes of saving money.
We will keep playing with it and try it for some bigger projects at some point, subscribe to our newsletter to get to know more! ;)