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.

asked 10 months ago298 views
1 Answer
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
EXPERT
answered 10 months 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