Amazon Aurora and PlanetScale are MySQL database services, sometimes called “Database as a Service,” that elevate performance beyond the capabilities of plain MySQL. This also results in cost savings, a pivotal factor in selecting a database solution. However, as you’ll soon be able to see, the pricing for PlanetScale and Aurora can be difficult to compare since it comprises several distinct factors. That’s where the scenarios become particularly useful.
In two out of three scenarios, we found 18% and 132% savings using PlanetScale, and in one scenario, Aurora delivered 22% savings (read scenarios).
Amazon Aurora
Aurora is a relational database service that is compatible with MySQL and PostgreSQL. For this comparison, we will focus only on Aurora MySQL. Performance tests done by Amazon through SysBench show significantly higher throughput with Aurora than with MySQL’s default configurations.
Some key features include high performance, auto-scaling, automated database clustering and replication, and high durability. Aurora offers various options for configuration that we’ll discuss more in the pricing section. Serverless is one popular configuration because of its ability to automatically start up, shut down, and scale capacity upward or downward.
PlanetScale
PlanetScale is a MySQL-compatible database with reliable replication and high availability. PlanetScale leverages Vitess, an open-source database clustering system initially developed by YouTube to combat MySQL scalability challenges. Vitess is used by some of the industry leaders but can be complex to implement, which is where PlanetScale comes in.
PlanetScale is known for its advanced MySQL features, such as horizontal sharding, non-blocking schema changes, and high scalability. Scalability is tested and proven in this benchmark, where one million queries per second were successfully executed.
Aurora Pricing
As there often is with Amazon pricing, there are several factors to consider. The following configuration choices impact the way you are billed.
Cluster Configuration
Aurora clusters come in two flavors. Aurora Standard is ideal for “typical data access patterns and low to moderate I/O usage.” Aurora I/O-Optimized is recommended for, you guessed it, I/O-intensive applications. With this option, you can save up to 40% if your I/O spend is more than 25% of your total Aurora database spend.
Database Instance Configuration
Choose between Aurora Serverless, Aurora On-Demand, and Aurora Reserved Instances. Aurora Serverless is the pay-as-you-go option where you pay only for the capacity used. You are billed per second for Aurora Capacity Units (ACUs), where each ACU corresponds to approximately 2 GB of memory, along with corresponding CPU and networking resources, mirroring the configuration used in Aurora provisioned instances. A key serverless feature is the ability to scale up and down, and you can do so by setting the minimum and maximum number of ACUs to scale between.
Previously, with Aurora Serverless you had the option to further configure with the choice between Aurora Serverless v2 and Aurora Serverless v1. However, Amazon announced they are no longer supporting v1 as of December 31, 2024.
Measure | Aurora Standard (per ACU hour) | Aurora I/O-Optimized (per ACU hour) |
---|---|---|
Aurora Capacity Unit | $0.12 | $0.16 |
With Aurora On-Demand, select an instance type and pay per database instance-hour.
Current Generation | vCPU | Memory | Network Performance | Aurora Standard (Price Per Hour) | Aurora I/O-Optimized (Price Per Hour) |
---|---|---|---|---|---|
db.t3.small | 2 | 2 | Low to Moderate | $0.04 | $0.05 |
db.t4g.medium | 2 | 4 | Up to 5 | $0.07 | $0.10 |
db.t3.medium | 2 | 4 | Low to Moderate | $0.08 | $0.11 |
db.t4g.large | 2 | 8 | Up to 5 | $0.15 | $0.19 |
db.t3.large | 2 | 8 | Low to Moderate | $0.16 | $0.21 |
db.r7g.large | 2 | 16 | Up to 12.5 | $0.28 | $0.36 |
db.r6g.large | 2 | 16 | Up to 10 | $0.26 | $0.34 |
db.r6i.large | 2 | 16 | Up to 12.5 | $0.29 | $0.38 |
db.r5.large | 2 | 16 | Up to 10 | $0.29 | $0.38 |
db.x2g.large | 2 | 32 | Up to 10 | $0.38 | $0.49 |
db.r7g.xlarge | 4 | 32 | Up to 12.5 | $0.55 | $0.72 |
db.r6g.xlarge | 4 | 32 | Up to 10 | $0.52 | $0.68 |
db.r6i.xlarge | 4 | 32 | Up to 12.5 | $0.58 | $0.75 |
db.r5.xlarge | 4 | 32 | Up to 10 | $0.58 | $0.75 |
db.x2g.xlarge | 4 | 64 | Up to 10 | $0.75 | $0.98 |
db.r7g.2xlarge | 8 | 64 | Up to 15 | $1.11 | $1.44 |
db.r6g.2xlarge | 8 | 64 | Up to 10 | $1.04 | $1.35 |
db.r6i.2xlarge | 8 | 64 | Up to 12.5 | $1.16 | $1.51 |
db.r5.2xlarge | 8 | 64 | Up to 10 | $1.16 | $1.51 |
db.x2g.2xlarge | 8 | 128 | Up to 10 | $1.51 | $1.96 |
db.r7g.4xlarge | 16 | 128 | Up to 15 | $2.21 | $2.87 |
db.r6g.4xlarge | 16 | 128 | Up to 10 | $2.08 | $2.70 |
db.r6i.4xlarge | 16 | 128 | Up to 12.5 | $2.32 | $3.02 |
db.r5.4xlarge | 16 | 128 | Up to 10 | $2.32 | $3.02 |
db.x2g.4xlarge | 16 | 256 | Up to 10 | $3.02 | $3.92 |
db.r7g.8xlarge | 32 | 256 | 15 | $4.42 | $5.75 |
db.r6g.8xlarge | 32 | 256 | 12 | $4.15 | $5.40 |
db.r6i.8xlarge | 32 | 256 | 12.5 | $4.64 | $6.03 |
db.r5.8xlarge | 32 | 256 | 10 | $4.64 | $6.03 |
db.x2g.8xlarge | 32 | 512 | 12 | $6.03 | $7.84 |
db.r7g.12xlarge | 48 | 384 | 22.5 | $6.63 | $8.62 |
db.r6g.12xlarge | 48 | 384 | 20 | $6.23 | $8.10 |
db.r6i.12xlarge | 48 | 384 | 18.75 | $6.96 | $9.05 |
db.r5.12xlarge | 48 | 384 | 10 | $6.96 | $9.05 |
db.x2g.12xlarge | 48 | 768 | 20 | $9.05 | $11.76 |
db.r7g.16xlarge | 64 | 512 | 30 | $8.84 | $11.50 |
db.r6g.16xlarge | 64 | 512 | 25 | $8.31 | $10.80 |
db.r6i.16xlarge | 64 | 512 | 25 | $9.28 | $12.06 |
db.r5.16xlarge | 64 | 512 | 20 | $9.28 | $12.06 |
db.x2g.16xlarge | 64 | 1024 | 25 | $12.06 | $15.68 |
db.r6i.24xlarge | 96 | 768 | 37.5 | $13.92 | $18.10 |
db.r5.24xlarge | 96 | 768 | 25 | $13.92 | $18.10 |
db.r6i.32xlarge | 128 | 1,024 | 50 | $18.56 | $24.13 |
Aurora Reserved Instances are recommended for “steady-state database workloads,” and these one-year or three-year commitments provide huge savings.
Storage and I/O
Component | Aurora Standard | Aurora I/O-Optimized |
---|---|---|
Storage Rate | $0.10 per GB-month | $0.225 per GB-month |
I/O Rate | $0.20 per 1 million requests | Included |
PlanetScale Pricing
PlanetScale’s pricing structure is designed for simplicity and predictability. There are four plans:
- Hobby (Free-Tier): A free option for projects that need only a small amount of storage and row read/writes.
- Scaler: Recommended for lower-traffic applications.
- Scaler Pro: Choose from multiple options on compute and memory. No additional charge for I/O.
- Enterprise: Custom pricing that is not publicly listed, with over 18 cluster sizes that extend Scaler Pro, and flexibility in the pricing method. Enterprise plans include horizontal sharding and can handle massive workloads.
Measure | Scaler | Scaler Pro |
---|---|---|
Monthly Price | $29 per database | $39-$999 based on cluster size |
Storage | 10 GB included $2.50 / additional GB | 10 GB included $1.50 / additional GB |
Row reads/month | 100 billion included $1 / additional billion | Unlimited |
Row writes/month | 50 million included $1.50 / additional million | Unlimited |
Availability zones | 1 | 3 |
Production branches | 2 | 1 included (Pay-as-you-go for additional branches) |
Development branches | 5 | 2 included (Pay-as-you-go for additional branches) |
Every production branch in the Scaler Pro plan corresponds to a database cluster. Clusters include two read replicas.
Scaler Pro | Monthly Price per cluster | vCPU | GB RAM |
---|---|---|---|
PS-10 | $39 | .125 | 1 |
PS-20 | $59 | .25 | 2 |
PS-40 | $99 | .5 | 4 |
PS-80 | $179 | 1 | 8 |
PS-160 | $349 | 2 | 16 |
PS-320 | $699 | 4 | 32 |
PS-400 | $999 | 8 | 32 |
Initial Observations on Aurora vs PlanetScale Pricing
- It is simple to choose which PlanetScale service matches your use case and predict the cost.
- Aurora has more options and is more customizable with various configurations and over 40 instance types to choose from.
- Certain Aurora use cases that utilize the Serverless or Standard plans can be relatively inexpensive. However, it is important to make sure they’re chosen and configured correctly to avoid unexpected high costs.
- PlanetScale databases come with default replication across three availability zones, resulting in triple the provisioned compute compared to the comparable Aurora database. As we’ll see in one of our scenarios, this can lead to high Aurora costs.
- Additional storage past the 10 GBs included with PlanetScale is charged at $1.50 per GB, which could add up to be costly. However, the cost is more comparable to Auroras when you factor in the included backup storage, binlogs, and bandwidth transferred to and from the database.
Additional Costs for Aurora and PlanetScale
Commonly used features that may incur additional costs are as follows:
Aurora Additional Costs
- RDS Proxy: Pools and shares database connections, enhancing scalability and enabling IAM usage.
- Read Replicas: Read replicas support read operations and are used to “offload read workloads from the primary DB instance.” AWS recommends creating one or more replicas for high-availability scenarios.
- Global Database Costs: Replicates data to secondary regions for globally distributed applications.
- Backup Storage: Option to add automated database backups and database cluster snapshots.
- Backtrack: Allows restoring of your database from a previous point in time.
- Data API: A HTTPS API for running SQL queries.
- Data Transfer: Charges occur for data transferred in/out.
PlanetScale Additional Costs
- Read-Only Regions: Add read-only regions for globally distributed applications.
- Single Sign-On (SSO): Option for company administrators to add additional security.
- User-Scheduled Backups: Additional backups beyond the ones automated.
Example Scenarios Aurora vs PlanetScale
Scenario 1: Education System
A district manages an online education system that houses crucial student information, including grades and records. The amount of storage and CPU needed is small; although is accessed and updated frequently, particularly during the end of the semester when grades are released. They’ll need 0.5 vCPUs, 4 GB RAM, 3 GB of storage, and 10 GB of backup storage.
We need to choose which Aurora configuration to compare with PlanetScale Scaler Pro PS-40. Aurora Serverless is an ideal choice over On-Demand in this scenario because of its ability to scale up and down and since On-Demand instances have a minimum size of 2 CPUs and 2 GB RAM.
Even more configuration decisions need to be made for Aurora Serverless—the choice between Standard and I/O Optimized instances. While I/O Optimized instances may be suitable for lower-traffic months, the potential for increased costs during traffic surges, such as when numerous students check their grades simultaneously, may lead to higher costs. In this case, high numbers of I/O operations lead to an estimate of $136 a month.
Seeking predictability in pricing, the education system opts for I/O Optimized instances at a steady cost of $117 per month (see calculations). In comparison, PlanetScale offers a flat rate of $99, encompassing I/O, storage, and backup storage, for 18% savings using PlanetScale.
Scenario 2: Distribution Center
A distribution center handles extensive amounts of data volumes, encompassing inventory, shipments, and retailer information. Data is accessed and updated frequently for actions such as checking stock availability and processing orders. They’re looking for a solution that scales effectively due to the dynamic nature of inventory data and supports the high transaction volumes.
To compare potential solutions, consider Aurora On-Demand I/O Optimized with the db.r7g.xlarge instance type and PlanetScale Scaler Pro PS-320. Both configurations feature 4 CPUs and 32 GB RAM. The distribution center stores 8 GB of data and an additional 20 GB of backup data.
Using AWS pricing calculator, we can estimate the monthly cost for Aurora to be $571. In contrast, PlanetScale pricing offers a fixed-rate pricing model at $699, encompassing I/O, storage, and backup storage, meaning Aurora delivers 22% savings.
Scenario 3: Global Distribution Center
The same distribution center grows and expands its reach to global operations. They now need to coordinate inventory, shipments, and data across multiple regions, introducing complexities related to accessibility and response times.
Often, businesses leverage read replicas to enhance performance and reduce latency. As we mentioned earlier, this is the recommended approach of AWS for high-availability scenarios. Aurora applies instance charges to both primary instances and replicas. In contrast, with PlanetScale, two read replicas are included in the pricing model.
Building off the previous scenario, the primary instance for Aurora is still $571. With read replicas, you are charged for the instance. As we saw in Scenario 2, Aurora is priced at $525 per instance, making the total cost $1621 when adding two read replicas. The PlanetScale cost remains the same, at $699, resulting in 132% savings using PlanetScale.
Conclusion
Aurora and PlanetScale both greatly elevate beyond the capabilities of MySQL, with high durability and scalability. Aurora stands out with its versatility and extensive customization options, allowing users to tailor configurations to diverse use cases. This flexibility, however, comes with a complexity in pricing structures that may require careful consideration.
PlanetScale excels in simplicity and predictability in pricing, making it an ideal choice for users who don’t want to navigate intricate configurations or incur unexpected costs. The inclusion of read replicas in PlanetScale’s pricing model adds value, particularly in high-availability scenarios, resulting in substantial cost savings.
Monitor your PlanetScale costs.