負荷分散でできること

インフラの負荷分散が何かということについて こちら で説明しました。今回はこの負荷分散でできることについて考えてみます。

負荷分散でできること

インフラで言うこの負荷分散では何ができるのでしょうか。これまで説明してきたことと同じですが「[待ち行列]」とは若干異なります。

通常のレジで例えられる待ち行列ではユーザが自ら選んで複数用意されたレジに並び精算します。ただ、インフラの負荷分散ではユーザに自ら選ばせるようなことはしません。

スターバックス等、気のきいた飲食店ではお客さんが入るとスタッフの方がやってきて「あなたはこっちの列へ、あなたはこっちの列へ並んでください」と指示してくれますが、それと同じようなことをしてくれます。

具 体的に言うとまず一つのサーバ(バーチャルサーバと呼びます)が一番前に立ちます。そしてエンドユーザからのアクセスがあった時このバーチャルサーバは後 ろに控えているサーバ(リアルサーバと呼びます)へ事前に取り決めたスケジューリングアルゴリズム(コネクションの一番少ないサーバ、負荷の一番少ない サーバ等)で中継します。

現実の待ち行列と決定的に異なるのはエンドユーザに気づかれないことです。バーチャルサーバはパケットをリアルサーバへ中継し、リアルサーバはこのバーチャルサーバへパケットを返信します。最後にバーチャルサーバは自身で処理したようにパケットを書き換えてエンドユーザへ返す為、エンドユーザが意識すること無く処理が完結します。

この「エンドユーザに気づかれない」と言う点は非常に重要で、この為にリアルサーバが実際に何台いようともサーバ台数が変わろうとも気づかれることはありません。このことが生み出す付加機能は「冗長構成」にもなり得るということです。

クラスタリングソフトウェアは通常「1台のサーバを起動しておいて、ダウンするようなことがあれば他のサーバを起動する」という仕組みですがこの「1台目(マスタ)の停止の判断~他のサーバの起動」までにはタイムラグがどうしても生じてしまいます(2分程度等)。

た だ、負荷分散の場合、基本的には全てが既に「起動している(アクティブ)」な状態になります。このうち 1台が停止した時はその 1台を切り離し、稼働しているサーバに新しいリクエストを割り振ります。この「切り離し~新しいリクエストの割り振り」には時間を必要としません(数秒程 度等)。

このため、負荷分散には付加機能として強力な「冗長構成」があると言えます。これこそ IT ならではの機能ですね。

Published by in 負荷分散 using 21 words.