Aurora Replica Sizing vs. Source DB Sizing - Do they need to match?

0

Question from customer:


We currently run Aurora with the following sizing:

primary: db.r4.16xlarge
replica-a: db.r4.8xlarge
replica-b: db.r4.8xlarge
replica-c: db.r4.8xlarge
replica-d: db.r4.16xlarge <-- failover

In this documentation link, we saw this paragraph:

"For replication to operate effectively, each Read Replica should have as the same amount of compute and storage resources as the source DB instance. If you scale the source DB instance, you should also scale the Read Replicas."

However, we couldn't find anything similar written in the Aurora docs.

Are there any guidelines on primary/replica sizing for Aurora MySQL? Do they need to be the same instance size?

Update Follow-up question from customer:

Would it simply be a performance impact when failover happens (i.e. primary fails and the highest failover replica gets promoted)? Or would it have any impact during normal replication?

asked 5 years ago1144 views
1 Answer
0
Accepted Answer

Update Follow-up question from customer: Would it simply be a performance impact when failover happens (i.e. master fails and the highest failover replica gets promoted)? Or would it have any impact during normal replication?

Answer:

Since Amazon Aurora Replicas share the same data volume as the primary instance in the same AWS Region, there is virtually no replication lag. We typically observe lag times in the 10s of milliseconds. How far behind the primary will my replicas be?: https://aws.amazon.com/rds/aurora/faqs/

By design, the replication asynchronous. So, the replica lag varies depending on the rate of database change. That is, during periods where a large amount of write operations occur for the database, you might see an increase in replica lag. Because we have to send the same log changes (Redo Logs) to Read replica to update the cache. If there are too many changes you might see a lag than expected. This does not depend on the which instance class you are using for Read Replica.

Re-invent Video: https://youtu.be/duf5uUsW3TM?t=422

Now, by having the smaller instance class for read replica:

1.) You might see lot of queries might be doing physical read (Read IOPS increase) instead of logical read. 2.) You might see a performance impact when failover happens to a Read Replica because it has less resources (CPU, Memory, etc. )

AWS
VijayK
answered 5 years ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions