So, which Postgres host should you choose?
The short answer: For ultimate control and the best performance-per-dollar, a well-managed Hetzner server wins. For battle-tested reliability where budget is a secondary concern, AWS RDS is the default. For variable workloads, dev environments, and a taste of the future, Neon is incredibly compelling. The best choice is the one that aligns with your budget, your team's skills, and how much you enjoy emergency maintenance on a Sunday.
Choosing a database is the easy part. You chose Postgres, so congratulations on your excellent taste. Now comes the hard part: deciding where it will live. This decision has long-term consequences for your application's performance, your monthly bill, and your team's sanity. Let's break down the real-world trade-offs.
What's the deal with Hetzner?
Hetzner is a German hosting provider famous for offering incredible value. You get a lot of bare metal or virtualized power for your money. This is the DIY, roll-up-your-sleeves option. You are the master of your domain.
The Good
- Price-to-Performance: It's unbeatable. A dedicated server from their auction page or a powerful cloud instance can cost a fraction of a comparable managed database service. We're talking a machine with 8 cores and 32GB of RAM for under €50/month. An RDS instance with those specs would run you hundreds.
- Total Control: You have root access. You can install any Postgres extension you want (hello, PostGIS!), tune the kernel, and configure `postgresql.conf` to your heart's content. You're not limited by the whims of a cloud provider's control panel.
- No Data Transfer Fees: Within reasonable limits, you don't get hit with surprising bills for data egress, a common complaint with major cloud providers.
The Bad
"With great power comes great responsibility."
That's you. You are responsible for everything.
- Setup: You need to provision the server, secure it (firewalls, SSH keys), install Postgres, and configure it. This isn't a one-click process.
- Backups: This is the big one. You are 100% responsible for your backup and recovery strategy. A simple `pg_dump` in a cron job is not a strategy; it's a liability. You need to set up Point-in-Time Recovery (PITR) using tools like `pgbackrest` or `wal-g` to ship WAL archives to external storage (like an S3-compatible bucket). Testing your recovery process isn't optional, it's critical.
- High Availability: Want a hot standby or automatic failover? You're building it yourself. This involves setting up streaming replication, configuring a tool like Patroni, and understanding the complexities of split-brain scenarios.
- Maintenance: OS updates, security patches, Postgres major version upgrades — it's all on your calendar.
Running Postgres on Hetzner is a fantastic option for bootstrapped projects and companies with in-house DevOps expertise. At SISL.PL, we've successfully deployed many applications this way for clients who need maximum performance on a tight budget. But it requires discipline.
Isn't AWS RDS the industry standard?
Yes, for many it is. Amazon Relational Database Service (RDS) is Amazon's managed database offering. It's the choice you make when you want to outsource the operational headaches to a multi-trillion-dollar company. You trade some control and a lot of money for peace of mind.
The Good
- Simplicity: You can spin up a production-ready, multi-region Postgres cluster from a web console in about 15 minutes. It's almost insultingly easy.
- Managed Operations: AWS handles automated backups, PITR, OS patching, and minor version upgrades. Setting up a read replica for scaling reads is a few clicks away. Multi-AZ (Availability Zone) deployments for automatic failover are just a checkbox.
- Monitoring and Integration: It plugs directly into the entire AWS ecosystem. CloudWatch provides detailed metrics, IAM handles access control, and everything just… works together.
The Bad
- The Cost: You pay a significant premium for that convenience. A `db.t3.medium` instance (2 vCPU, 4GB RAM) can run you about $50/month. Add storage, data transfer, and Multi-AZ, and the bill climbs quickly. The equivalent raw power on Hetzner would be less than €15. You're not paying for hardware; you're paying for the managed service.
- Limited Control: You don't have superuser access. You can't install every extension under the sun (though the list of supported ones is quite good). Fine-tuning the underlying OS is impossible. You are a tenant in Amazon's database apartment complex.
- Vendor Lock-in: While Postgres is open-source, getting deeply embedded in the AWS ecosystem (IAM, VPCs, CloudWatch) makes migration a non-trivial project.
RDS is the sensible, if unexciting, choice for businesses that value reliability and operational simplicity over raw cost. If your team doesn't include a dedicated database administrator, the premium for RDS can be cheaper than hiring one.
What is this serverless Neon thing?
Neon is a newer player that's rethinking Postgres architecture for the cloud. It's a fully managed, serverless Postgres. This means it separates storage from compute, which has some fascinating implications.
The Good
- Scale to Zero: This is the killer feature. If your database has no active connections, the compute instance shuts down completely, and you pay nothing for it. This is revolutionary for development/staging environments, preview deployments for every pull request, and applications with highly irregular traffic.
- Instant Branching: Neon can create a copy-on-write clone of your database in seconds. This is a game-changer for development workflows. You can branch your production data to test a complex migration or run analytics without affecting the main database. It's like Git for your database.
- Generous Free Tier: Their free tier is often enough to run several small projects, making it a no-brainer for hobbyists and early-stage startups.
The Bad
- It's New: Neon is built on a custom storage engine. While the team is brilliant and the technology is impressive, it doesn't have the decades of production-hardening that traditional Postgres deployments or RDS have. Are you comfortable betting your business on it? That depends on your risk tolerance.
- Potential for High Cost at Scale: The serverless model is great for spiky workloads, but for a database with constant, high traffic, the costs can become less predictable and potentially higher than a provisioned RDS instance or a dedicated Hetzner server. You need to understand your access patterns.
- Performance Characteristics: There can be a small delay (a few seconds) for the compute to 'wake up' if it has scaled to zero. This 'cold start' might be unacceptable for some latency-sensitive applications.
Neon is incredibly exciting. We use it for our internal projects and recommend it for non-production environments. For some specific production use cases, especially those with long idle periods, it could be a massive cost-saver.
How do you make the final call?
There's no single right answer, only the right answer for your specific project. Ask yourself these questions:
- What is my budget? If it's razor-thin, Hetzner is your best bet, provided you have the skills to manage it.
- What is my team's expertise? If words like `pg_hba.conf` and `WAL` are foreign to you, the managed safety of RDS is likely worth the price.
- What does my workload look like? Is it a steady, predictable 24/7 load (good for Hetzner/RDS), or is it extremely spiky with long periods of inactivity (a perfect fit for Neon)?
- How critical is this data? For a personal blog, a simple `pg_dump` on Hetzner might suffice. For a financial application processing payments, the audited, battle-tested reliability of RDS is almost mandatory.
Ultimately, the platform is just a tool. The real work is in designing a good schema, writing efficient queries, and building a product people want to use. Choosing the right database host simply removes a specific category of problems from your path.
If you're weighing these options and the trade-offs are making your head spin, this is the kind of architectural decision we help our clients with every day. Sometimes a 30-minute conversation can save you months of headaches and thousands in unnecessary bills. Feel free to get in touch.