DNSラウンドロビンってあり?(追記)

 

私の見解としてはDNSラウンドロビンは「あり

ですのでdmmでは一部でDNSラウンドロビンを使っています。

なぜ、使っているのか

最近のブラウザはfailoverの機能を持っているからです。

3つのホストでラウンドロビンの設定をしておけば、OSブラウザはその3つのホストを保持します。

そしてエラーが返ってきた瞬間に即座に次のホストを試します。

ブラウザでfailoverが可能だということはDNS系での負荷分散は下記の二つで実現できるということになります。

  • GSLB
  • ブラウザ※ブラウザのバージョンによる

上記のどれもがホストのダウンを検知すると切り替える能力をもっていますが、

GSLBはブラウザやDNSサーバのキャッシュにより切り替わりに多少時間がかかります。
※ちなみにGSLBの設定でAレコードをいくつも返すようにすることは可能です。

dmmでは画像関連のサーバでラウンドロビンの設定となっています。

www.dmm.comはGSLBの設定でAレコードを一つだけ返すような設定としています。
※将来的にはDNSラウンドロビンへ移行したいと思っています。。

大規模サイトをdigってみると

facebook.comとrakuten.co.jpはAレコードが1つ

apple,ebay,msn,yahoo,twitter,tumblr,googleやamazonなどはAレコードが複数でした。

ラウンドロビンが多数派ですね。

もちろん、ラウンドロビン以外の分散方式が幾重にも連なっているはずですが。

ちなみに、ブラウザのキャッシュを確認する方法ですが、

コマンドプロンプトで「ipconfig /displaydns」となります

ぶらぶらと出てくるものがキャッシュです。

キャッシュクリアは「ipconfig /flushdns」です。

追記

rfc3848の規定でDNSラウンドロビンが使えなくなるのでは?という指摘がありました。
このあたり知りませんでした。ご指摘ありがとうございます。

これについて

DNSラウンドロビンをどのように使うのかで意味が変わると解釈できそうです

サーバで障害が発生したとしてもブラウザの切り替えによって切り替えさせたいという目的においては、

DNSラウンドロビンは「あり」

DNSラウンドロビンにて均等に負荷分散したいという目的であれば、

rfc3848を考慮し多少工夫する必要がでてくるのではないかと思います。

ちなみにdmmで利用しているまったくrfc3484rfc3848を意識していないDNSラウンドロビンですが、
いまのところ均等に分散されているようです。

私の環境(Windows7)においてはランダムで選択できているようです。

調べてみたところ

Microsoftの情報ではWindowsVistaとWindows2008では標準でランダムで選択していない。
ランダムで選択させたい場合はレジストリを修正してくださいという記事がありましたので、
意外と影響のあるOSがvistaだけだったりして、均等に分散されているのかもしれませんね。

ところでDNSラウンドロビンで均等に分散させるためのアイデアですが、

うちだとアプライアンスを使ってCNAMEで分散させるとかですかね。

Akamai社のGTMも面白いと思いますし、

Amazon社のroute53(WRR)も今後進化を遂げるとすれば選択肢としてはありかもしれません。


PAGE TOP