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?

已提問 5 年前檢視次數 1165 次
1 個回答
0
已接受的答案

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
已回答 5 年前

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南