負荷分散とは同じ機能を持つ複数のシステムを用意し、それぞれがこなす仕事の量が均一になるよう処理を振り分ける技術や動作のこと。ネットワークの場合、並列稼働する複数のサーバーを置いて、特定の機器にアクセスが集中しないようにすることを指す。

 負荷分散におけるアクセスの振り分けには静的方式と動的方式の2種類がある。静的方式では接続先サーバーの状態に関係なく、あらかじめ定められたルールに基づいて振り分ける。一方で動的方式の場合、サーバーの状態に応じてアクセスを振り分ける。

到着順に振り分ける

 静的方式の代表がラウンドロビンだ。ラウンドロビンでは並行稼働する複数のサーバーに対し、順番にアクセスを振り分けていく(PICT1)。例えばA、B、Cという3台のサーバーを並行稼働させているとする。最初のアクセスはAに、2番目はB、3番目はCと振り分け、4番目は再びAに割り振るという具合だ。

PICT1●到着順に接続先を割り振る
PICT1●到着順に接続先を割り振る
(イラスト:なかがわ みさこ)
[画像のクリックで拡大表示]

 この方法では、サーバーの稼働状況によっては端末への応答が大きく遅れる。接続するサーバーを順番に変えるだけなので、極端な場合、ダウンしたサーバーに誘導される可能性がある。

 ラウンドロビンに基づくWebサーバーの負荷分散に「DNSラウンドロビン」がある。DNSラウンドロビンではDNS(Domain Name System)の名前解決を利用して、負荷分散を実現する。DNSは通常、ホスト名に対応するIPアドレスを1対1で登録している。1つのホスト名への問い合わせに対し1つのIPアドレスを返す。しかしDNSラウンドロビンの場合、1つのホスト名に対し複数のIPアドレスを登録する。クライアントから名前解決の要求が来た際には、登録した複数のIPアドレスを順に回答していく。接続元のクライアントごとに異なる宛先を案内することで接続先のサーバーを振り分ける仕組みだ。

 DNSラウンドロビンのメリットの1つは実装が容易である点だ。外部に公開するDNSサーバーの登録情報を書き換えるだけで、複数のサーバーへアクセスを分散させられる。専用の機器などを用意する必要が無い。

この先は日経クロステック Active会員の登録が必要です

日経クロステック Activeは、IT/製造/建設各分野にかかわる企業向け製品・サービスについて、選択や導入を支援する情報サイトです。製品・サービス情報、導入事例などのコンテンツを多数掲載しています。初めてご覧になる際には、会員登録(無料)をお願いいたします。