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

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ