1.「DNSラウンドロビン」とロードバランサ
1)DNSラウンドロビン
・すべてのリクエストを平等に扱い、各サーバへ順番に割り当てていく方法。
・単純で実装が簡単
・サーバの処理負荷がリクエスト毎に異なるため特定のサーバが高負荷になる。
・割当先サーバが故障していても検知しない
・サーバの追加等を行った場合でも設定変更の反映に時間がかかり、古い設定情報
に基づいてアクセスが行われる危険性がある。
2)ロードバランサ
・サーバの負荷状況やサーバの能力別など、複数の方法で割り当てを変更する
ことができる。
・高価である。
2.ロードバランシングの機能
1)ロードバランシング(負荷分散)
「ラウンドロビン」
・事前に登録された複数のサーバに対して、順番にリクエストを割り当てていく
アルゴリズム。
「加重ラウンドロビン(重み付けラウンドロビン)」
・サーバの処理能力に応じて、重み付けをしたうえでリクエストを割り当てて
いくアルゴリズム。
「最小接続」
・接続しているコネクション数が少ない順にリクエストを割り当てを行う。
「最小レスポンス」
・応答速度が短い順にリクエストの割り当てを行う。
2)SSLオフロード
複数のWebサーバを運用する際に、SSL証明書は各サーバ単位で必要となり、
煩雑な作業が発生するがそれをロードバランサ上で集中管理が可能となる。
また、SSLの復号作業はWebサーバに負荷を発生させる。その作業をロード
バランサ上で集中することでWebサーバの負荷を軽減するころができる。
3)パーシステンス(セッション維持)
・ロードバランサでは、Webアプリケーションのセッションを維持するために、
同一のクライアントからのリクエストを同一サーバに振り分ける機能を
パーシステンスと呼ぶ。
・パーシステンスの方法には下記の方法がある。
「Source address affinity persistence」
送信元IPアドレスをチェックして、転送先のサーバを決定する。
「Cookie persistence」
Cookie情報をもとに、転送先のサーバを決定する。
「SSL persistence」
SSLセッションIDをもとに転送先のサーバを決定する。
※そのほかレイヤー7によるクライアント識別などがある。
4)ヘルスチェック(監視)
・ロードバランサがサーバの稼働状況をチェックする。
・ロードバランサは外部クライアントからのリクエストを受け、内部ネット
ワークの複数サーバに振り分ける。
・そこでダウンしているサーバにリクエストを振り分けないよう、サーバが
ダウンしていないか常に確認を行っている。
・チェック方法には「アクティブ型」と「パッシブ型」の2通りがある。
「アクティブ型」
L3チェック
ICMP echoリクエストを送信し、echoリプライが返ってくるかどうか
確認する。
L4チェック
TCPのハンドシェイクを行い、サーバの動作を確認する。
L7チェック
HTTP等のアプリケーションレイヤで疑似的なリクエストを出し、
サーバのレスポンスを確認する。
「パッシブ型」
クライアントからのリクエストに対するサーバのレスポンスを監視し、
エラー応答等が発生したときに、他のサーバにリクエストを再送する
という処理を行う。
【参考サイト】
「f5ネットワークス」
https://f5.com/Portals/1/PDF/JAPAN/download/LB_Basic_20150209.pdf
https://www.f5.com/ja_jp/services/resources/glossary
https://f5.com/glossary/glossary105-21587