PlanetScale is a MySQL database platform built on top of Vitess, the popular open-source database management technology created at YouTube. Vitess enables horizontal sharding of MySQL abstracted from the application layer. It’s designed to improve database management and provide a performant, fault-tolerant database that can handle large workloads.
PlanetScale provides customers with the power of Vitess, offering a fully managed and performant MySQL database service with horizontal sharding, Git-like schema change workflows, automatic backup, recovery, advanced query analytics, and multi-region replication capabilities. PlanetScale can be deployed on multiple cloud platforms, including Amazon Web Services (AWS) and Google Cloud Platform (GCP).
Amazon Aurora is a cloud-native relational database service developed by Amazon Web Services (AWS). It provides a scalable and high-performance database solution compatible with MySQL and PostgreSQL database management systems. It offers several performance enhancements that improve the speed and reliability of these databases. It uses a distributed architecture that replicates data across multiple storage nodes, providing fast and reliable read and write access to your data. It offers multi-region replication features. As a fully managed database service, Amazon Aurora takes care of many of the tasks associated with traditional database management, such as provisioning, patching, backup, and recovery. It also integrates with other AWS services, making it easy to manage your databases and applications within the AWS ecosystem.
PlanetScale is MySQL-compatible and democratizes all of the data management and scalability features of Vitess. It's a highly scalable database platform with numerous tenancy and deployment options. Multi-tenant is the default tenancy for basic PlanetScale plans. Both multi-tenant and single-tenant deployments are available on PlanetScale Enterprise and Managed plans. PlanetScale Managed is a packaged data plane. It includes all compute, live data, and backups required to run the PlanetScale product inside of an AWS or GCP sub-account owned by the user.
Amazon Aurora supports both MySQL and PostgreSQL deployments. It only supports AWS cloud infrastructure and is intentionally hyper-compatible with AWS tooling. It supports both multi and single-tenant deployments. In comparison to Amazon RDS, which is Amazon’s other managed relational database offering, Aurora is more performant and designed for more intensive use cases.
MySQL (forked with MySQL feature improvements), Vitess
MySQL and PostgreSQL
|Tenancy and deployment|
Supports both multi and single-tenant deployment. Can also deploy PlanetScale in an AWS or GCP account owned by you (Managed)
Supports both multi and single-tenant deployment
Manually choose instance specifications with advanced support and services available to right-size resources. Supports autoscaling storage
Manually choose instance specifications available on Aurora. Supports autoscaling storage
The only commercially available platform built on OSS Vitess. Users of PlanetScale get the technology that scaled YouTube to billions of MAUs and supports the growth of Pinterest, NewRelic, Slack, and more without manually implementing and managing Vitess
Claims to be 5x faster than MySQL, but this is highly dependent on the configuration, and doesn't hold up after tuning MySQL: (1) Automatically scales and replicates storage in 10GB increments 6-ways across 3 AZs on the same underlying storage without impacting compute, (2) Self-healing architecture rebalances hot storage nodes and hardware failures, and (3) Near-instant crash recovery by applying redo logs to each segment on-demand, parallelled, and asynchronously
PlanetScale is the only MySQL database platform to support vector storage and search, supporting AI and ML use cases. Unlike the pgvector extension, this is a fork of and technical modification to the MySQL code base, exclusive to PlanetScale
Aurora implements the open source extension pgvector to enable vector and embedding storage and search in PostgreSQL only
PlanetScale and Amazon Aurora both approach database scale and performance in a different way. PlanetScale is built for high availability, performance, and scale. It’s able to handle bursts in traffic and heavy IOPS with ease, all while reducing the overhead associated with database management as a managed service. Amazon Aurora is AWS’s more performant managed relational database solution. This is due to Aurora’s approach to point-in-time-recovery (PITR), multi-availability zone (AZ) replication, and the usage of S3 as the unified underlying storage.
Both PlanetScale and Aurora can scale horizontally, but the method differs in both solutions. PlanetScale horizontally shards your data abstracted from the application-layer. This is often a more performant, reliable, and cost-conscious way to shard MySQL. With Aurora, users can horizontally scale read operations or add additional instances to distribute database operations to. Additionally, both PlanetScale and Aurora users can vertically scale up instance size and resources to meet increased demand.
When a new MySQL node is added in PlanetScale, load balancing is automatically implemented. The way that PlanetScale load balances is possible because of a few Vitess components called VTTablet and VTGate as well as PlanetScale’s edge infrastructure. VTGate is an application-level query routing layer while VTTablet behaves as a middleware between VTGate and MySQL. This facilitates the flow of connections from the application, to a load balancer, to VTGate, to VTTablet, and then finally to MySQL. The VTTablet will manage connection pooling and perform health checks for MySQL instances, updating its status in a topo-server. Meanwhile, VTGate determines available tablets and their roles via the topo server and reroutes traffic as needed. PlanetScale’s edge infrastructure then acts as a frontend load balancer, terminating MySQL connections in the closest edge location.
Every single PlanetScale database gets all of this underlying infrastructure to ensure the database remains available. Load balancers will distribute traffic between the production branch and replicas as well as balance connections, IOPS, and resource usage.
Aurora load balances and manages connections by splitting reads/writes and using connection pooling. Readers in the replica database cluster can accept writes and forward to the primary writer instance. To perform queries, users can use a reader endpoint to automatically load balance amongst all of their available Aurora read replicas. Additionally, Aurora maintains high availability by self-healing, rebalancing, maintaining write capability, and providing quick recovery from crashes and failures.
With technically unlimited connections, PlanetScale is equipped to handle high concurrency. PlanetScale offers connection pooling, which scales with your cluster and enables connection requests to queue. Aurora scales connections by splitting reads/writes and uses connection pooling as well.
Horizontal sharding available with no application-level changes required. PlanetScale will create an eloquent sharding scheme for Enterprise and Managed customers
Vertically scale up instance size. Horizontally scale read operations by using read replicas. Horizontally extend database operations to additional nodes
When a new MySQL node is created, another load balancer is automatically created for the user
Endpoints (host name and port) are used as an intermediate handler to reroute connections and load-balance
16,000 per cluster node in MySQL, 5,000 in PostgreSQL
Caching available with PlanetScale Boost, which is native to the PlanetScale platform and requires no configuration or cache invalidation
Integrated cache managed using the user’s database engine with built-in write-through abilities. No application level changes required to implement
PlanetScale costs are built for scale. With a generous free tier, it’s easy to evaluate PlanetScale. With the first paid tier starting at $29 per month with options for resource-based pricing, users can linearly grow their workload and infrastructure costs. PlanetScale Enterprise and Managed plans are completely custom and will cater to the user’s specific needs.
Amazon Aurora does not offer a default free plan. However, Amazon may run promotional offers with the AWS Free Tier that include free trials of Aurora. For users that experience high workload variability, Amazon Aurora offers Serverless V2. There are many ways to purchase Aurora, including paying-as-you-go, reserving resources, and opting into I/O Optimized. I/O Optimized is a pricing model available for customers with high Input/Output operations.
PlanetScale plans tend to be objectively cheaper on infrastructure than running on Amazon Aurora. This is because PlanetScale right-sizes resources on many commodity-grade AWS EC2 instances, or the equivalent on other cloud providers, which prevents over provisioning and keeps cost in-line with the user’s actual workload. Additionally, users get more infrastructure with PlanetScale, including the immense power of Vitess, and a database cluster that provides the same if not greater fault tolerance than other commercial solutions.
PlanetScale’s free tier (Hobby) is available up to: 5 GB storage, 1 billion row reads per month, 10 million row writes per month
No free plan. AWS Free Tier may offer promotional trials
Usage-based serverless pricing available with Scaler plan. Billed based on rows read and written by the database
Aurora Serverless V2 is an autoscaling configuration available in Aurora. Billed based on resources consumed
Resource-based pricing available on Scaler Pro, Enterprise, and Managed plans. Custom pricing and resources are available for more intensive workloads.Discounts are available and negotiable.
Pricing can be configured based on resource utilization, database storage, or I/O operations. I/O Optimized is a pricing model available for I/O intensive applications. Purchase resources on Aurora using On-Demand or Reserved instances: (1) On-demand - Pay for resource capacity per hour or (2) Reserved - Commit to specified resource capacity over a 1 to 3 year term
Both PlanetScale and Amazon Aurora are managed database systems that aim to reduce complex database administration tasks. PlanetScale and Aurora automate basic database operations and provide monitoring, logging, and auditing solutions.
PlanetScale provides users with production branches, which are highly available databases intended for production traffic. They are conceptually equivalent to the primary instance in other commercial databases. Production branches automatically failover to one of two default replicas to improve redundancy. The two replicas reduce the load on the primary branch, and enable users to scale read and write operations. Additional replicas and read-only regions are configurable. PlanetScale additionally offers built-in auditing and log retention, as well as integrations with popular third-party monitoring tools such as Datadog.
Aurora provides 15 replicas per primary instance in different availability zones. The system automatically scales and replicates storage in 10GB increments, distributing it 6-times across 3 availability zones on a single unified storage layer. It does this without affecting compute resources.
Aurora has a tight integration with other AWS services to help achieve a holistic monitoring solution, such as Database Activity Streams for cluster activity monitoring, and AWS CloudTrail for auditing logs. However, the choice of monitoring and logging tooling varies per organization. If you have other workloads such as web applications or data warehouses, you might want to consolidate these to a centralized monitoring platform, which both PlanetScale and Aurora can support.
PlanetScale Enterprise plan is customizable and can have as many replicas as needed. Otherwise, users get 2 replicas per production branch in different AZs by default
Up to 15 per primary instance in different AZs
Default daily backups every 24 hours. Free of charge. Scaler and Scaler Pro provide automated backups every 12 hours. All plans can custom configure backup frequency. Additional backups configured by the user are billed based on storage ($0.023 per GB per month). All backups are pre-tested and validated. No impact to the performance of your database while a backup is running
Three options for backups: (1) Automated backups daily with a user-defined backup window, (2) User-initiated DB snapshots using the console or a CreateDBSnapshot API call, and (3) Automated backups retained when a database cluster is deleted
Read-only regions available to be configured by the user within the UI, or by professional services. Users can choose what region to replicate to. Billed as standalone storage at an additional storage rate
Up to 15 read replicas from one database instance within the same region
PlanetScale is a fully managed service and takes care of all of the operational tasks for the user. Automatically handles version upgrades for you
Aurora is a managed service with serverless options to automatically scale resources. Aurora is a private fork of MySQL and historically has been slow to upgrade
Real-time query insights with PlanetScale Insights. Audit logs available. PlanetScale Connect allows users to extract data and load it into other destinations for analytics or ETL. Datadog and other integrations, including all of the AWS tooling Aurora is compatible with
Can use Amazon CloudWatch Logs, EventBridge, CloudTrail, and Database Activity Streams in Aurora
Enhanced email and ticketing support with upwards of 15-minute response-time SLAs
AWS provides standard support
Database change management processes vary by team. Changes performed on the database are complex, as you risk irreversible data corruption and consistency issues. PlanetScale and Amazon Aurora provide different methods to configure an environment to test these changes prior to pushing to production.
Additionally, with a Git-like workflow for change management and in combination with CI/CD tooling, PlanetScale makes it easy to build, test, and deploy database changes to production with minimal risk. Amazon Aurora does not provide native tooling for schema changes, and does not support online schema changes. Although this is not technically a schema change revert, Aurora Backtrack can be used to restore the database to a point-in-time (PIT) to recover from DDL operations that introduce a breaking change.
Use development branching to branch your primary or production database(s) schema and optionally, data, to make changes, experiment, and run CI on
Use blue/green deployments to spin up an isolated (green) instance to test changes without impacting your production (blue) environment. Sometimes requires downtime to switch to blue
|API and CLI|
API and CLI allows users to manage their database programmatically, including to create development branches, open deploy requests, and make non-blocking schema changes directly from your terminal
API and CLI enables users to automate database management tasks, like backtracking the database to a specific point in time, creating blue/green development environments, and more
|Online schema changes|
Fully online schema changes
Revert schema changes within 30-minutes of merging a migration. When changes merge, a ghost table is created and data is still synchronized as writes occur on the new production table. When reverted, the status of the two tables is flipped, bringing the former production table back into production. This means no downtime and no data loss between reverts
Aurora Backtrack will restore the database to a PIT to recover from unintentional DDL operations
Amazon Aurora is not the same as MySQL. MySQL is an open-source relational database management system (RDBMS). It is a database engine that is supported by services like Aurora, and allows you to manage data in a relational structure.
PlanetScale is a MySQL-compatible database platform. It's built on open-source Vitess, a middleware technology designed to scale and manage very large MySQL deployments. PlanetScale offers a managed database service that provides horizontal scaling of MySQL, multi-cloud deployments, and other features that enable high availability and make it easier to manage large-scale MySQL deployments. In addition to the improved tooling, scaling, and schema management offered, PlanetScale will soon introduce vector search and storage, which is not currently available in MySQL.
PlanetScale is a fully-managed MySQL-compatible database platform that supports the growth of organizations of all sizes. It’s the only solution built on open-source Vitess, the technology that scaled YouTube to billions of monthly active users. Every single database spun up on PlanetScale gets all of the power of Vitess without having to implement and maintain it yourself.
PlanetScale is cloud-agnostic and supports multiple cloud platforms. It tends to be more cost-effective than many solutions. This is because of the commodity-grade instance types that PlanetScale uses to optimally serve a user’s unique workload. If you are curious what this might look like for your organization, talk to PlanetScale’s Solutions team.
On top of improved scale and performance, PlanetScale is built with CI/CD and database change management in mind. This mitigates the risk associated with changes made on stateful workloads.
While “better” is subjective, as Aurora does not provide the scale, portability, or cost-effectiveness of Vitess, PlanetScale is oftentimes viewed as the superior platform.
PlanetScale is used by hyper-growth organizations like Attentive, MyFitnessPal, Barstool Sports, and many more. It’s built for high availability, performance, and massive scale. It’s the solution for high performing companies with intensive workloads, equally great for users just getting started with a MySQL database, and can effectively support the workloads of everything in between.
Vitess is the open-source middleware technology developed at YouTube in 2010. It is designed to horizontally shard MySQL abstracted from the application-layer, and generally improves the process of managing the database. As Vitess is open-source, organizations can implement and maintain it on their own. This is complex and requires a level of expertise about the technology that is sparse in the infrastructure world.
PlanetScale is the only solution that is built on Vitess and democratizes many of its features. Deploying a free PlanetScale database is the easiest way to deploy Vitess in the cloud. With a PlanetScale database, you can horizontally shard MySQL, obtain unlimited connections, perform online schema changes, revert schema changes, and much more.
Additionally, PlanetScale was co-founded by one of the creators of Vitess, Sugu Sougoumarane. The PlanetScale team is also one of the top contributors to Vitess, employing several of the Vitess maintainers.