この特集のトップページへ
Chapter 4:DNS(Domain Name System) 〜委任と内部ルート〜

COLUMN:ラウンドロビンDNS

 DNSを利用して,簡単なラウンドロビンを実現することができる。ラウンドロビンとは,同一のサービスを提供する複数のサーバーを,クライアントに対して順番に提供する仕組みである。DNSを使用したラウンドロビンは「ラウンドロビンDNS」と呼ばれており,同一のコンテンツを提供する複数のWWWサーバーや,複数のプロキシサーバーなどの負荷を分散させるため,一般的に利用されている。

 ラウンドロビンDNSの利用方法は,非常に簡単である。同じホスト名に対して複数のAレコードを作成するだけでよい。これにより,クライアントはAレコードに指定されたIPアドレスを順番に使用するようになる。具体的には,次のように指定する。

www.dsl.local.INA192.168.1.1
www.dsl.local.INA192.168.1.2

 ラウンドロビンDNSは,簡単に設定できるうえ,追加の費用も必要ないため,同じサービスを提供するサーバーが複数存在する場合には有効な手段である。しかし,ラウンドロビンDNSにも,欠点はある。

 第一に,「指定されたサーバーがダウンした場合に対応できない」ということである。たとえば,上記のように指定していた場合に,192.168.1.2がダウンしたとしよう。このとき,DNSサーバーは192.168.1.2のダウンを知らないため,192.168.1.2の回答を続けてしまう。クライアントは回答に従って接続しようとするため,クライアント側からは,そのサイト全体がダウンしているように見えてしまう。

 第二に,「負荷分散が完全ではない」ということである。DNSサーバーは,指定されているサーバーの負荷状況に応じて回答してくれるわけではなく,単純に設定されているAレコードをすべて回答するだけである。192.168.1.1の負荷が重く,192.168.1.2の負荷が軽い場合でも,どちらに接続するかはクライアント側が決定するため,負荷分散は適切に行われない。

 負荷分散と可用性を向上させるためにラウンドロビンDNSを導入する場合には,上記の2点について十分注意してほしい。プロキシサーバーであれば,JavaScriptを使用してWebブラウザを自動設定することで負荷分散させることもできるので,ラウンドロビンDNSが最も有効な手段であるかどうかを,導入まえに十分確認する必要があるだろう。

 また,より高性能な負荷分散が必要となるならば,Windows 2000 Advanced Serverに搭載されているNetwork Load Balancingや,Windows NT Server 4.0で利用可能なWindows Load Balancing Serviceなどの導入を検討する必要がある。さらに,専用ハードウェアを利用したディスパッチャーも存在するので,必要に応じて検討していただきたい。


PREV 9/14 NEXT