Guides / MongoDBAWS S3

Back up MongoDB to AWS S3.

AWS S3 is durable, cheap object storage with lifecycle rules for retention. Here are two ways to get your MongoDB data there — the manual command line, and a hands-off, encrypted, verified setup with xbackupman.

The manual way

Dump MongoDB to stdout, gzip it, and stream it straight to AWS S3 (no temp file):

mongodump --host HOST -d mydb --archive | gzip | aws s3 cp - s3://BUCKET/mongodb/backup-$(date +%F).sql.gz

This works, but it's the easy 20%. You still own the hard 80%: encryption, scheduling, retention, failure alerts, and proving the backup actually restores. Restore is the reverse: gunzip | mongorestore --archive.

The automated way

With xbackupman you connect your MongoDB database and your AWS S3 bucket once, pick a schedule, and it handles the rest — AES-256-GCM encryption before upload, SHA-256 verification, retention (including GFS), anomaly detection, and one-click restore. Your backups live in your own AWS S3; we just orchestrate.

  1. 1. Add your MongoDB connection (host, port 27017, credentials — encrypted at rest).
  2. 2. Add your AWS S3 bucket as a storage target.
  3. 3. Set a schedule and retention. Done — backups run and verify themselves.

FAQ

Is a plain MongoDB dump piped to AWS S3 encrypted?

No. A raw MongoDB dump uploaded to AWS S3 is stored as-is — anyone with bucket access can read it. xbackupman encrypts every backup with AES-256-GCM inside the worker before upload, so only ciphertext ever reaches AWS S3.

How do I know the backup will actually restore?

The manual command gives you no guarantee. xbackupman records a SHA-256 checksum and can re-download, decrypt and decompress the backup to prove it's restorable before you ever need it.

Can I schedule this and prune old copies automatically?

The command above is one-shot. xbackupman runs it on any cron schedule (down to minutes), applies simple or grandfather-father-son retention, and alerts you if a backup fails or looks anomalous.