Note: This blog post has been done as an independent pricing evaluation for the benefit of Vantage users and the broader infrastructure community. While Vantage employees have met with both representatives of AWS and PlanetScale to confirm details, this is not a sponsored post and was not commissioned by either party.
Introduction
PlanetScale is a recent entrant to the Database-as-a-Service (DBaaS) market and is capturing significant developer mindshare. The company is taking a developer experience focused approach to creating and managing databases with what’s advertised as a “serverless” database service. Their offering is powered by an open-source software named Vitess and is priced primarily on rows read, written and storage utilized.
Amazon Relational Database Service (RDS) is a service that has been available to customers since 2009. Similar to most AWS products, Amazon has focused on providing the bare primitives while much of the work is still contingent on you to manage and maintain. Amazon RDS is one of the top cost drivers for most organizations and is currently ranked as the #2 cost driving service on the Vantage Cost Leaderboard, behind Amazon EC2.
For this comparison, we’ll match PlanetScale against the following RDS configuration - with specific instance types mentioned further down:
- Region: us-east-1
- A multi-AZ deployment – given that Planetscale is advertised as serverless, it’s assumed that it’s running in some sort of redundant fashion.
Comparing Pricing
The pricing employed by these two services aren’t easy to compare right off the bat. You’ll see later on how we take a few examples to compare a few different situations but before getting into that it is important to understand how these two services price as a primer. If you’re familiar with the pricing of these services, you can skip to the next section.
Amazon RDS charges based on an a-la-carte menu typical of AWS services. You’ll pay on the following metrics:
- Region (i.e. us-east-1, us-west-2)
- Instance Type (db.t3.micro, db.m6g.large)
- GB of EBS-attached storage (10GB, 20GB)
- Storage type of attached storage (gp2, gp3)
PlanetScale takes a different approach, simplifying pricing across all regions but changing the model to be more focused on usage:
- Tier (i.e. Free, Scaler, Enterprise)
- Rows read beyond the default allocation (i.e. 1 billion rows read)
- Rows written beyond the default allocation (i.e. 150M rows written)
- Storage used beyond the default allocation (i.e. 75GB beyond the default allocation)
Comparing Free Tiers
Both Amazon RDS and PlanetScale offer free tiers. RDS offers 750 hours per month (basically a full month for a single running instance) with 20 GB of General Purpose (SSD) database storage for only a db.t2.micro instance which, for all intents and purposes, is an antiquated instance type as we head into 2022.
PlanetScale offers a free single database (it is unclear what underlying instance type this free tier runs on) that includes 5GB storage per month and 1 billion row reads per month and 10 million row writes per month.
These free tiers are roughly comparable from a resource perspective with a few call outs:
- Performance: While this blog post does not include formal benchmarks, from some initial tests performance in the PlanetScale free tier significantly outperforms the db.t2.micro offered by Amazon. It’s unclear what instances PlanetScale is running under the hood but it seems to be R, M or C instances – that should give you an indication of the relative performance to a db.t2.micro.
- Term: The PlanetScale free tier seems to be in perpetuity. You are always granted a single free database forever. Amazon caps their free tier at 12 months of usage which means after 12 months you’ll have to start paying for that db.t2.micro which runs roughly $15 per month when you include the accompanying cost of storage and backups.
Pricing Examples Beyond the Free Tier
In comparing pricing beyond the free tier, we look to provide a few examples given the different pricing methodologies between these two service providers. We’ve profiled a random sampling of 1,000 Vantage users to see some of the more commonly used RDS instances and have selected four of the top instance types used across different instance families and CPU chipsets for the purposes of diversity in this blog post.
RDS price per hour* | RDS price per month | |
---|---|---|
db.t3.micro | $0.0340 | $25.296 |
db.m6g.large | $0.304 | $226.176 |
db.m5.large | $0.3420 | $254.448 |
db.r5.4xlarge | $3.84 | $2,856.96 |
PlanetScale offers a “Scaler” plan that charges a monthly subscription of $29 per month with overages applied for additional rows read and written beyond their default allocations. Below is a table that shows an equivalent amount of usage you can get from using PlanetScale at equivalent overage charges.
Monthly Cost | PlanetScale Subsription | PlanetScale Overages | Equivalent Rows Read | Equivalent Rows Written | |
---|---|---|---|---|---|
db.t3.micro | $25.30 | $29 | $0 | 1,000,000,000 | 50,000,000 |
db.m6g.large | $226.18 | $29 | $197.18 | 198,180,000,00 | 181,453,333 |
db.m5.large | $254.45 | $29 | $225.45 | 226,450,000,000 | 200,300,000 |
db.r5.4xlarge | $2,856.96 | $29 | $2,827.96 | 2,828,960,000,000 | 1,935,306,667 |
Looking at the above, the tipping point for using PlanetScale from RDS is simply looking at your corresponding instance type and profiling the number of rows read vs rows written. Where the number of rows read and written is significantly below the allocation you can receive, moving to PlanetScale can make sense from a pure price perspective.
It’s also important to note we gave the maximum allocation for both rows read and written from the equivalent PlanetScale overage charges. As various customers reading this post will have different read/write patterns, we felt we should show the ceiling on both but in reality there is a trade-off between these in practice.
The PlanetScale Tipping Point
So given the above, at what point does it make financial sense to consider looking at PlanetScale vs RDS? We gave four popular RDS instance type configurations above but for users of RDS looking to understand the cost implications for their specific setup you can use the equation below to see the cost of using PlanetScale:
$29 monthly subscription +
(millions of rows read for the month * 0.001) +
(millions of rows written for the month * 1.50)
Whatever that number produces you can line up with the Amazon RDS multi-AZ price you’re currently paying Amazon. There are cases where PlanetScale could be considerably cheaper and cases where PlanetScale could be more expensive but ultimately this depends on your database usage patterns.
Other Considerations
This blog post attempts to look at PlanetScale and RDS from a pure pricing comparison - there are likely a lot of other considerations you should keep in mind:
- This blog post uses on-demand pricing for RDS comparisons. If you’re able to commit to RDS Reserved Instances, the threshold at which it makes sense to consider PlanetScale can change substantially.
- Understand your usage patterns: With Amazon RDS you don’t need to be as sensitive to always knowing exactly what your rows read and written are - but that peace of mind can come at an additional cost. PlanetScale can make sense to use if you have reliable usage patterns that fit their pricing model, but growth or significant deviations on read/writes can potentially have a negative, unexpected impact.
- PlanetScale presumably has better deals on their Enterprise plan. The details of this aren’t publicly available but inquiring may shed some light.
- Feature Set: This blog intentionally looks at things from a financial perspective only. That being said, both PlanetScale and RDS different greatly in the features they offer and developer experience they offer companies. We encourage you to look at the feature sets of both and weight that into your decision.
Monitor your PlanetScale costs.