全4452文字
PR

ネット君 う~ん、Webページがなかなか表示されない。

インター博士 アクセスが集中しているのだろう。人気のあるWebサイトではたまにそうなるな。

ネット君 こうならないようにする対策ってあるんですかね?

 コンピューターのCPUやメモリーといったリソースは限られている。リソースを超えるような処理を要求されると、処理速度は大幅に低下する。例えばWebサーバーなら、アクセスが集中するとレスポンスが低下する。

 レスポンスの低下を防ぐ直接的な対策は、サーバーのCPUやメモリーを増強してリソースを増やすことである(図1)。これによりサーバーの処理能力を高める。

図1●アクセスを分散させてレスポンスの低下を防ぐ
図1●アクセスを分散させてレスポンスの低下を防ぐ
アクセスの集中によるレスポンスの低下を防ぐ方法の1つはWebサーバーを増強すること。ただしそれには限界がある。そこで複数のWebサーバーを用意してアクセスを分散させることでWebサイト全体のレスポンス低下を防ぐ。
[画像のクリックで拡大表示]

 ただし1台のサーバーに搭載できるリソースの量には限りがある。そこで同じ処理が可能なサーバーを複数用意してアクセスを分散させる。

 このように処理にかかる負荷を分散させることを負荷分散あるいはロードバランシングと呼ぶ。

ネット君 なるほど。サーバーへのアクセスが通る道を分岐させてバランスを取るんですね。

インター博士 うむ。road(道)とload(負荷)を間違っているから0点だ。

DNSサーバーで負荷を分散

 負荷分散にはいくつかの方法がある。代表的な方法の1つがDNSラウンドロビンである。これはDNSサーバーを使って、Webサーバーなどへのアクセスを分散させる方法だ。

 DNSラウンドロビンでは、1つのドメイン名に複数のIPアドレス(Webサーバー)を割り当てる。そして名前解決で返すIPアドレスを変えることで、異なるサーバーに順番にアクセスさせる。

 具体的には、DNSサーバーのゾーンファイル(ゾーン設定)において、1つのドメイン名に複数のAレコードを登録する(図2)。DNSサーバーはそのドメイン名の名前解決を要求されると、登録されているAレコードを順番に返す。

図2●名前解決のIPアドレスを順番に変えてアクセス先を分散
図2●名前解決のIPアドレスを順番に変えてアクセス先を分散
DNSラウンドロビンはDNSサーバーを使った負荷分散。あるドメイン名に対応するIPアドレス(Aレコード)をゾーンファイルに複数登録しておく。これにより名前解決の際に返すIPアドレスを順番に変えて、サーバーへのアクセスを分散させる。
[画像のクリックで拡大表示]

 例えば「www.example.jp」に192.168.1.1、192.168.1.2、192.168.1.3という3つのAレコードを登録したとする。すると1回目の問い合わせには192.168.1.1、2回目は192.168.1.2、3回目は192.168.1.3といった具合に異なるIPアドレスを順番に返す。最後尾に登録されているIPアドレスを返したら最初に戻る。