RDSPostgreSQLArchitectureAWSDatabases

RDS vs Self-Managed PostgreSQL: When to Use Each

MakFam Solutions 4 min read

RDS vs Self-Managed PostgreSQL: When to Use Each

The managed services debate never dies. RDS is more expensive than running PostgreSQL on EC2, but “just use RDS” ignores real trade-offs. Here’s a framework for making the right call.

The Core Trade-off

Running any database involves these operational tasks:

  • OS patching and updates
  • PostgreSQL version upgrades
  • Backup creation and verification
  • Point-in-time recovery testing
  • Replication setup and monitoring
  • High availability failover configuration
  • Storage management and scaling
  • Performance monitoring and tuning

Self-managed: You own all of this. Full control, full responsibility.

RDS: AWS handles most of it. You pay a premium for that — typically 30-50% more than equivalent EC2 compute.

The question isn’t “which is cheaper?” It’s “is your team’s time worth more than the price premium?”

When to Use RDS

You Don’t Have a Dedicated DBA

If your “DBA” is a developer who also writes features, uses RDS. The automation AWS provides — automated backups, Multi-AZ failover, minor version patching — prevents the class of incidents that happen when database maintenance is no one’s real job.

You Need PITR and Can’t Build It Yourself

Point-in-time recovery to any second in the last 35 days is table stakes for production databases. RDS gives you this automatically. Building an equivalent system with WAL archiving to S3 is doable but not trivial.

You’re Running Multi-AZ

RDS Multi-AZ provides synchronous replication with automatic failover in 60-120 seconds. Building this with Patroni and a custom load balancer on EC2 takes weeks and requires ongoing maintenance.

For most teams: the Multi-AZ setup alone justifies RDS pricing.

Your Database is Under 10TB

Above ~10TB, the RDS pricing premium becomes significant. Below that, the operational savings typically exceed the cost difference.

You Want Aurora

Aurora is RDS on steroids: 5x the write throughput of standard MySQL, distributed storage that auto-scales to 128TB, and Aurora Serverless v2 for spiky workloads. It’s only available as a managed service, so if you want it, RDS is your only option.

When to Self-Manage

You Need Database Versions RDS Doesn’t Support

RDS typically trails the latest PostgreSQL release by a few months. If you need Postgres 17 features immediately, self-managed is your only option.

You Have Unusual Performance Requirements

RDS storage is EBS — good, but not the best. For extremely I/O-intensive workloads, instance-attached NVMe SSDs on EC2 provide lower latency than EBS gp3.

You Have Specific Extensions Not Available in RDS

RDS restricts some PostgreSQL extensions for security reasons. If you need pg_cron at the system level, PostGIS with custom builds, or other restricted extensions, self-managed gives you full control.

Your Database is Very Large

Above 10-15TB with high transaction rates, the RDS pricing premium becomes material:

SetupMonthly Cost (example)
db.r6g.2xlarge RDS Multi-AZ$1,200
r6g.2xlarge EC2 + Patroni + EBS$750
Difference$450/month

At scale, $5,400/year can fund a significant amount of DBA time.

The In-Between: RDS Proxy and Parameter Groups

Before going fully self-managed, consider:

RDS Proxy: Eliminates connection pool exhaustion issues without moving to self-managed. Pays for itself in reduced Lambda-to-RDS connection limits.

Custom Parameter Groups: RDS supports most PostgreSQL configuration parameters. work_mem, shared_buffers, max_connections, wal_level — you have more control than people realize.

Read Replicas: RDS read replicas are trivially easy to create and cover most read-scaling needs.

Our Recommendation Framework

Does your team have a dedicated DBA?
├── No → Use RDS
└── Yes → Continue...

Do you need Multi-AZ HA?
├── Yes → Strong lean toward RDS
└── No → Continue...

Database size > 10TB?
├── No → Use RDS
└── Yes → Calculate cost premium...

Cost premium > team time cost?
├── No → Use RDS
└── Yes → Self-managed worth evaluating

For 90% of startups and mid-size companies: use RDS. The operational simplicity is worth the price premium, especially when you factor in the true cost of an incident at 3am.

For large databases (10TB+) or teams with dedicated DBAs who have specific requirements: self-managed PostgreSQL on EC2 with proper tooling (Patroni, pgBackRest, pgBadger) is entirely reasonable.

Practical Cost Comparison

For a typical production setup (2 vCPU, 8GB RAM, Multi-AZ):

RDSSelf-Managed EC2
Compute$200/mo (db.m6g.large Multi-AZ)$90/mo (m6g.large x2)
Storage (500GB)$115/mo (gp3)$50/mo (gp3)
Backups (500GB)$25/mo$25/mo (your S3)
MonitoringIncluded$15/mo (CloudWatch)
Total$340/mo$180/mo

That’s $1,920/year difference. Ask yourself: do you have 40 hours/year to spend on database operations? If not, RDS is cheaper when you account for your time.


Not sure which setup is right for your workload? Let’s talk — database architecture is one of our specialties.

J

MakFam Solutions

Cloud infrastructure and AI consultant with 6+ years of AWS expertise. Helping small and medium businesses build scalable, secure cloud systems.