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.

질문됨 일 년 전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
전문가
답변함 일 년 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인