全4292文字
PR

ネット君 サーバーの冗長化って、複数のサーバーを用意しておくってことですよね?

インター博士 確かにその通り。だが用意しておくだけじゃだめだ。複数あるサーバーのどれに処理を割り振るのか。それが重要だな。

 複数のサーバーを用意して耐障害性を高めることをサーバーの冗長化と呼ぶ(図1)。複数のサーバーに処理を割り振ることで、1台のサーバーで障害が発生した場合でもサービスを提供し続けられるようにする。また、1台のサーバーに処理を集中させないので負荷も分散できる。

図1●複数のサーバーを用意して障害に備える
図1●複数のサーバーを用意して障害に備える
サーバーの冗長化のイメージ。複数のサーバーを用意して処理を分散させる。これにより、どれか1台のサーバーで故障が発生してもサービスを提供し続けられる。負荷分散にもなる。
[画像のクリックで拡大表示]

 サーバーの冗長化および負荷分散のポイントは「要求された処理をどのサーバーに割り振るか」である。いろいろな方法があるが、まずはDNSラウンドロビンを解説しよう。

異なるサーバーに順番に割り振る

 DNSラウンドロビンは権威DNSサーバー(以下、DNSサーバー)を使ってWebサーバーなどへのアクセスを分散させる方法だ。

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

 具体的には、DNSサーバーのゾーンファイル(ゾーン設定)において、1つのホスト名に複数のAレコードを登録する(図2)。こうすると、DNSサーバーはそのホスト名の問い合わせに対して、AレコードのIPアドレスを順番に返すようになる。

図2●DNSサーバーには複数のIPアドレスを登録可能
図2●DNSサーバーには複数のIPアドレスを登録可能
DNSサーバーのゾーンファイルには、特定のホスト名に複数のIPアドレス(Aレコード)を登録できる。
[画像のクリックで拡大表示]