ネット君 う~ん、Webページがなかなか表示されない。
インター博士 アクセスが集中しているのだろう。人気のあるWebサイトではたまにそうなるな。
ネット君 こうならないようにする対策ってあるんですかね?
コンピューターのCPUやメモリーといったリソースは限られている。リソースを超えるような処理を要求されると、処理速度は大幅に低下する。例えばWebサーバーなら、アクセスが集中するとレスポンスが低下する。
レスポンスの低下を防ぐ直接的な対策は、サーバーのCPUやメモリーを増強してリソースを増やすことである(図1)。これによりサーバーの処理能力を高める。
ただし1台のサーバーに搭載できるリソースの量には限りがある。そこで同じ処理が可能なサーバーを複数用意してアクセスを分散させる。
このように処理にかかる負荷を分散させることを負荷分散あるいはロードバランシングと呼ぶ。
ネット君 なるほど。サーバーへのアクセスが通る道を分岐させてバランスを取るんですね。
インター博士 うむ。road(道)とload(負荷)を間違っているから0点だ。
DNSサーバーで負荷を分散
負荷分散にはいくつかの方法がある。代表的な方法の1つがDNSラウンドロビン▼である。これはDNSサーバーを使って、Webサーバーなどへのアクセスを分散させる方法だ。
DNSラウンドロビンでは、1つのドメイン名に複数のIPアドレス(Webサーバー)を割り当てる。そして名前解決▼で返すIPアドレスを変えることで、異なるサーバーに順番にアクセスさせる。
具体的には、DNSサーバーのゾーンファイル▼(ゾーン設定)において、1つのドメイン名に複数のAレコード▼を登録する(図2)。DNSサーバーはそのドメイン名の名前解決を要求されると、登録されているAレコードを順番に返す。
例えば「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アドレスを返したら最初に戻る。