How to separate RDS Aurora MySQL general read operation from data analysis

0

Hi everyone, we decided to run our database on AWS Aurora MySQL engine. We have one primary(writer) and one read replica instances.

We have mobile app/web that our customers interact with. Now, we have data analyst that currently use read endpoint for data analysis and some of his queries are sometimes slow, let's say it may take 10 seconds or even 30 seconds to get executed. apart from query optimization, I wonder if these long queries will affect the performance of read operation, essentially effecting our customers' app/web experience ? Additionally, if the read replica instance is having 50% CPU utilization while the primary instance have around 10% CPU utilization overall, in the event of failover, would it take more time to restore the database ?

I'm thinking following two potential solutions:

  1. create another read replica instance , in this case, the reader endpoint will load balance the queries to both read replica instances. and assign just one of the read replica instances to run the data analysis, assign the other read replica instance with higher failover priority (like tier 0)
  2. create an RDS proxy for the Aurora cluster with target role been read-only, set Connection pool maximum connections to maybe 25% for data analysis.

I would appreciate any advice you can offer.

Thanks.

已提問 1 年前檢視次數 327 次
1 個回答
2

I would go with your option one. Read replicas are typical case to separate you let’s say user facing apps with e.g. internal reporting tools that just need access to the data.

profile picture
專家
已回答 1 年前

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

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

回答問題指南