Broken Promises Aurora Serverless v2
The sad story of AWS' divergent Aurora Serverless offerings began when Amazon Aurora Serverless v1 was announced at re:Invent 2017. Version 1 has some issues that are a little rough and frankly, it's hard to justify its trust in production. So I was on board when Aurora Serverless v2 was announced at re:Invent 2020. After a year and a half public preview period and plans to fix all issues with v1, it became generally available. But every word "Aurora Serverless v2" is a lie.
"Aurora" is AWS's own database engine that is named after a fairytale princess. Unlike every Disney movie you ever watched as a kid, AWS relational database services fall short of the implicit promise of a happy ending guaranteed to the heroines, from Ariel to Jasmine to EVE.
"Serverless" gets most of my irritation here. Unlike its predecessor, Aurora Serverless v2 actually offers multi-region options. But it breaks other implicit promises about serverless — most egregiously, it doesn't scale to zero.
"V2" is the final betrayal. The second version of AWS is expected to be significantly better overall and able to completely replace v1. As it stands, Aurora Serverless v2 is nowhere near that point.
Expensive downsizing
The implicit promise of serverless is "you pay per request and it turns to zero when not in use".
Yes, you pay for data storage, but that's how it's always been. Aurora Serverless v1 got it; shrunk to nothing and would stop charging you. The first request would "wake up the system", albeit with a potential latency cost of up to one minute. Ok, not great, but v2 can definitely fix it!
Well, it did, but in the worst possible way. Buried in the documentation, AWS states that "currently, Aurora Serverless v2 writers and readers do not scale to zero ACU." As a result, the lowest you'll pay per month for one of these things is just under $45.
Explain to me again why you wouldn't run your database engine of choice on a less expensive RDS instance or even on EC2 under light load? I really hope this gets resolved between the time I write this and the time I publish this, because calling Aurora Serverless v2 "serverless" will confuse people as to what the term means. Unfortunately, there is a strong argument that this is already a lost cause.
Broken database management system
One reason to have a serverless database is that AWS handles all the scaling issues associated with serverless applications. It could sit there idle, then spin up 5,000 Lambda functions and basically crash the database to death.
Aurora Serverless v1 did a great job of this by introducing a data API that Lambdas can hit on without breaking the core service with a flood of new connection requests all at once. For some workloads, this is awesome!
Aurora Serverless v2 has avoided using it entirely, opting to use Amazon RDS Proxy instead. The minimum charge for this thing is an additional 12¢ per hour on top of the basic Aurora Serverless v2 databases – though it still forces you to manage database connection pooling yourself so your lambdas don't hug the thing to death again.
I'm still hoping I'm missing something key here, but other reviews say the same thing.
AWS, untangle Aurora's thorny paths
What's confusing to me is that Aurora Serverless v2 was in Preview from December 2020 to April 2022. AWS had enough time to make a solid hit on v2 that actually fixed the issues with the first version, and then let it become functionally obsolete.
Instead, we're staring down two diverging roads for Aurora Serverless. AWS now has v1 and v2 of the same service, each offering different capabilities and trade-offs. They are two different services sold under the same name. Customers will be confused. Damn, I'm confused! I have to hope and believe that this is a temporary situation that will improve quickly - but today I'm not convinced.
Post a Comment