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 年前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则