サーバの負荷分散とは
サーバ負荷分散(SLB Server Load Balancing)装置を使うと
あるサイト宛てのトラフィックを受け取り、
様々なサーバにそのトラフィックを転送します。
しかし、ユーザは自分のリクエストと他人のリクエストが
違うサーバで処理されているなど気付きません。
実際、大きなサイトの場合1つのURLの背後には数十台から数百台のサーバが
稼動している場合があります。
負荷分散装置の機能は
- ●あるサイト宛てのネットワークトラフィックを受け取る
- ●トラフィックを個々のリクエストに分割し、
どのサーバに割り振るかを決定する
- ●動作中のサーバを監視して、トラフィックに応答しているかチェックする
応答しているサーバは、振り分けのローテーションから外す
- ●URLやクッキーの読み込みやXMLの解析などにより、
コンテンツに基づいた配信を提供する
サーバの負荷分散化が必要な理由
稼動中のWebサーバが能力の限界に達した時に
メモリの追加やCPUのアップグレードで解決するのは、
一時的には運用状態が良くなりますが、
現在のWebの状況では長くは続かないでしょう。
ハードウェアぷラットフォームやサーバOSの拡張性には限界があり、
Webサーバがダウンしたときの復旧が困難になったり、
復旧時間が長くなったりします。
結局はWebサーバの増強で
障害から復旧するまでの時間(傷害時間)の問題は解決できないのです。
ちなみに、冗長化しているWebサーバシステムでも
単独の巨大なWebサーバよりは早いですが、障害時間ができたりします。
なので、Webサーバの運営にダウンは”つきもの”です。
DNSラウンドロビン
DNSラウンドロビンは
サーバ負荷分散技術が確立されるまで主に使われてきたものです。
(今でもつかわれていますが・・・。)
DNS(Domain Name System)の機能を利用して、
1つのホスト名に複数のIPアドレスを結びつけます。
その複数のIPアドレスにユーザからのトラフィックをほぼ均等に振り分けます。
例えば、
www.benly.comというホスト名にAというレコードがあり、このホスト名に
- 192.168.3.1
- 192.168.3.2
- 192.168.3.3
の3つのIPアドレスが割り当てられたとします。
これを、3台のDNSサーバに割り当てる設定は
www.benly.com IN A 192.168.3.1
IN A 192.168.3.2
IN A 192.168.3.3
となります。
DNSラウンドロビンからサーバ負荷分散技術へ移行する理由は
管理者が予測できない負荷の分散があったり、
キャッシュの問題やサーバ障害への耐性が無いなどの問題があるためです。
|
【用語解説】
冗長化
システムに障害が発生しても
予備の機材でシステムの機能を
継続できるようにすること。
フェイルオーバ
冗長化されたシステム上で
activeなノード(サーバ、ネット機器)が
停止した際に自動的に
バックアップすること
一般的に手動で切り替えることは
スイッチングオーバという
ヘルスチェック
監視対象の機器が正常に
稼動しているかを
チェックすること
Webサーバに対し、Pingが通るか
TCPの80番ポートに接続可能か
httpの応答はあるかなどを確認すること
多くの場合、
ヘルスチェックに失敗すると
管理者に監視失敗の警告が
届くように設定されている
死活監視とも言われる
|