Has anyone figured out how to scale Amazon RDS read replicas?

TomBomb picture TomBomb · Aug 6, 2012 · Viewed 8.8k times · Source

I've recently set up a read replica to take some of the read load off of my Amazon multi-AZ RDS instance. The Amazon documentation clearly states that it is "up to your application to determine how read traffic is distributed across your read replicas".

Has anyone figured out a manageable way to scale read replicas? It doesn't seem like a very extensible solution to have different parts of my application hard-coded to read from specific replicas. Is there a way to set this up that is analogous to putting EC2 instances behind a load balancer?

Answer

alfredaday picture alfredaday · Sep 17, 2012

An AWS engineer provided some insight into the question here.

Here is a snippet of his response:

in general you can load-balance traffic at the following 3 logical places:

  • Application layer - create multiple connection pools and send all reads to the read-replicas.
  • Web framework/middleware - some web frameworks have in-built support for multiple databases [1].
  • External proxy - You can use an external proxy like MySQLproxy [2].

[1] - https://docs.djangoproject.com/en/dev/topics/db/multi-db/

[2] - https://launchpad.net/mysql-proxy