In 2019, AWS announced Savings Plans. “Great, it supports EC2 and Fargate, now you need to support Lambda” was my immediate reaction–not because (at that time) Lambda was expensive, but rather because it removed a perceived economic reason not to migrate to Serverless technologies. I mean, let’s be serious here: “we want to use Lambda, AWS definitely wants us to use Lambda, but the commitments we made to use EC2 and Fargate mean it’d be too expensive for us to move to Lambda” is a story that serves nobody well. In time, Lambda did indeed become supported, and my next reaction was “great, now apply it to RDS for the exact same reason.” Little did I know it, but I’d spend the next six years tilting at that windmill.
At Some Point It’s Worth Doing Just To Shut Me Up
Now, at long last, AWS has released Database Savings Plans, and I’m of two minds on it.
The Good Parts
This is better than it has any right to be, because it’s not just for RDS! It supports DynamoDB, Keyspaces, DocumentDB (“Amazon Basics MongoDB”), ElastiCache(I TOLD you it was a database!! Note, this is for Valkey only; no Redis or Memcached), Aurora which both is and is not RDS depending upon how you squint at it, Neptune, Timestream (instance-based InfluxDB only), and for some godforsaken reason Database Migration Service. I notice at this time that it doesn’t support Athena, MemoryDB, Route 53, or RedShift.
It covers instance hours on a per-hour basis the same way that existing Compute Savings Plans work, and covers serverless versions of the relevant services as well. Discounts run up to 20% for instance-based usage and up to 35% for serverless. That serverless discount is particularly notable: there’s mostly been no commitment savings option for serverless databases until now, so this is entirely incremental savings that wasn’t previously available to you.
Perhaps most notably, it’s launching with full support in the Savings Plans Purchase Analyzer from day one. AWS has a long history of launching features half-baked and backfilling the tooling months later, so this signals they actually want customers to use this thing. This is again vindication that the Savings Plan Purchase Analyzer was the most customer-focused AWS launch of 2024, and I will go to the mat on that one.
The Bad Parts
It doesn’t support EC2. I wanted folks to be able to commit to spending a certain amount of money on AWS for a given time period, and then let them reallocate it as best makes sense. Why should AWS care about whether or not a customer’s dollar is going to compute or database or network, just so long as it goes to AWS? Customers don’t care. AWS as a business shouldn’t care. Unfortunately, it seems its feudal lords do care, and they’re the ones who make these rules. If a customer wants to move from RDS to EC2 and then back again, why should there be false economic obstacles to achieving that outcome?
It’s only available for current-gen instances (7th generation and newer—no t4g instances), and only for one-year terms. It’d be nice to lock down database spend for 3 years, since let’s face it: databases aren’t the most agile of workloads to sling around between environments.
It’s also only available for no-upfront payment terms. I don’t really care about that, but some of our customers will absolutely care about that very much because of how they structure their AWS spend cycle. I’ll leave it to them to decide whether or not they want to press Amazon on the issue, and if so, how hard.
The exclusion list is longer than I’d like: SimpleDB (yes, that’s still a thing), Timestream LiveAnalytics, Neptune Analytics, Redis, MemoryDB, Memcached, China regions, and AWS Outposts are all left out in the cold. It also only covers instance and serverless usage—storage, backup, IO, and other usage types aren’t included. And if you’re running commercial database engines with unbundled license fees, those aren’t covered either—but you’re already bleeding money and making weird choices, so may well not care about this.
The Bottom Line
Despite my grumbling, this is unambiguously where AWS is taking database commitments, and reasonably close to where I’ve wanted them to go with it. RIs aren’t disappearing tomorrow, but the writing is on the wall—and getting ahead of this now beats scrambling when you’re forced into it. Go check the Savings Plan Purchase Analyzer and start modeling what this looks like for your database spend.