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

AWS RDS PostgreSQL

AWS RDS PostgreSQL is a popular choice for a managed PostgreSQL database, as it offers a range of instance sizes, scalability options, and is part of the AWS ecosystem [1] [6] [7] [8] . Users find it hands-off when it comes to database management [6] . However, it can be more expensive compared to setting up your own Virtual Private Server (VPS) [1] .
DigitalOcean Managed PostgreSQL

DigitalOcean Managed PostgreSQL

DigitalOcean's hosted database service is considered more user-friendly than AWS RDS and offers competitive pricing starting at $15/month [1] [8] . It provides automation for cloud backups and always keeps the service up-to-date [1] . However, it does not support arbitrary or user-provided extensions [1] . DigitalOcean also has data centers in various locations, including Europe [2] .
Heroku Postgres

Heroku Postgres

Heroku Postgres is a well-regarded managed PostgreSQL provider, offering a secure, scalable, and developer-friendly service [4] . It provides features such as forks, followers, dataclips, continuous protection, and straightforward rollbacks [4] . However, some users have noted that automated backups are disabled as they transfer to the US East region [2] .
Aiven.io

Aiven.io

Aiven.io is another managed Postgres provider that offers reasonable uptime and doesn't break the bank [2] . It is an EU-based option, making it suitable for users in that region.

Self-Managed PostgreSQL

Some users prefer self-managed PostgreSQL options, such as installing on a local development computer or a separate server, or using PostgreSQL with Docker [3] . These options offer more flexibility and control but often require higher management complexity and hands-on involvement [3] .

PostgreSQL on Kubernetes

For users familiar with Kubernetes, self-managed Postgres on Kubernetes using Postgres Operator can be an attractive option, as it automates and orchestrates various tasks associated with Kubernetes [5] . Alternatively, fully managed Postgres for Kubernetes services like Crunchy Bridge or Red Hat OpenShift Database Access (RHODA) can handle database administration tasks, providing a "set and forget" deployment experience [5] .

Other Managed PostgreSQL Providers

Several other managed PostgreSQL providers were mentioned in the sources, such as ElephantSQL, Scaleway, YugabyteDB, CloudNative-pg, Seaplane.io, and Crunchy Bridge [2] . These providers offer various features, scalability options, and pricing, so it's essential to evaluate them based on your specific needs. In conclusion, there is no one-size-fits-all answer to the best managed PostgreSQL database, as the ideal option depends on factors such as budget, scalability requirements, and management complexity preferences. Popular choices include AWS RDS, DigitalOcean, and Heroku Postgres, but other options like Aiven.io, self-managed PostgreSQL, and Kubernetes-based solutions may also be suitable depending on your needs.

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.
  • 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.

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?