Differences between RDS PostgreSQL and Aurora
PosgreSQL
1. Storage Differences
RDS PostgreSQL
RDS PostgreSQL uses Amazon Elastic Block
Storage (EBS). All data and logs are managed in the EBS volume attached to the
instance. EBS volume is localized to a single availability zone and can not be
shared by multiple EC2 instances.
RDS PostgreSQL can
grow up to 64TB.
RDS PostgreSQL Automatically
scales up 5 GB.
Amazon Aurora PostgreSQL
Aurora uses distributed
storage which is replicated across 3 availability zones.
Amazon Aurora
PostgreSQL can grow up to 128TB.
Aurora PostgreSQL automatically
scales up in chuck of 10GB
2. Replica Differences
RDS PostgreSQL –
RDS uses synchronous
streaming replication between primary and read replica.
Maximum of 5 read
replica can be added to RDS PostgreSQL.
There is synchronous
streaming between Primary and read replica.
Replication lag is
in seconds. Sometimes it can be 30 seconds.
RDS supports cross
region replication.
Aurora shares
storage tier between primary and read replica. Replica in Aurora cluster shares
the Storage volume. Aurora does not depend on streaming replication. All of replication
happens at storage tier. Hence it is extremely efficient and does not any load on
the compute resources.
Aurora supports up
to 15 read replicas.
Replication lag is
in mili seconds.
supports same region replication because all read replicas shares the storage tier spread across multiple availability zone in the same region.
3.DR Strategies, High Availability and Failover
From disaster
recovery prospective cross region replication is an important concept. And we
have seen that RDS PostgreSQL support cross region replication.
With Aurora database
with no support of cross region but DB strategies can be implemented by way of
Global Aurora Database.
For High availability, RDS PostgreSQL
can be setup in multi AZ mode with one standby instance and one primary
instance across two AZ’s are referred to as multi AZ instance deployment.
In case of any failure RDS
automatically failover to the standby instance. By the way this failover can
also be a planned failover. In such a setup standby instance can not be used as
read.
If there are more than one standby
instance in the multi AZ RDS setup then the setup is referred as multi AZ
cluster deployment. In case of failure
of primary instance of request for a manual failover, RDB promotes one of the
standby instances to become the primary instance. In this setup standby instance
can be used as read replica.
RDS PostgreSQL –
RDS supports failover by way of
multi AZ instance or cluster setup.
Failover takes 60-120 sec.
RDS uses synchronous replication
between primary and standby instances.
Aurora supports failover
by the way of read replica.
Failover takes 30
Seconds.
Aurora shared the storage tier share between the instances to meet the replication requirement.
4.Backups
Both RDS and Aurora PostgreSQL
carry out automated backups and they also allow for manual backups. The differences
are in the frequency of backups and how the backups are created.
RDS PostgreSQL –
RDS PostgreSQL
takes daily backup during backup window. Backup window is controlled by the user.
Slight performance impact
during backup.
In case of multi AZ,
backups are taken from standby instance.
Point in time
recover is slower than the Aurora PostgreSQL.
Aurora PostgreSQL
–
Aurora PostgreSQL
carries out continuous incremental backups.
No performance impact
during backup.
Backup are carried
out at storage tier.
Point in time
recover is faster than the RDS PostgreSQL.