Route53でラウンドロビンの設定

同一リージョン内で立てた複数のEC2サーバーの負荷分散ならELBを前段に設定するだけでよろしくやってくれる。

ただ、AWS以外のサーバー、たとえばさくらのクラウドとIDCFクラウドniftyクラウドを組み合わせて...などだとELBは利用できない。

しかし、AWS以外のサーバーを複数利用したいときにどうにかして手軽に負荷分散ができないものか。

そんなときに便利なのがRoute53のラウンドロビン機能。

DNSラウンドロビンとは、

DNSラウンドロビン (DNS round robin)とは、一つのドメイン名に複数のIPアドレスを割り当てる負荷分散技術の一つである。 ~ Wikipedia

要はこれを使うとドメインへのアクセスをバックエンドにある複数台のサーバーへ均等(もしくは一定の比率で)振り分け、負荷分散を行うことができるようになる。

大抵の場合なら大した額にならないと思うのだけど一応価格はAmazon Route 53 料金表を参考に。

で、肝心のRoute53の設定はこんな感じ。

  • Aレコードでvalueにリクエストを受けたいサーバーのIPを記述する。
  • routing policyはweightedなども設定できるがとりあえずsimpleでOK。

f:id:razokulover:20141125234343p:plain

これでこの場合、static.yomejiman.comにアクセスすると、
123.456.789.101
123.456.789.102
123.456.789.103
のサーバーに振り分けられていく。

これを確かめるためには、

nslookup static.yomejiman.com

みたいにする。これで設定したIPがすべて表示されればちゃんと設定されていることになる。

health checkの問題とか負荷が偏るなど色々あるけど、AWS以外のサーバーを組み合わせて手軽に負荷分散したい場合には便利なので使っていきたい。