古いけどスタンダード。DNS ラウンドロビン(2)

こちら に引き続き、負荷分散技術 DNS ラウンドロビンの問題点について説明します。

DNS ラウンドロビンの問題(キャッシュに残る・デメリット)

DNS に複数定義した A レコードは順番通りに回答してゆくのですが、問い合わせを行うクライアント側は DNS 情報のキャッシュ機能を持ったものが存在します。

このキャッシュ機能のおかげで毎回「http://www.google.com の IP アドレスを調べて。。。」等をする必要がなくなり、効率化に貢献しています(Windows もその一つ)。

ただ、前回問い合わせした情報を保持しており、そのクライアントは同じ IP へアクセスする為、常に同じサーバへアクセスすることになってしまいます。この為「完全な分散は不可能」と言えます。

セッションの引継ぎはある程度可能

一方、この仕組みを持っているためにセッション情報の引継ぎは可能です。セッションに関する問題は以下のような例を元に説明します。

a クライアントと A、B サーバがいたとして、a クライアントの要求を最初 A サーバが処理しています。 この時 A サーバでは a クライアントのユーザ認証を完了しています。

ただ、連続して実行される次の要求を B サーバが処理してしまった場合、再度 a クライアントのユーザ認証を要求するところから開始してしまう可能性があります。

しかし、DNS ラウンドロビンの場合、a クライアントは DNS 問い合わせにより「対象 URL の IP アドレスが A サーバである」という情報をキャッシュし続けます。

この為、a クライアントは常に A サーバへ接続しにゆく為、ある程度のセッション問題は解決されます。もちろんキャッシュが消えてしまった場合は B サーバへ接続がゆく可能性がある為、注意が必要です。

Published by in 負荷分散 using 55 words.