# Amazon RDS vs PlanetScale

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

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

## At a glance

| Criterion | Amazon RDS | PlanetScale |
| --- | --- | --- |
| Managed connection pooling | Supported | Supported |
| Engine | PostgreSQL, alongside MySQL, MariaDB, Oracle, SQL Server and Db2. Each engine is a separate RDS product with its own version list and its own feature support, so a capability documented for one is not a capability of RDS as a whole. | PostgreSQL, and MySQL-compatible Vitess clusters with horizontal sharding |
| Point-in-time recovery | Any point inside the configured backup retention period, so up to 35 days. Transaction logs are uploaded to S3 every five minutes, which is what bounds how close to now the latest restorable time can be. | 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 primary, raisable on request | Supported |
| Backup retention | Between 0 and 35 days, set per DB instance; 0 disables automated backups entirely. The default depends on how the instance was created — one day via the API or CLI, seven days via the console — so there is no single default to quote. Multi-AZ DB clusters cannot be set below 1 day. | 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. |
| SOC 2 | Listed as SOC-compliant on AWS's own compliance scope page. | SOC 1 Type 2 and SOC 2 Type 2 + HIPAA reports, available on all plans on request via PlanetScale's Trust Center. |
| 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. |
| PCI DSS | Listed as PCI DSS-compliant on AWS's own compliance scope page. | 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. |

## Where they differ

### Engine

- Amazon RDS: PostgreSQL, alongside MySQL, MariaDB, Oracle, SQL Server and Db2. Each engine is a separate RDS product with its own version list and its own feature support, so a capability documented for one is not a capability of RDS as a whole. ([source](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html))
- PlanetScale: PostgreSQL, and MySQL-compatible Vitess clusters with horizontal sharding ([source](https://planetscale.com/pricing))

### Point-in-time recovery

- Amazon RDS: Any point inside the configured backup retention period, so up to 35 days. Transaction logs are uploaded to S3 every five minutes, which is what bounds how close to now the latest restorable time can be. ([source](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIT.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 RDS: Between 0 and 35 days, set per DB instance; 0 disables automated backups entirely. The default depends on how the instance was created — one day via the API or CLI, seven days via the console — so there is no single default to quote. Multi-AZ DB clusters cannot be set below 1 day. ([source](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.BackupRetention.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))

### SOC 2

- Amazon RDS: Listed as SOC-compliant on AWS's own compliance scope page. ([source](https://aws.amazon.com/compliance/services-in-scope/SOC/))
- PlanetScale: SOC 1 Type 2 and SOC 2 Type 2 + HIPAA reports, available on all plans on request via PlanetScale's Trust Center. ([source](https://planetscale.com/docs/security))

### HIPAA

- Amazon RDS: 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 RDS: 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))

### PCI DSS

- Amazon RDS: Listed as PCI DSS-compliant on AWS's own compliance scope page. ([source](https://aws.amazon.com/compliance/services-in-scope/PCI/))
- 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. ([source](https://planetscale.com/docs/security))

## Which should you choose?

Pick Amazon RDS if Teams already inside AWS, where the database sitting in the same VPC as everything else is worth more than any single feature on this page. Six engines, up to 35 days of point-in-time recovery, and read replicas you create and delete yourself.

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 RDS — You want a database per pull request. RDS documents no branching, and replicas are manual — AWS states outright that it does not autoscale them.

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

- Free tier: PlanetScale: No
- 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
- Pricing model: PlanetScale: Priced by node size and storage rather than usage, with high-availability clusters sold as a primary plus two replicas
- 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
- Regions: 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.
- Connection limit: Amazon RDS: Not a fixed number: RDS for PostgreSQL sets max_connections by formula from the instance's memory — LEAST({DBInstanceClassMemory/9531392}, 5000) — so a bigger instance class gets more connections and the ceiling is 5,000 however large it is. The parameter can be set by hand anywhere from 6 to 262,143, which is a limit on what you may configure rather than what an instance will serve. Other engines use different divisors: MySQL is memory/12582880 with no cap.
- Database branching: PlanetScale: Supported
- ISO 27001: Amazon RDS: 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.
- 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

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

Pick Amazon RDS if Teams already inside AWS, where the database sitting in the same VPC as everything else is worth more than any single feature on this page. Six engines, up to 35 days of point-in-time recovery, and read replicas you create and delete yourself.
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.
