全4452文字
PR

メリットは実現が容易なこと

 DNSラウンドロビンのメリットは、負荷分散を容易に実現できることだ。DNSサーバーのゾーンファイルにAレコードを追加するだけでよい。ソフトウエアや機器などを追加する必要がない。

 ただしデメリットもある。DNSサーバーはサーバーのIPアドレスを機械的に返すだけでサーバーの状態は分からない。このため障害が発生しているサーバーにもアクセスを振り分けてしまう。

 また、負荷を均等に分散できない可能性がある。例えば、ヘビーユーザーのアクセスが特定のサーバーに集中して、そのサーバーだけ負荷が異常に高まるようなことが起こり得る。

専用装置で負荷を分散

 負荷分散装置を使うのも、負荷を分散させる代表的な方法である(図3)。負荷分散装置は専用のハードウエアにソフトウエアを組み込んだアプライアンス製品が一般的だが、汎用のサーバー機にインストールするソフトウエア製品もある。クラウドのサービスとして提供されている負荷分散装置もある。

図3●クライアントからのアクセスをサーバーに振り分ける
図3●クライアントからのアクセスをサーバーに振り分ける
負荷分散装置のイメージ。クライアントからのアクセスを受け付けてサーバーに振り分ける。リバースプロキシーサーバーとして動作する。
[画像のクリックで拡大表示]

 DNSサーバーのゾーンファイルには、サーバーのドメイン名に対応するIPアドレスとして、負荷分散装置のIPアドレスを登録しておく。リバースプロキシーサーバーとして動作するので、クライアントからは個々のサーバーは見えない。

振り分け方式は大きく2種類

 前述のDNSラウンドロビンはアクセスを順番にしか振り分けられないのに対して、負荷分散装置には様々な振り分け方式がある。

 振り分け方式は静的(スタティック)と動的(ダイナミック)の2種類に大別できる。静的な振り分け方式は、事前に設定したルールに従って振り分ける(図4)。代表例としては、ラウンドロビンと重み付けが挙げられる。

図4●事前に設定したルールでアクセスを振り分ける
図4●事前に設定したルールでアクセスを振り分ける
静的な振り分け方式では、事前に設定したルールに従って振り分ける。その時々の状況は考慮しない。代表例としてはラウンドロビンと重み付けが挙げられる。
[画像のクリックで拡大表示]

 ラウンドロビンはDNSラウンドロビンと同様に順番に振り分ける方式。重み付けはサーバーごとに重みを定義して振り分ける比率を変える方式である。一般的には処理能力が高いサーバーの重みを大きくする。

 一方の動的な振り分け方式は、サーバーの状態をSNMPなどを使ってリアルタイムで監視して振り分け方を変える(図5)。代表例が最小コネクション数である。この方式では処理中のコネクション数が最も少ないサーバーにアクセスを振り分ける。

図5●サーバーの状態でアクセスの振り分け方を変える
図5●サーバーの状態でアクセスの振り分け方を変える
動的な振り分け方式では、サーバーの状態をSNMPなどで調べて振り分け方を変更する。例えば最小コネクション数では、処理中のコネクション数が最も少ないサーバーにアクセスを振り分ける。
[画像のクリックで拡大表示]

 そのほか、接続中のクライアント数が少ないサーバーにリクエストを振り分ける方式(最小クライアント数)、CPUやメモリーなどの使用率が最も低いサーバーに振り分ける方式(最小サーバー負荷)、応答時間が最も短いサーバーに振り分ける方式(最小応答時間)などがある。