# Amazon Aurora vs PlanetScale

Canonical: https://inetgeek.com/compare/amazon-aurora-vs-planetscale/

Every value below is read from Amazon Aurora's and PlanetScale's own documentation. See https://inetgeek.com/methodology/ for how.

## At a glance

| Criterion | Amazon Aurora | PlanetScale |
| --- | --- | --- |
| Free tier | Yes — capped Free plan plus time-limited credits | No |
| Pricing model | Pay per use with no plan fee: instances plus storage plus I/O, or ACU-hours in serverless mode. AWS's own worked example prices serverless compute at $0.12 per ACU-hour on Aurora Standard and $0.156 on Aurora I/O-Optimized in US East (N. Virginia) — the difference being whether I/O is metered separately or folded into a higher compute and storage rate. Provisioned instances also offer Reserved Instance pricing, and usage may qualify for Database Savings Plans against a committed hourly spend. | Priced by node size and storage rather than usage, with high-availability clusters sold as a primary plus two replicas |
| Regions | 34 AWS regions, the same list for the MySQL- and PostgreSQL-compatible editions. Counted from the two availability tables in Aurora's own docs, which publish the regions and no total. | 19 regions — 12 on AWS (Tokyo, Mumbai, Singapore, Sydney, Montreal, Frankfurt, Dublin, London, São Paulo, N. Virginia, Ohio, Oregon) and 7 on GCP. A branch's region is fixed at creation and changing it means migrating. |
| Engine | MySQL- and PostgreSQL-compatible. Aurora is AWS's own engine rather than a hosted build of either, so compatibility is the claim being made — existing code, tools and applications are stated to work, which is not the same as being the upstream database. | PostgreSQL, and MySQL-compatible Vitess clusters with horizontal sharding |
| Database branching | Limited — clones, not a branch workflow | Supported |
| Point-in-time recovery | Any point inside the backup retention period, so up to 35 days. Aurora's backups are continuous and incremental against the cluster volume rather than periodic snapshots plus log replay, which is why AWS states no performance impact while they are taken. | Point-in-time recovery through write-ahead log archiving. WAL is kept for as long as the oldest backup, so the default schedule gives a 2-day window and a longer retention extends it. |
| Read replicas | Supported — 15 per cluster, a quota AWS will not raise | Supported |
| Backup retention | 1 to 35 days. Unlike an RDS DB instance it cannot be set to 0 — Aurora backs the cluster volume up continuously and there is no way to turn that off. | Automatic backups every 12 hours on production and development branches, retained 2 days by default. Custom schedules and manual backups can set a longer period, and are charged for it. |
| HIPAA | Listed as a HIPAA-eligible service on AWS's own reference page. | HIPAA-eligible via a Business Associate Agreement for qualifying customers; PlanetScale notes HHS does not recognize a formal HIPAA certification, so compliance is a shared responsibility rather than a badge. |
| GDPR / data residency | AWS customers can process personal data on all AWS services in compliance with GDPR, and choose the storage type and geographic region for their data. | Complies with GDPR; data locality follows the AWS/GCP region a database is created in, and EU-region databases keep data in-region unless a read-only replica is added elsewhere. |

## Where they differ

### Free tier

- Amazon Aurora: Yes — capped Free plan plus time-limited credits ([source](https://aws.amazon.com/rds/aurora/pricing/))
- PlanetScale: No ([source](https://planetscale.com/pricing.md))

### Pricing model

- Amazon Aurora: Pay per use with no plan fee: instances plus storage plus I/O, or ACU-hours in serverless mode. AWS's own worked example prices serverless compute at $0.12 per ACU-hour on Aurora Standard and $0.156 on Aurora I/O-Optimized in US East (N. Virginia) — the difference being whether I/O is metered separately or folded into a higher compute and storage rate. Provisioned instances also offer Reserved Instance pricing, and usage may qualify for Database Savings Plans against a committed hourly spend. ([source](https://aws.amazon.com/rds/aurora/pricing/))
- PlanetScale: Priced by node size and storage rather than usage, with high-availability clusters sold as a primary plus two replicas ([source](https://planetscale.com/pricing))

### Regions

- Amazon Aurora: 34 AWS regions, the same list for the MySQL- and PostgreSQL-compatible editions. Counted from the two availability tables in Aurora's own docs, which publish the regions and no total. ([source](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.RegionsAndAvailabilityZones.html))
- PlanetScale: 19 regions — 12 on AWS (Tokyo, Mumbai, Singapore, Sydney, Montreal, Frankfurt, Dublin, London, São Paulo, N. Virginia, Ohio, Oregon) and 7 on GCP. A branch's region is fixed at creation and changing it means migrating. ([source](https://planetscale.com/docs/plans/regions))

### Engine

- Amazon Aurora: MySQL- and PostgreSQL-compatible. Aurora is AWS's own engine rather than a hosted build of either, so compatibility is the claim being made — existing code, tools and applications are stated to work, which is not the same as being the upstream database. ([source](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html))
- PlanetScale: PostgreSQL, and MySQL-compatible Vitess clusters with horizontal sharding ([source](https://planetscale.com/pricing))

### Database branching

- Amazon Aurora: Limited — clones, not a branch workflow ([source](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Clone.html))
- PlanetScale: Supported ([source](https://planetscale.com/docs/postgres/branching))

### Point-in-time recovery

- Amazon Aurora: Any point inside the backup retention period, so up to 35 days. Aurora's backups are continuous and incremental against the cluster volume rather than periodic snapshots plus log replay, which is why AWS states no performance impact while they are taken. ([source](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html))
- PlanetScale: Point-in-time recovery through write-ahead log archiving. WAL is kept for as long as the oldest backup, so the default schedule gives a 2-day window and a longer retention extends it. ([source](https://planetscale.com/docs/postgres/backups))

### Backup retention

- Amazon Aurora: 1 to 35 days. Unlike an RDS DB instance it cannot be set to 0 — Aurora backs the cluster volume up continuously and there is no way to turn that off. ([source](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html))
- PlanetScale: Automatic backups every 12 hours on production and development branches, retained 2 days by default. Custom schedules and manual backups can set a longer period, and are charged for it. ([source](https://planetscale.com/docs/postgres/backups))

### HIPAA

- Amazon Aurora: Listed as a HIPAA-eligible service on AWS's own reference page. ([source](https://aws.amazon.com/compliance/hipaa-eligible-services-reference/))
- PlanetScale: HIPAA-eligible via a Business Associate Agreement for qualifying customers; PlanetScale notes HHS does not recognize a formal HIPAA certification, so compliance is a shared responsibility rather than a badge. ([source](https://planetscale.com/docs/security))

### GDPR / data residency

- Amazon Aurora: AWS customers can process personal data on all AWS services in compliance with GDPR, and choose the storage type and geographic region for their data. ([source](https://aws.amazon.com/compliance/gdpr-center/))
- PlanetScale: Complies with GDPR; data locality follows the AWS/GCP region a database is created in, and EU-region databases keep data in-region unless a read-only replica is added elsewhere. ([source](https://planetscale.com/docs/security))

## Which should you choose?

Pick Amazon Aurora if Teams on AWS who want a Postgres or MySQL cluster that can throw off a copy-on-write clone of production in minutes, keep up to fifteen readers behind it, and pause to nothing between bursts in serverless mode.

Pick PlanetScale if Production workloads that want replicas across availability zones as the default shape rather than an upgrade, and teams who need MySQL-compatible sharding that the Postgres-only services do not offer.

Consider something else: Amazon Aurora — You want the upstream database rather than a compatible one, or a branch workflow rather than a clone. AWS documents cloning as a way to build a test environment, not as something you do per pull request.

Consider something else: PlanetScale — You are prototyping. Pricing starts at a node rather than at zero, and there is no free tier documented on the pricing page.

## Documented by only one

- Entry paid plan: PlanetScale: $5/month for a single-node Postgres database on network-attached storage; PlanetScale Metal with local NVMe starts at $50/month
- Egress over allowance: PlanetScale: 100 GB of egress included, then $0.06/GB
- Storage (entry plan): PlanetScale: First 10 GB free on network-attached storage, then per-GB pricing; storage is included for Metal databases
- Managed connection pooling: PlanetScale: Supported
- Scales to zero: Amazon Aurora: Supported — serverless capacity mode only
- Rewind in place: Amazon Aurora: Limited — Aurora MySQL edition only
- SOC 2: PlanetScale: SOC 1 Type 2 and SOC 2 Type 2 + HIPAA reports, available on all plans on request via PlanetScale's Trust Center.
- ISO 27001: Amazon Aurora: Covered under AWS's account-wide ISO/IEC 27001:2022 certification — not scoped per-service the way SOC, HIPAA and PCI DSS are on AWS's own site.
- PCI DSS: PlanetScale: PlanetScale Managed — the single-tenant product deployed into the customer's own AWS/GCP account — holds a PCI DSS 4.0 Attestation of Compliance as a Level 1 Service Provider. Not documented for the shared multi-tenant product.
- Encryption at rest: PlanetScale: AES encryption at rest on the storage media serving database branches and backups.
- Private networking / VPC: PlanetScale: AWS PrivateLink or GCP Private Service Connect on all plans; PlanetScale Managed on AWS additionally offers fully private network isolation.
- Dedicated infrastructure: PlanetScale: Two single-tenant options: Enterprise single-tenant, deployed into an AWS/GCP account owned by PlanetScale, or PlanetScale Managed, deployed inside the customer's own AWS or GCP account.

## Questions this comparison answers

**Free tier: Amazon Aurora or PlanetScale?**

Amazon Aurora: Yes — capped Free plan plus time-limited credits
PlanetScale: No

**Should I choose Amazon Aurora or PlanetScale?**

Pick Amazon Aurora if Teams on AWS who want a Postgres or MySQL cluster that can throw off a copy-on-write clone of production in minutes, keep up to fifteen readers behind it, and pause to nothing between bursts in serverless mode.
Pick PlanetScale if Production workloads that want replicas across availability zones as the default shape rather than an upgrade, and teams who need MySQL-compatible sharding that the Postgres-only services do not offer.
