基本的なシステム構成

DNSラウンドロビン方式でサーバの負荷分散を行うためには、次の機器が必要です。

  • DNSサーバ
  • 負荷分散するサーバ群

DNSラウンドロビン方式でサーバの負荷分散を行うときの基本的なシステム構成は次の図のようになります。

dns_roundrobin01.png
図 DNSラウンドロビン方式のシステム構成

サーバはWebサーバを想定しています。サーバ1、サーバ2、サーバ3の3台のWebサーバでwww.example.comへのWebアクセスを負荷分散するものとします。
DNSサーバのゾーンファイルには、名前解決のためのAレコードを登録します。同じwww.example.comというホスト名に対するAレコードを複数設定することができます。同じホスト名に対するAレコードが複数あれば、DNSサーバはラウンドロビンで登録されているIPアドレスを順番に応答します。そこで、www.example.comへのWebアクセスを負荷分散するために、Aレコードを3つ登録します。

DNSラウンドロビン方式の通信フロー

DNSラウンドロビン方式で、PC1とPC2の複数のクライアントPCからwww.example.comへのWebアクセスを負荷分散する際の通信フローを考えます。

  1. PC1がDNSサーバに対してwww.example.comのDNSリクエストを送信する
  2. DNSサーバは、DNSリプライとしてwww.example.comのIPアドレス192.168.1.1を返答する
  3. PC1はサーバ1(192.168.1.1)へWebアクセスを行う
  4. PC2がDNSサーバに対してwww.example.comのDNSリクエストを送信する
  5. DNSサーバは、DNSリプライとしてwww.example.comのIPアドレス192.168.1.2を返答する
  6. PC2はサーバ2(192.168.1.2)へWebアクセスを行う

dns_roundrobin02.png
図 DNSラウンドロビン方式の通信フロー

このようにDNSラウンドロビン方式は、DNSサーバでの名前解決の仕組みを用いたサーバの負荷分散を行います。

DNSラウンドロビン方式のメリットとデメリット

DNSラウンドロビン方式での負荷分散のメリットは、次の通りです。

  • 特別な専用装置が不要

複数のサーバを設置して、DNSサーバのゾーンファイルを編集すれば負荷分散が可能です。そのため、低コストでシンプルな負荷分散が可能です。

一方、デメリットは次の通りです。

  • 効率的な負荷分散ができない
  • サーバの障害を検知できない

ラウンドロビン方式では、効率的な負荷分散ができない可能性があります。実際のサーバの負荷を考慮せずに、DNSリプライに対して順番にAレコードのIPアドレスを返すだけなので、サーバの負荷に偏りが生じることがあります。
また、サーバがダウンした場合、DNSサーバ側ではそのサーバダウンを検出できません。DNSサーバのゾーンファイルからそのサーバのAレコードを削除しなければ、ダウンしたサーバのIPアドレスを返してしまいます。そうすると、ダウンしたIPアドレスのDNSリプライを受信したクライアントPCはWebアクセスができなくなります。

より効率的な負荷分散を行うためには、専用の負荷分散装置(ロードバランサー)の導入が必要です。