April 06, 2023
What is the best managed postgres database
I conducted research on the best managed PostgreSQL databases by examining various sources, including Reddit discussions [1][2][6][7][8][9][10], blog articles [3][5], and official websites [4]. The sources provided a range of opinions and recommendations, with some consensus on popular options such as AWS RDS, DigitalOcean, and Heroku Postgres. However, the choice of the best managed PostgreSQL database ultimately depends on the specific requirements, budget, and preferences of the user.
Have an opinion? Send us proposed edits/additions and we may incorporate them into this article with credit.
Words
0
Time
2m 9s
Contributors
142
Words read
16.7k
AWS RDS PostgreSQL
DigitalOcean Managed PostgreSQL
Heroku Postgres
Aiven.io
Self-Managed PostgreSQL
PostgreSQL on Kubernetes
Other Managed PostgreSQL Providers
Jump to top
Research
Source: "Is scaling a Postgres database still hard, and ..." (from reddit, r/PostgreSQL)
-
Amazon and other cloud providers offer PG compatible global DB instances
- No real scale limitations, if you are willing to write a big enough check
-
Host own hardware
- Cheaper than AWS when you get to large amounts of AWS
- Get a bigger server, or buy pre-filled rack space somewhere
- Might need to add a sysadmin job, but that’s still probably cheaper than AWS
-
2ndQuadrant’s BDR solution for clustering
- Allows for multiple smaller servers, which are a lot more affordable on AWS or Google Cloud
-
Citus
- Citus Data about improving their performance capabilities
- Tries to solve the same problems as BDR
-
Timescale
- When you start hitting the limits of an instance, research the next best step for you
-
Greenplum
- Nice option for buying more hardware
-
Offload read-only queries to standby servers
- Requires some modifications to application
-
Offload read queries by feature or client
- Allows different servers to have different sets of data in memory
-
Split off heavy write workloads to specialized components
- Example: store current status in some other system, like Redis, and only insert historical data into postgres
-
Implement sharding, either in the application or using Citus’s postgres extension
- Allows you to add unlimited amounts of servers, like NoSQL
- Lose performant cross shard joins
Source: "Best PostgreSQL hosting provider?" (from reddit, r/PostgreSQL)
-
Digital Ocean Managed PostgreSQL
- Relatively cheap and easy to set up.
- Pricing starts at $15/month.
-
Amazon Aurora
- Decent and relatively cheap (compute power).
- Seamless no downtime upgrades and resizing of your instance.
-
CitusData
- Good for fun/complex stuff.
-
AWS RDS
- Part of the AWS thing.
-
Google Cloud SQL
- Let’s you deploy PG 11 and exposes a bunch of system settings.
- Super easy to set up and run and scale.
-
Database Labs
- Hosts DB instance in either AWS, Google or Digital Ocean.
-
Hosting on your own hardware
- Can save money if you are willing to do the setup and maintenance yourself.
Source: "Questions about which Postgres to use?" (from reddit, r/PostgreSQL)
-
EnterpriseDB
- Offers support, Oracle compatibility, and training
- Tools to manage Postgres are mostly proprietary and require a license to use even in dev environment
-
Crunchy Data
- All open source Postgres, tools are also open source
- Postgres Operator is open source
-
Self-hosted
- Postgres license is free and open source, under a permissive licence
- Easy to keep it reliable if you know what you’re doing
- Miss out on features such as timely updates, support for old versions, and extensions if you use a managed service
-
Other providers
- Pick any provider based on your criteria, but be aware that you may experience issues with RDS
- Pay more for the service, but can get features such as automated management and shielding from accessing/modifying too much
Source: "Best hosting for my database" (from reddit, r/PostgreSQL)
-
Amazon Aurora
- Uptime, durability, connectivity, performance, cost, and support are important considerations
- Offers high uptimes with features around backups, upgrades, and scalability
-
AWS RDS
- Offers lightly augmented versions of the OSS DB engine, mostly using native replication techniques
- Provides 10+ years of reliable use with no issues
-
Azure
- Easy to switch to Citus if scale is needed
- Runs 11, with 14 soon to come out
-
Hetzner
- Price/performance is unbeatable
- Have full control over the server
-
Self Hosting
- Good for early stage orgs/admins
- Number of queries and data size is a factor to consider
Source: "Azure or AWS which one is better and why for Po..." (from reddit, r/PostgreSQL)
-
AWS Aurora Postgres Serverless
- Cost effective for test/staging environments
- Appealing from a cost perspective
-
Azure Managed Citus Cluster
- Can be scaled to petabyte sizes
- Offers a managed cluster option
-
AWS RDS
- Ability to dynamically scale storage up to 64TB
- Hands-off when it comes to DB management
-
GCP
- Unknown performance compared to AWS and Azure
💭 Looking into
What is the best way to evaluate managed postgres databases?
💭 Looking into
What are the key considerations when choosing the best managed postgres database?
💭 Looking into
What is the scalability of YugabyteDB PostgreSQL?
💭 Looking into
What is the uptime guarantee for Scaleway PostgreSQL?
💭 Looking into
What is the pricing structure for ElephantSQL?
💭 Looking into
What level of access is available for EDIS.at PostgreSQL?
💭 Looking into
What are the backup and recovery options offered by Aiven.io?
Source: "Best EU-based managed postgres?" (from reddit, r/PostgreSQL)
-
Aiven.io
- Managed Postgres provider that doesn’t break the bank
- Reasonable uptime
-
EDIS.at
- Managed Postgres provider that doesn’t break the bank
- Reasonable uptime
-
ElephantSQL
- Managed Postgres provider that doesn’t break the bank
- Reasonable uptime
-
Scaleway
- Managed Postgres provider that doesn’t break the bank
- Reasonable uptime
-
YugabyteDB
- Managed Postgres provider that doesn’t break the bank
- Horizontally and vertically scalable
-
CloudNative-pg
- Managed Postgres provider that doesn’t break the bank
- Exclusively Kubernetes related
-
Seaplane.io
- Managed Postgres provider that doesn’t break the bank
- Geo-fencing data capabilities
-
Heroku Postgres
- Managed Postgres provider that doesn’t break the bank
- Automated backups disabled as they transfer to us-east
-
Crunchy Bridge
- Managed Postgres provider that doesn’t break the bank
-
Digital Ocean
- Managed Postgres provider that doesn’t break the bank
- Datacenters all over the world and quite a few in EU as well
Source: "Fully Managed Database as a Service - PostgreSQ..." (from web, www.heroku.com)
-
Heroku Postgres
- Delivers the world’s most advanced open source database as a trusted, secure, and scalable service that is optimized for developers
- Heroku’s operational experience applied to data
- Scale on demand
- Do more with your data
- Secure & compliant
- Forks and followers available
- Dataclips available
- Trusted data integration
- Continuous protection
- Straightforward rollbacks
- Automated health checks
- Security and compliance
- Data encryption
- Heroku Postgres via mutual TLS
Source: "5 ways to host PostgreSQL databases - Prisma's ..." (from web, www.prisma.io)
-
Self-Managed PostgreSQL
-
Installing on a local development computer
- Project stage: Development
- Cost: No additional costs
- Performance: Low
- Scalability: None
- Management complexity: Low
- Additional notes: Does not require network configuration. Good for local development.
-
Installing on a separate server
- Project stage: Development, staging, production
- Cost: Variable. Purchase or rental of an additional server plus additional management costs.
- Performance: High potential
- Scalability: High potential
- Management complexity: High
- Additional notes: The most flexible option. Also requires the greatest amount of hands-on management. A good choice if you have hardware or database expertise in-house that you can devote to management.
-
PostgreSQL with Docker
- Project stage: Development, staging, production
- Cost: Variable. Purchase or rental of an additional server plus additional management costs.
- Performance: Medium-High
- Scalability: High
- Management complexity: Medium-High
- Additional notes: Containerized infrastructure can vary dramatically in terms of complexity. While containers make many things easier, especially during development and staging, they also require experience and complex orchestration to run well in production. For production workloads, containers are likely only a good choice if you are already invested in container orchestration like Kubernetes.
-
Installing on a local development computer
-
Managed services
-
Databases managed by cloud providers
- Project stage: Development, staging, production
- Cost: Highly variable, depending on your selections and usage.
- Performance: Highly variable
- Scalability: High
- Management complexity: Low
- Additional notes: A highly scalable solution often offered by the same cloud provider that can run your applications. This allows for additional control over networking and performance without the heavy lifting of running your own servers.
-
Databases managed by cloud providers
Source: "Best way to deploy your PostgresQL database for..." (from reddit, r/PostgreSQL)
-
EC2+Linux+PostgreSQL+SSL+Firewall/VPN
- Can eliminate some of it by using RDS PostgreSQL but you are still going to want SSL+VPN
-
DigitalOcean hosted database service
- More user friendly than AWS RDS service
- Always up to date, can automate cloud backups
- Does not support arbitrary/ user-provided extensions
-
AWS RDS PostgreSQL
- dB.m4.xlarge with 600 GB SSD is $335/month on AWS
-
VPS with DigitalOcean/Linode/Vultr
- Cheap($5/month) but will require some Linux command line setup
-
Hosted cloud postgres instances
- DigitalOcean, Elephantsql, AWS, Google Cloud SQL, Azure
- More expensive than setting up your own VPS
-
SSH/port forwarding/VPN/SSL
- Easy to setup under Windows, open portgres port to only their IP (if possible) and set up SSL for postgres’s auth
-
Ngrok
- Launch pgadmin4 on localhost, share via ngrok
-
AWS Aurora
- PostgreSQL compatibility and can run PostGIS extension
- Effectively a managed PostgreSQL as a service
Source: "Postgres with Kubernetes: Self-Managed or Manag..." (from web, thenewstack.io)
-
Postgres Operator: Self-Managed Postgres on Kubernetes
- Automation and orchestration associated with Kubernetes
- Node affinity, tolerations, and pod topology spread constraints to make decisions about where Postgres instances are deployed
- Kubernetes standardized workflows
-
Fully Managed Postgres for Kubernetes
- Managed service provider to handle a number of the database administration tasks for you, including backups, patching, and scaling
- “Cloud agnostic” managed database service like Crunchy Bridge
- Red Hat OpenShift Database Access (RHODA)
- “Set and forget” Postgres deployment
💭 Looking into
What is the best managed PostgreSQL database?