Best DBaaS Solutions for PostgreSQL
Cloud computing is getting more and more used in all companies to take advantage of all the features offered by this technology.
It allows for On-Demand availability of compute power, database, storage, applications, and other resources via the internet, so you don’t need to spend a lot of money to buy powerful servers or build your own data centers.
Database as a Service (DBaaS) is a cloud computing service that provides users with access to a database without the need for setting up physical hardware, installing software, or configuring it. All of these administrative tasks and maintenance are taken care of by the cloud provider so that all the user needs to do is use the database.
The question is, what is the best DBaaS Solution? Unfortunately, there is not a simple answer to this, so in this blog, we’ll look at the main features of different DBaaS providers for PostgreSQL.
Amazon RDS for PostgreSQL
Amazon RDS for PostgreSQL is one of the biggest providers which offers database services in the cloud. With this DBaaS solution, you can easily manage and administer your databases in the cloud.
- Pre-configured parameters making the deployment an easy task
- Monitoring and Metrics
- Database Event Notifications
- Automatic Software Patching
- General Purpose (SSD): It delivers a consistent baseline of 3 IOPS per provisioned GB and provides the ability to burst up to 3,000 IOPS.
- Provisioned IOPS (SSD): You can provision up to 64TB storage and 80,000 IOPS per database instance.
- Automated Backups
- Database Snapshots
- Multi-AZ Deployments
- Read Replicas
- Database and Backup Encryption
- Private Virtual Networks
- Supported PostgreSQL features like PostGIS, Full Text Search Dictionaries, HStore, JSON Data Types ,and pg_stat_statements
- Foreign data wrappers
- Core PostgreSQL engine features
Using this product, you will pay only for what you use, and there is no minimum fee. You can estimate your monthly bill using the AWS Pricing Calculator. There are two types of instances:
- On-Demand DB Instances: It allows you to pay for compute capacity by the hour your DB Instance runs from the time a DB instance is launched until it is stopped or deleted, with no long-term commitments. This frees you from the costs and complexities of planning, purchasing, and maintaining hardware and transforms what are commonly large fixed costs into much smaller variable costs.
- Reserved Instances: It gives you the option to reserve a DB instance for a one or three year term and in turn receive a significant discount compared to the On-Demand Instance pricing for the DB instance. Amazon RDS Reserved Instances provide size flexibility for the PostgreSQL database engine. The price doesn’t cover storage or I/O costs.
For more information, you can check the Amazon RDS Pricing section.
Amazon Aurora for PostgreSQL
Amazon Aurora is a MySQL and PostgreSQL compatible relational database built for the cloud. According to the AWS web site, Amazon Aurora is three times faster than standard PostgreSQL databases and provides the security, availability, and reliability of commercial databases at 1/10th the cost. Regardless of the claim, this is not a true PostgreSQL instance, just a compatible engine. But, if you are considering running PostgreSQL on Amazon, you should definitely consider this as a possible alternative. You can learn more about Aurora and how it relates to PostgreSQL here.
- Up to 3X Higher Throughput than PostgreSQL
- Low-Latency Read Replicas
- Serverless Configuration
- Custom Database Endpoints
- Instance Monitoring and Repair
- Multi-AZ Deployments with Aurora Replicas
- Global Database
- Fault-Tolerant and Self-Healing Storage
- Automatic, Continuous, Incremental Backups and Point-in-Time Restore
- Network Isolation
- Resource-Level Permissions
- Easy to Use
- Monitoring and Metrics
- Automatic Software Patching
- Database Event Notifications
- Fast Database Cloning
- Database Start/Stop
Similar to Amazon RDS, here you will pay as you go with no up-front fees. There is no minimum fee. There are three types of instances:
- On-Demand Instance: Lets you pay for your database by the hour from the time a DB instance is launched until it is stopped or deleted, with no long-term commitments or upfront fees. This frees you from the cost and complexity of planning and purchasing database capacity ahead of your needs. On-Demand pricing lets you pay as you go and is ideal for development, test, and other short-lived workloads.
- Serverless: Your database capacity automatically scales up or down to meet your application workload needs and shuts down during periods of inactivity, saving you money and administration time. You pay for database storage, plus the database capacity and I/O your database consumes while it is active.
- Reserved Instances: It is appropriate for steady-state database workloads and offers significant savings over On-Demand. One Year Reserved Instances provide discounts up to 45% and Three Year Reserved Instances provide discounts of up to 66% over On-Demand. You commit to the entire duration of the Reserved Instance term and pay an upfront charge and a discounted hourly rate as shown below. You will be billed for each hour of the term regardless of whether any usage has occurred.
For more information, you can check the Amazon Aurora Pricing section.
Google Cloud SQL for PostgreSQL
Google’s Cloud SQL provides a fully managed database service that makes it easy to set up, maintain, and administer PostgreSQL databases in the cloud. It is hosted on the Google Cloud Platform which offers high performance, scalability, and provides an infrastructure for applications running anywhere in the world.
- Fully managed PostgreSQL databases in the cloud, based on the Cloud SQL Second Generation platform.
- Custom machine types with up to 624 GB of RAM and 96 CPUs.
- Up to 30 TB of storage available, with the ability to automatically increase storage size as needed.
- Create and manage instances in the Google Cloud Console.
- Instances available in the US, EU, Asia, or Australia.
- Customer data encrypted on Google’s internal networks and in database tables, temporary files, and backups.
- Support for secure external connections with the Cloud SQL Proxy or with the SSL/TLS protocol.
- Data replication between multiple zones with automatic failover.
- Import and export databases using SQL dump files.
- Support for PostgreSQL client-server protocol and standard PostgreSQL connectors.
- Automated and on-demand backups.
- Instance cloning.
- Integration with Google Cloud’s operations suite logging and monitoring.
- Support for multiple PostgreSQL versions: 9.6, 10, 11, and 12.
- Cloud SQL for PostgreSQL supports many PostgreSQL extensions. For a complete list, see PostgreSQL Extensions.
Cloud SQL for PostgreSQL pricing is composed of the following charges:
- Instance: It applies only to shared-core instances. Dedicated-core instances, which can have up to 96 vCPUs and 416 GB of memory, are charged by the number of cores and amount of memory they have. Read replicas are charged at the same rate as stand-alone instances.
- CPU and Memory: For dedicated-core instances, you choose the number of CPUs and the amount of memory you want, up to 96 CPUs, and 416 GB of memory.
- Storage and Networking: It depends on the region where the instance is located. When network traffic leaves a Cloud SQL instance, the charge applied depends on the destination of the traffic, and in some cases, whether a partner is involved. Internet egress is network traffic leaving a Cloud SQL instance to a client that is not a Google product, such as using a local server to read data from Cloud SQL.
For more information, you can check the Google Cloud SQL Pricing section.
Azure Database for PostgreSQL
Azure Database for PostgreSQL is a fully-managed database as a service with built-in capabilities, such as high availability and intelligence. You can continue to use languages & frameworks of your choice with no upfront costs. Pay only for what you use.
- Provision in minutes and independently scale compute or storage in seconds
- Integration with valuable PostgreSQL features including JSONB, geospatial support, rich indexing, and more
- Dozens of extensions (such as PLV8, PostGIS, and TimescaleDB)
- High-performance horizontal scaling on PostgreSQL using Hyperscale (Citus) extension
- Intelligent performance recommendations generated from a custom analysis of your database
- Use the query performance insight feature to monitor and detect disruptive events that can hamper performance
- Fully managed PostgreSQL with Azure IP Advantage
- Discover, track, and remediate potential threats as they occur with Azure Advanced Threat Protection
- Control data isolation by configuring a virtual network
- Data is automatically encrypted at rest and in motion
- Azure Database for PostgreSQL is compliant with HIPAA, PCI DSS, FedRAMP, ISO, and more
- Pay only for what you use
There are two types of products depending on your workload:
- Single server: It is best for workloads that can perform well with the compute, memory, and storage of a single node.
- Hyperscale (Citus): It is best for applications that have demanding performance and concurrency requirements and need to scale out PostgreSQL horizontally. With Hyperscale (Citus) you can take advantage of the aggregate compute, memory, and storage of a multi-node database cluster.
For more information, you can check the Azure Database for PostgreSQL Pricing section.
EnterpriseDB Cloud Database
EnterpriseDB PostgreSQL Plus Cloud Database is used to deploy PostgreSQL databases to cloud server instances. The master database, all replica instances, and Amazon storage for the database run on AWS instances owned by you, while Postgres Plus Cloud Database consoles are owned and operated by EnterpriseDB.
- Easy deployment provisioning clusters in minutes
- Dashboard insights
- Automated and On-demand scaling
- True superuser access
- Custom plugin support
- PostgreSQL configuration tuning
- No cap on IOPS or replicas
- Scale database up to 624 TB
- Standard SSD or EB optimized storage
- Cross-region availability
- Point-in-time-recover and streaming WAL logs
- Encryption at rest and in transit
- Support from PostgreSQL contributors
- Prompt support for new versions
- 24/7 Email, portal, & phone support
There are two versions:
- PostgreSQL: It is the community version of PostgreSQL and is distributed by EnterpriseDB.
- Postgres Plus Advanced Server: It is an EnterpriseDB commercial product that adds Oracle features, Oracle database compatibility, many performance features (including a high-speed data loader, Index Advisor, DynaTune, SQL wait-state statistics), built-in function packages, a software update monitor, enterprise monitoring tools, a SQL Performance Profiler, SQL Injection attack protection, a database migration toolkit, and heterogeneous replication with Oracle and SQL Server.
Free storage up to 1 TB. One-year Reserved Instances available for up to 25% off.
DB instance cost includes Compute and Software Licence cost. Storage, IOPS, data transfer, and other services are additional.
For more information, you can check the EnterpriseDB official website.
There are other options like ElephantSQL, Heroku, or Compose, and they are probably as good as the mentioned above, but to avoid an extensive blog post, we focused on the most common DBaaS providers nowadays.
It is hard to say which DBaaS solution is the best for you as it depends on the company size, requirements, and of course, the budget, but we hope this blog helps you to know the main features of some provider options, and make the best decision for your company.
Subscribe to get our best and freshest content