Render raises $100M at a $1.5B valuation

Read the announcement

PostgreSQL S3 Backups

This repo can be used to deploy a Cron Job on Render to backup a PostgreSQL instance to Amazon S3.

Why deploy PostgreSQL S3 Backups on Render?

PostgreSQL S3 Backups is a cron job configuration for automating PostgreSQL database backups to Amazon S3 storage. It solves the problem of manual database backup management by scheduling automatic dumps of your PostgreSQL data to durable cloud storage, reducing the risk of data loss.

This template gives you a production-ready PostgreSQL backup pipeline to S3 with the cron schedule, pg_dump configuration, and AWS connectivity already wired together—no scripting required. Instead of manually configuring Alpine versions to match your Postgres version, setting up credentials, and debugging shell scripts, you get a working backup job in one click. Render's native Cron Jobs handle the scheduling infrastructure, so you're not managing a separate scheduler or worrying about missed runs.

Architecture

What you can build

After deploying, you'll have a scheduled cron job on Render that automatically backs up your PostgreSQL database to an S3 bucket at whatever interval you configure. This gives you offsite backups without needing to manage backup infrastructure or remember to run manual dumps.

Key features

  • Scheduled PostgreSQL Backups: Deploys as a Render Cron Job to automatically backup PostgreSQL databases on a configurable schedule.
  • S3 Storage Integration: Streams database backups directly to Amazon S3 for durable off-site storage.
  • Multi-Version PostgreSQL Support: Supports PostgreSQL versions 12 through 16 with corresponding Alpine Linux base images.
  • One-Click Render Deploy: Includes render.yaml blueprint for immediate deployment via Render's deploy button.

Use cases

  • Startup CTO schedules nightly database backups for disaster recovery compliance
  • Solo developer automates PostgreSQL snapshots before deploying risky migrations
  • Agency backs up client databases to S3 for long-term retention
  • DevOps engineer sets up cross-region backups for production database redundancy

Next steps

  1. Trigger the cron job manually from the Render dashboard — You should see a new backup file appear in your S3 bucket within a few minutes, named with the current timestamp
  2. Download the backup file from S3 and run pg_restore --list on it locally — You should see a table of contents listing your database tables and objects, confirming the backup is valid
  3. Configure a second S3 bucket or folder for retention testing and update the job's S3 path — You should see new backups appearing in the updated location on the next scheduled run

Resources

Stack

postgresql
s3

Tags

backup
disaster recovery
database
cron job