| May 12, 2017

3 MIN READ

Written by Ashnik Team
Container Platform and Security

How Amazon Aurora is a success of PostgreSQL

I have been observing AWS Aurora for a while and it has my special attention after being launched with PostgreSQL compatibility. Not too long back, I had even written about why you should consider moving your database to cloud and how you can overcome the challenges of database migration to cloud. Aurora only strengthens my belief that a database can run much more efficiently in a cloud infrastructure and at the same time it can free-up your DBA to focus more on SQL and Application optimization. If you have already explored PostgreSQL RDS or if you are running PostgreSQL on EC2, Aurora has a lot of features worth your attention. It is built on the foundation of the reliable AWS infrastructure and PostgreSQL. Let’s take a look at some of the key features of Aurora –

  • It stores six copies of your data. This has been done by using the extensibility offered by PostgreSQL. PostgreSQL allows you to plug-in your own storage engine – though not as straight forward as is the case with MySQL or MariaDB. This means that Aurora can withstand loss of 2 copies without affecting the write capabilities and up to three copies without affecting the read capability.
  • You can setup read replicas which are designed with state-of-the-art storage solution. All replicas share the same storage and you can setup up to 15 read replicas with single digit millisecond lag time.
  • You don’t really need to worry about the procedure behind the replication setup, as AWS pretty much automates that and for you it is just a matter of click.
  • Aurora comes with automated backup which can be used for Point-in-time recovery. This is very useful for those who are looking to recover data after a bad operation. Typically, an approach like flashback or time travel query does not come handy in case of practical scenarios when huge data is lost because of a bad operation or when data is corrupted or made inconsistent (in business context) by a buggy batch process. Using flashback or time travel query to recovery in such scenarios is prone to human error and could also be tedious.

Not many people have been able to note and understand that Aurora is built on top of extensibility offered by PostgreSQL. This extensibility of PostgreSQL has allowed –

  • AWS to build such a highly available service by plugging in the S3 based storage engine.
  • Aurora to run with a modified checkpoints and crash-recovery (single phase recovery) mechanism, which reduces the crash recovery tremendously.

While AWS has been able to extend PostgreSQL with Aurora, customers using Aurora can still benefit from other in-core features of PostgreSQL or popular extensions e.g. PostGIS. This means that you don’t really trade-off other great features while extending PostgreSQL. What does this mean to end users? Well, if you want you can rely on vendors like EnterpriseDB or Amazon to choose a fork of PostgreSQL and still benefit from other features of Postgres. Or you can also customize PostgreSQL using different extensibility hooks like planner, background worker, extensions, procedural language or foreign data wrapper. So PostgreSQL and its various forks have a lot to offer for business who are looking to build a reliable database service. PostgreSQL also has all the hooks in place for advanced users to customize and build their own database service. That’s the significant advantage of relying on PostgreSQL – Open Source and its extensibility.
PostgreSQL’s extensibility has allowed Amazon to build a rock-solid database platform on top of AWS Infrastructure using PostgreSQL. Many proprietary vendors are not really capable of offering this advantage and are taking the battle to where they think they have strengths – irrespective of relevance of those strengths in today’s age. More on this aspect to follow on one of my upcoming blogs.
By the way, if you are exploring to run Postgres in a managed environment or if you are wondering how to best run your Postgres deployment in cloud – RDS or Aurora or PostgreSQL on EC2, talk to us. Our expertise on PostgreSQL and Cloud Architecting skills can help you identify the factors which needs to be considered while making a choice about running database in cloud. We also provide migration services for moving an in-house database or PostgreSQL running in another cloud environment to RDS or Aurora. Get in touch with us.
 


Go to Top