AWS Certified Solutions Architect - Professional 2020

Sign Up Free or Log In to participate!

How to build a Multi-Master Global Aurora Database?

I think this question is more fitting for the Database Specialty discussion, although since that does not exist at this time and Aurora is the flagship relational database AWS is pushing I thought I would drop my question here instead.

I see that Aurora supports Multi-Master where my cluster has multiple instances that I can use for read and write. 

https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-multi-master.html

I see that Aurora supports Global Database when a cluster has to exist in multiple regions at once.

https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html

Although, I can’t find any documentation that describes using these features together. I did find Write Forwarding for Global Database, but only for mySQL and I need PostgreSQL.

https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-write-forwarding.html

What I’m really looking for is a rational database similar to that of Azure Cosmos DB with multiple regions working together with the ability to write to any region.

https://azure.microsoft.com/en-us/services/cosmos-db/

I know it’s possible in AWS if I employ other services like EC2, CloudWatch Events, Lambda, etc. 

Does Aurora supports this out-of-the-box?

If so, is there a walk-through guide I can follow?

1 Answers

Hi Justin,

I don’t think AWS has anything like this yet for PostgreSQL.  As you found, Aurora’s multi-master and global database are kind of the two parts that you need, but are separated now.  This is a challenging thing for relational database given the ACID constraints and latency among regions.

CosmosDB is NoSQL which is more conducive to this.  AWS’s DynamoDB can do this too using global tables.

–Scott

justin.wheeler

Thanks for your input. I love DynamoDB’s Global Tables, however, it’s just not an option for the projects I’m working on. I think we’re going to use Aurora Global Database as it’s closer to the multi-region support we need without the heavy lifting of a home-grown data replication process. The only option I can see is to suffer the increased latency from having the secondary region write to the primary cluster. Perhaps I can solve this by routing the writer users to the primary region instead of controlling routing solely on latency. Although, I’d have to keep fail-over in mind if the primary region flips after a disaster. Hope AWS expands upon these features in the future; even if we have to suffer eventual consistency to enable it.

Sign In
Welcome Back!

Psst…this one if you’ve been moved to ACG!

Get Started
Who’s going to be learning?