[フレーム]

やむにやまれず

2006年創業の会社を経営する元プログラマ。現在従業員12名(内7名が欧米人)で元気にお仕事中。今はもうコードは書いてないので、いつか復帰したい。@sparklegate

[Wakame]Rails2.3.2+mysql_replication_adapterでDB負荷分散

MySQLレプリケーションをして増えたSlaveに対し、SQLのReadクエリ分散をしようと思った時、大まかに2つの方法でDB接続する方法が考えられる。
  1. アプリケーション側から複数あるReadクエリ分散先のDBを選択する方法
  2. アプリケーション側からは決まったIPにReadクエリを投げると、そのIPにあるバランサーがReadクエリ分散先のDBを選択してくれる方法
前者の方法は、動的にMySQLのSlaveを増殖させていくと、それに連動してアプリケーション側が持つSlaveリストを更新しなければならない。
アプリケーションサーバの種類によっては、その後再起動を迫られるものもあるだろうし、DB接続ライブラリが少し賢ければ、オンラインのまま設定の再読込をしてくれるかも知れない。

弊社は基本的にRailsを利用しており、上記の方法を検討してみたが、やはりSlaveリストを更新する方法は複雑でアプリケーションの作りに関わりすぎるという評価になった。

後者の、アプリケーション側からは決まったIPにReadクエリが投げられる場合は、Slaveリストというものは常にそのIPの1エントリ固定となり、更新する必要がなくなる。
接続先の選択はそのIP上にいるバランサーに一任されるからだ。

今回は、このバランサーにElastic Load Balancerが使えるのではないかと言うことで、メンバーに検証をしてもらった(表題のリンク先)。
うまくいけばWakameに任せたいので、その前段階までやってもらったわけだが、これが想定通りきちんと動作しているように見える。

「MySQL SlaveにはElastic Load Balancerが使える」
次はこの結果を受けて、Wakameに取り込んでいく作業が必要そうだ。
タグ :
#MySQL
#replication
#amazon
#EC2
#cloud

コメントする

名前
最新記事
人気記事
QRコード
traq

AltStyle によって変換されたページ (->オリジナル) /