進化する広域負荷分散機能

 広域負荷分散は,地理的に離れた場所に同じデータを格納した複数のサーバーを設置して,クライアントに対して負荷の低いサイトのIPアドレスを返信する仕組み。物理的に離れた場所でサイトを運営することで,災害などによって特定のサイトがダウンしても,全体のサービス停止を防げる。さらに,最近はクライアントのWebアクセスを高速化するCDN(content delivery network。同一コンテンツを保存する複数のサーバーを各地に置き,アクセスする際に様々な情報を参照してユーザーにとって最適なサーバーを選択,自動的に接続する。)の基盤技術としても注目されている。
 広域負荷分散は,DNSを利用して実現する。具体的には次の通りだ。クライアントは目的サイトのDNSサーバーに対してIPアドレスを問い合わせる。リクエストを受けたDNSサーバーは,負荷分散装置にIPアドレスを問い合わせる。負荷分散装置は,各サイトの装置と情報を交換して,クライアントに“最適”なサーバーのIPアドレスを返答する。
 この最適なサイトの判断方法は,いくつかある。サイトのレスポンスを測定する方法や,負荷分散装置がトラフィックを監視する方法,経由したプロバイダ網の数(AS(autonomoous system。あるルーティング・ポリシーによって運営されるネットワーク。インターネットは,プロバイダのASが集まった網をいえる。ASホップ数とはすなわち,経由したプロバイダ網の数。)ホップ数)を比較する方法などだ。
 ただし,これらの方法はいずれもクライアントがはじめに問い合わせるローカルDNSと距離を比較した場合。「クライアントがリモート・アクセスをしてローカルDNSに接続した場合などは,思ったような効果が得られない場合もある」
 そのため,各クライアントを負荷分散装置が直接パケットをやり取りして応答時間を測定する方法もある。具体的には,次のようになる(図A)

ローカルDNSに依存しない広域負荷分散の仕組み
図A ローカルDNSに依存しない広域負荷分散の仕組み

 ローカルDNSから問い合わせ要求を受けた負荷分散装置は,クライアントに対して各サイトの装置にある画像ファイルへのリンク情報を記述したHTMLファイルを送信する。このファイルを受け取ったクライアントは各サイトへ画像ファイルを要求。各サイトの負荷分散装置は,即座にクライアントに画像ファイルを返信し,ACK(acknowledgement。受信確認応答。データの受信側が,データエラーなしで受信でき,データの受け入れ準備ができていることを送信側に伝える情報。)により,到達時間を測定する。そして,これらの到達時間を比較することで,最適なサイトを選択。次回のアクセスからは,最適なサイトへ誘導する。到達時間に関する情報は,サブネット単位で蓄積され,すべての負荷分散装置で共有される。

  トップページへ