blog
Amazon RDS for PostgreSQL Alternatives – ClusterControl for PostgreSQL
Amazon RDS for PostgreSQL is a managed service for PostgreSQL available as part of Amazon Web Services. It comes with a handful of management functions that are intended to reduce the workload of managing the databases. Let’s take a look at this functionality and see how it compares with options available in ClusterControl.
PostgreSQL Deployment
PostgreSQL RDS
PostgreSQL RDS supports numerous versions of PostgreSQL, starting from 9.5.2 up to 12.2:
For Aurora it is 9.6.8 to 11.6:
You can pick if the cluster should be highly available or not at the deployment time.
ClusterControl
ClusterControl supports PostgreSQL in versions 9.6, 10, 11 and 12:
You can deploy a master and multiple slaves using streaming replication.
ClusterControl supports asynchronous and semi-synchronous replication. You can deploy the rest of the high availability stack (i.e. load balancers) at any point in time.
PostgreSQL Backup Management
PostgreSQL RDS
Amazon RDS supports snapshots as the way of taking backups. You can rely on the automated backups or take backups manually at any time.
Restoration is done as a separate cluster. Point-in-time recovery is possible with up to one second granularity. Backups can also be encrypted.
ClusterControl
ClusterControl supports several backup methods for PostgreSQL.
It is possible to store the backup locally or upload it to the cloud. Point-in-time recovery is supported for most of the backup methods.
When restoring, it is possible to do it on an existing cluster, create a new cluster or restore it on a standalone host. It is possible to schedule a backup verification job. Backups can be encrypted.
PostgreSQL Database Monitoring
PostgreSQL RDS
RDS comes with features that provide visibility into your database operations.
Using Performance Insights, you can check the state of the nodes in CloudWatch:
ClusterControl
ClusterControl provides insight into the database operations using the Overview section:
It is also possible to enable agent-based monitoring for more detailed dashboards:
PostgreSQL Scalability
PostgreSQL RDS
In couple of clicks you can scale your RDS cluster by adding replicas to RDS or readers to Aurora:
ClusterControl
ClusterControl provides an easy way to scale up your PostgreSQL cluster by adding a new replica:
PostgreSQL High Availability (HA)
PostgreSQL RDS
Aurora clusters can benefit from a load balancer deployed in front of them. Regular RDS clusters do not have this feature available.
In the Aurora cluster it is possible to promote readers to become master. For RDS clusters you can failover to a read replica but then the replica will become a new node, without any other replicas. You would have to deploy new replicas after the failover completes.
It is possible to deploy highly available clusters for both RDS and Aurora. Failed master nodes are handled automatically, by promotion of one of the available replicas.
ClusterControl
ClusterControl can be used to deploy a full high availability stack that consists of master – slave database cluster, load balancers (HAProxy) and keepalived to provide VIP across load balancers.
It is possible to promote a slave. If the master is unavailable, one of the slaves will be promoted as a new master and remaining slaves will be slaved off the new master.
PostgreSQL Configuration Management
PostgreSQL RDS
In PostgreSQL RDS configuration management can be performed using parameter groups. You can create custom groups with your custom configuration and then assign them to new or existing instances.
This lets you share the same configuration across multiple instances or across whole clusters. There is a separate parameter group for Aurora and RDS. Some of the configuration settings cannot be configured, especially the ones related to backups and replication.
ClusterControl
ClusterControl provides a way of managing the configuration of the PostgreSQL nodes. You can change given parameter on some or all of the nodes:
It is also possible to make the configuration change by directly modifying the configuration files:
In ClusterControl you have full control over the configuration.
Conclusion
These are the main features that can be compared between ClusterControl and Amazon RDS for PostgreSQL.
There are also other features that ClusterControl provides that are not available in RDS: Query Monitoring, User Management, & Operational Reports to name a few.
If you are interested in trying them out, you can download ClusterControl for free and see for yourself how it can help you with managing PostgreSQL clusters.