Bye Bye RDS: The Ultimate Guide to Managed PostgreSQL on Proxmox
RDS is convenient – but it's also the biggest adhesive in AWS lock-in. Not because PostgreSQL "can't work differently", but because many teams are afraid of losing central capabilities after an exit: failover, backups, PITR, monitoring, maintenance.
The truth: You can cleanly replace RDS – with a PostgreSQL setup on Proxmox that's technically mature, economically predictable, and still delivers cloud comfort. And that's exactly where Service Replacement comes in.
The best part: You don't have to build and operate this yourself. At OutaCloud, we set up and manage your PostgreSQL HA cluster – for a fraction of what you'd pay AWS for RDS. Same reliability, no lock-in, predictable costs.
Table of Contents
- 1) What You're Really Buying with RDS (and Why It Gets Expensive)
- 2) Cost Comparison: RDS db.m5.4xlarge vs. Hetzner AX-Line (The Fair RAM Comparison)
- 3) Two Proven Paths to PostgreSQL-HA on Proxmox
- 4) Backups & Recovery: How to Get RDS-PITR Without RDS
- 5) Monitoring Without CloudWatch Tax: Grafana + Prometheus + Loki (Really Complete)
- 6) Migration from RDS to Proxmox: How to Get Out Without Data Loss
- 7) Conclusion: RDS Is Replaceable – If You Build It Right
- Ready to Migrate Your RDS?
1) What You're Really Buying with RDS (and Why It Gets Expensive)
With RDS, you're not just paying for "a database". The monthly costs consist of DB instance hours, storage, I/O, backup storage, and data transfer. It's precisely these "small" items that later cause unpredictable bills – especially as traffic and data volume grow.
The leverage in an exit is therefore not just "cheaper compute", but: simplifying the cost structure, removing "metered billing", defusing egress/request tax, while not losing features like HA + recovery.
2) Cost Comparison: RDS db.m5.4xlarge vs. Hetzner AX-Line (The Fair RAM Comparison)
To compare apples to apples, let's look at instances with 64 GB RAM.
At AWS, that's the RDS db.m5.4xlarge (16 vCPU / 64 GB RAM). In Frankfurt (eu-central-1), the on-demand price is around €1,063/month (Single-AZ). Mind you: just for the instance. Without storage, without traffic, without Multi-AZ.
On the other side, our target system: Hetzner AX42 (8 cores / 64 GB DDR5 ECC RAM / 2x NVMe). Price: starting from €46/month.
The math is shocking:
- AWS: ~€1,063/month
- Hetzner: ~€46/month
- Difference: Over €1,000 savings – every month, per database server.
Even if we set up three Hetzner servers for absolute high availability (primary + 2 standbys), we're looking at hardware costs of ~€140/month. That's still 85% cheaper than a single AWS instance.
3) Two Proven Paths to PostgreSQL-HA on Proxmox
There are two setups we prefer in practice depending on team DNA and operating model. Both work reliably on Proxmox – the decision isn't "right/wrong", but "fits your stack".
Option A: Patroni Cluster (Classic, Flexible, Infrastructure-Close)
Patroni is an established approach for HA PostgreSQL with automatic failover and leader election via a distributed config store (e.g., etcd/Consul/ZooKeeper). This is particularly strong when you prefer running PostgreSQL "classically" in VMs or close to the system and Kubernetes isn't your operational center.
In practice this means: You run 3 DB nodes (1 primary, 2 replicas), a small quorum/config backend, and put clean routing in front (e.g., VIP/Proxy). Failover isn't "manual at 3 AM", but automated and controllable.
Option B: CloudNativePG (Kubernetes-Native, Very Cleanly Automatable)
If your operations are already Kubernetes-centric (or you're deliberately heading there), CloudNativePG is an extremely strong solution: Kubernetes operator for PostgreSQL clusters, HA management, lifecycle automation, backup/DR mechanisms. Streaming replication is standard, synchronous replication is controllable up to "zero data loss replicas" – if you design it that way.
On Proxmox this typically runs as: K8s cluster on Proxmox VMs + CloudNativePG for Postgres. You get a very declarative, repeatable operational logic.
4) Backups & Recovery: How to Get RDS-PITR Without RDS
The most common fear when exiting RDS is "Point-in-Time Recovery". And here's the important, honest point:
PITR is a PostgreSQL feature – not an AWS feature. PostgreSQL PITR is based on base backups + continuously archived WAL segments, so you can rewind to a point in time/LSN (e.g., "before the DROP TABLE").
Our Practical Model: Two Layers Instead of Marketing
So that recovery isn't just "theoretically possible" but operationally stress-free, we separate two layers:
Layer 1: Database PITR (PostgreSQL-Native) You use backup tooling like pgBackRest/WAL archiving and ensure that base backups + WAL archives are complete. This gives you real PITR behavior.
Layer 2: Infrastructure Backups (Proxmox Backup Server) PBS is then your safety net for the entire VM/container environment: incremental, deduplicated, quickly restorable – ideal for "we need to restore the node exactly as it was yesterday at 02:00" or disaster recovery scenarios.
The result in practice is better than "just RDS": PITR for data plus fast infra restores, without being pushed into proprietary AWS mechanisms with every restore.
5) Monitoring Without CloudWatch Tax: Grafana + Prometheus + Loki (Really Complete)
RDS teams often underestimate how much observability they pay for in AWS: metric ingest, logs, alarms, dashboards, "just a bit more retention".
Our standard approach on Proxmox is a full observability stack: Prometheus for metrics, Grafana for dashboards/alerting, Loki for logs. For PostgreSQL specifically: query/connection load, replication lag, locks, autovacuum health, disk/IO pressure, error patterns – and alerts that don't just fire when the app is already burning.
This isn't "cheaper CloudWatch", but: better visibility, without metered billing.
6) Migration from RDS to Proxmox: How to Get Out Without Data Loss
"Without data loss" isn't a claim, it's a process.
The core is always: You build the target cleanly in parallel, replicate/synchronize, test, and then cut over in a controlled manner.
In implementation, the method depends on size and downtime tolerance: For smaller databases, dump/restore plus a short maintenance cut often suffices. For production systems with stricter requirements, you work with replication/sync strategies to minimize downtime.
What's decisive: Extensions/parameter tuning, connection pooling, backup/restore tests, failover drills, and a cutover window that you actually control.
7) Conclusion: RDS Is Replaceable – If You Build It Right
RDS isn't a "magical managed service", it's PostgreSQL with packaging. And precisely because of that, you can replace it: With Proxmox as a platform, an HA pattern (Patroni or CloudNativePG), a clean backup/PITR concept, and observability without CloudWatch tax.
If you want to leave AWS but don't want to sacrifice reliability, Service Replacement is the fastest way out of lock-in.
Also on Azure? Read our Azure Database for PostgreSQL Guide.
Ready to Migrate Your RDS?
We handle everything – from setup to ongoing operations. Our managed PostgreSQL replicates exactly what you know from RDS: automatic failover, point-in-time recovery, monitoring, backups, updates. The difference? You pay a fraction of the cost and own your infrastructure.
We migrate your RDS without data loss. If you want to know what your specific RDS stack looks like on Proxmox (sizing, HA pattern, backup/PITR, cutover plan), request a migration analysis.
Start here:
- Exit AWS – Overview of our AWS migration services
- AWS to Hetzner – Detailed guide on migrating to Hetzner
- Calculate your savings – See how much you could save
Or contact us directly for a free infrastructure assessment.
Cloud Migration Service
Break free from the cloud cost trap - up to 90% savings.