Comparison

Backup Data vs AWS Backup: which fits your stack?

An honest comparison of Backup Data and AWS Backup: portability, encryption models, pricing, restore verification, and when each one is the right call.

7 min readBackup Data

The short version: these are different tools that overlap on one job.

  • AWS Backup is a control plane for snapshotting AWS resources (RDS, EBS, EFS, DynamoDB, S3) inside AWS, managed through IAM and backup plans. If your entire estate is AWS and stays AWS, it's the native choice.
  • Backup Data is backup infrastructure for your data, wherever it runs: self-hosted Postgres, a VPS, docker-compose on a bare-metal box, CI, or AWS itself. Dumps become encrypted, deduplicated, portable snapshots you can restore anywhere, driven by a Go/JS SDK instead of a console.

The decision rule: the more your infrastructure is "pure AWS managed services," the better AWS Backup fits. The more it's self-hosted, multi-cloud, or something you might ever move, the better BaaS fits. Most startups are somewhere in the middle, and many end up using both (more on that below).

Head to head

Backup DataAWS Backup
What it backs upAny files/dumps you can produce: Postgres, MySQL, MongoDB, SQLite, DynamoDB exports, S3, filesystems, model weightsAWS resources: RDS, Aurora, EBS, EC2, EFS, FSx, DynamoDB, S3, and more
Works outside AWSYes, anywhere your code runsNo (on-prem only via Storage Gateway/VMware integrations)
Backup typeLogical (dumps + files): restore to any host, any provider, even a laptopResource-level snapshots: restore to another AWS resource
EncryptionClient-side AES-256-GCM; you hold the keyfile, server stores only ciphertextServer-side via AWS KMS; keys live in AWS
Dedupe & compressionContent-addressed chunking (FastCDC) + Zstd: incremental uploads, up to ~80% smaller retained storageIncremental snapshots for most resource types; no cross-source dedupe
RetentionpruneSnapshots with dry-run; GFS-style policiesLifecycle rules in backup plans (warm → cold → delete)
Restore verificationChecksum-verified on every restore; restore-drill pattern built into the SDK workflowRestore testing plans (separate feature, per-test charges)
InterfaceSDK-first (Go / JS), portal for humansConsole, IAM policies, backup plans, CLI/CloudFormation
Pricing modelFlat tiers: 5 GB free, $12/500 GB, $20/1 TB, $49/2.5 TBPer-GB-month, varies by resource type, plus restore and cross-region transfer fees
Getting your data outRestore anywhere; no egress penalty from BaaS tiersStandard AWS egress applies when data leaves AWS
Compliance postureSOC 2 Type I in progressMature: SOC, PCI, HIPAA-eligible, FedRAMP, Backup Audit Manager
Free tier5 GB, no cardNo service free tier (RDS automated backups are free up to DB size)

The four differences that actually matter

1. Portability: logical dumps vs resource snapshots

An AWS Backup recovery point of an RDS instance restores to… another RDS instance. That's exactly right until the day it isn't: reproducing a bug locally, seeding a staging box on another provider, an acquirer's due-diligence request, or an actual migration.

BaaS snapshots are your pg_dump (or mysqldump, mongodump, model checkpoint, any files), stored encrypted and chunked. client.restore() reassembles them on whatever machine runs your code. The backup is an exit door, not another room in the same building.

2. Who holds the keys

AWS Backup encrypts with KMS. Solid, but the keys and the ciphertext live with the same vendor, and a compromised or subpoenaed account is a single point of exposure.

BaaS encryption is client-side: data is AES-256-GCM encrypted on your machine before upload, and you hold a passphrase-protected keyfile. Backup Data stores ciphertext it cannot read. The flip side is real responsibility: lose the keyfile and passphrase, and no support ticket can recover the data. For teams with "customer-managed keys" in their security policy, this is the difference between claiming it and meaning it.

3. The bill

AWS Backup pricing is per-GB-month and varies by resource. RDS backup storage beyond the free allocation runs roughly $0.095/GB-month as of this writing, so a terabyte of retained backups is in the neighborhood of $95/month before restore fees and cross-region copy charges. Costs also compound quietly: every retained snapshot tier, every cross-region copy, every restore test bills separately.

BaaS is a flat tier: $20/month for 1 TB (Pro), and dedupe means "1 TB of retained snapshots" holds far more than 1 TB of nightly dumps. Near-identical nightlies mostly share chunks, so 30 retained copies of a slowly-changing database cost a fraction of 30× the dump size.

The honest caveat in the other direction: RDS automated backups are free up to your provisioned DB size. If daily snapshots with ≤35-day retention inside AWS is all you need, AWS is hard to beat on price. You start paying (and BaaS starts winning) when you keep longer histories, back up self-hosted databases, or want copies outside AWS.

4. Developer workflow

AWS Backup is operated through backup plans, vault policies, and IAM: infrastructure configuration, natural if you live in Terraform/CloudFormation.

BaaS is a function call:

const snapshot = await client.backup(["./db-dumps"], {
  description: "nightly database backup",
  tags: { env: "prod", db: "app_db" },
});

It runs in cron, CI, a container entrypoint, anywhere. Backup logic lives in your repo next to the code it protects, and the restore drill is a script you can actually schedule, not a console workflow.

When AWS Backup is the right call

Being straight about this: pick AWS Backup if…

  • Everything is AWS managed services and you have no multi-cloud or exit plans. Native snapshots of RDS/EBS/EFS with zero data movement are efficient and operationally boring (the good kind).
  • You need mature compliance artifacts today: FedRAMP, HIPAA eligibility, Backup Audit Manager reports for auditors.
  • You need point-in-time recovery to the minute on RDS. Continuous PITR within the retention window is something logical dumps don't give you; dumps recover to dump time.
  • Your backup policy is owned by a platform team in Terraform, not by the app developers.

When Backup Data is the right call

  • Anything self-hosted: Postgres in docker-compose, databases on VPSes or bare metal. AWS Backup can't see them; a pg_dump + client.backup() covers them in minutes.
  • You want backups outside your primary cloud, the "1" in 3-2-1. Provider-independent copies protect against account compromise, billing lockout, and region-wide incidents.
  • Customer-held encryption keys are a requirement, not a nice-to-have.
  • Long retention on a budget: dedupe + flat tiers beat per-GB-month resource pricing as histories grow.
  • Developers own backups and want them in code, tested by a restore drill in CI, not in console configuration.
  • AI/ML artifacts: model weights and checkpoints are exactly the large, slowly-mutating files content-addressed chunking is built for.

Or: use both (the 3-2-1 answer)

For AWS-hosted production databases, the strongest setup isn't either/or:

  1. AWS Backup / RDS automated snapshots for fast, native, short-retention recovery and PITR.
  2. A nightly pg_dump → BaaS for the encrypted, portable, long-retention copy that lives outside AWS and restores anywhere.

That's three copies, two systems, one off-site, with the off-site copy encrypted under keys AWS never sees. The Postgres tutorial is the exact recipe for leg 2, and it fits in a 20-line cron script.

FAQ

Can Backup Data back up RDS? Yes, logically. Run pg_dump/mysqldump against the RDS endpoint from any machine with network access (an EC2 box, CI, a bastion) and upload the dump. You get a portable copy of the data, not an RDS-native snapshot.

Does BaaS have PITR like RDS? No. Snapshots are point-in-time at dump time; your RPO is your dump frequency. Teams needing minute-level PITR should keep RDS automated backups for that window and use BaaS for portable long-term retention.

What happens if I lose my encryption keyfile? The data is unrecoverable, by design. Client-side encryption means Backup Data never has your keys. Treat the keyfile like a root credential: store it in your secrets manager with the passphrase stored separately.

Is my data stored on AWS anyway? Backup data is stored on Backup Data's storage network for long-term retention, independent of your AWS account. A compromise or closure of your AWS account doesn't touch it.

How fast can I start? The free workspace is 5 GB with no card. Dump, npm install @lighthouse-web3/baas-js-sdk, one client.backup() call: first verified snapshot in about 10 minutes via the quickstart.


Try the free tier: backupdata.io offers 5 GB, no card, SDK quickstart in the docs.

Start with the free tier

5 GB free, no card required. Point your existing dump at Backup Data and get to a first verified snapshot in about ten minutes.

Start backing upRead the quickstart

Keep reading

Comparison · 8 minBackup Data vs Backblaze B2: a backup system or a cheap bucket?Comparison · 7 minBackup Data vs restic: managed service or self-run tool?Guide · 6 minBack up model checkpoints before your spot instance disappears