S3-compatible storage for PostgreSQL 16 WAL archives—cost comparison
We're running PostgreSQL 16 on a dedicated server and looking to move WAL archiving off-site. Currently using Hetzner Storage Box (~€5/month) but it's getting slow for our 500GB monthly WAL volume.
Considering:
- Vultr Object Storage: $5/month + $0.02/GB egress
- AWS S3 Standard: ~$0.023/GB storage + egress
- Contabo S3: $4.99/month unlimited (but slower?)
Anyone using S3-compatible backends with archive_command in prod? Worried about egress costs during restore scenarios. What's your real-world experience with latency and reliability?
Also, should I be using MinIO as a local gateway or direct endpoints?
Edited at 26 Mar 2026, 03:35
Vultr Object Storage here—been archiving ~300GB/mo for 18 months. The egress cost is the real killer on restore. Try using pg_basebackup + incremental WAL clips instead of continuous streaming; cuts restore bandwidth by ~60%. Also, Contabo's S3 is slower but their upload speeds are surprisingly stable. Honestly, if you're worried about restore scenarios, calculate egress before committing—that $0.02/GB can balloon fast on a 500GB recovery.
Thanks bgp_peer! That's really helpful—18 months of production data is reassuring. Yeah, I hadn't thought much about the restore scenario with continuous egress charges. The pg_basebackup + incremental WAL approach makes sense for keeping restore costs down. Did you end up sticking with Vultr or switch providers?
One thing nobody mentions: test your restore time under load before committing. I switched to Contabo S3 and saved $100/mo, but during a restore test the throttling was brutal—added 3 hours to RTO. Now I use Vultr with a separate egress budget line item. Also, set up archive_timeout properly or you'll have gaps during network hiccups. https://www.postgresql.org/docs/ has good examples in the replication section.