負荷分散装置(ロードバランサー)の概要まとめ

今、負荷分散装置(ロードバランサー)について勉強しているのですが、ベースの知識として忘れないようにメモを取ることにします。
ロードバランサーはWEBサービスを提供しているISPなどの大規模なネットワーク環境に、これからはか習う必要になる装置です。

サーバ負荷分散の概要

そもそも。。。
サーバの負荷とはなんでしょうかってことです。

サーバの負荷は => サーバの処理。
ようは、クライアントがサーバにアクセスすることによってサーバの処理が発生します。

このサーバの処理がサーバの負荷ということです。

  • サーバの処理とは
    CPU、ディスクなどのパーツが動作することによりサーバの負荷になります。
1
  • 分散とは
    分散は同じサービスと一つのサーバで処理するのではなく、複数のサーバに振り分けることにより個々のサーバの負荷を下げる技術です。
    たとえば、100人のクライアントがHTTPサーバへアクセスした際、1台のサーバで運用していると一度に100人のアクセス処理をします。
    しかし、2台、3台と同じHTTPサーバを増設することにより1台のサーバへの負荷を1/2、1/3と負荷を減らすことができます。
    このような処理を負荷分散と呼びます。
2

サーバ負荷分散技術によるメリット

  • サーバへの負荷を分散することによる処理能力向上
    1台のサーバでアクセス処理ををせず、複数台のサーバでアクセス処理を実施することにより、1台にかかる負荷を軽減することが可能になります。
  • 耐障害性の向上
    複数のサーバで運用することにより、いずれかのサーバに障害が発生しダウンしたとしてもそのほかのサーバが稼働しているためクライアント側へのサービスを停止することなく、ほかのサーバでサービスを提供することができます。
  • メンテナンス性の向上
    サーバのパッチ適用、ソフトウェアバージョンアップなど、サービスのメンテナスをする際、複数のサーバで運用することにより1台ずつメンテナンスをすることができ、その間もほかのサーバでサービスを提供することが可能となります。

サーバ負荷分散技術

DNSラウンドロビン

DNSラウンドロビンはDNSサーバによる「名前解決」であり、1つの名前に対し複数のIPアドレスを登録することで、順番に名前解決をする技術です。

クライアントからアクセスするIPアドレスが変わることにより、DNSサーバへの負荷が軽減されます。

3

しかし欠点として

  • #サーバの障害に気づかない
    WEBサーバに障害が発生しても、DNSサーバは気づかずに障害が発生したWEBサーバのIPアドレスを返答し続ける
    結果、クライアントはサーバへアクセスができなくなる
  • #均等に負荷分散されない
    クライアントPCは一度名前解決したDNSの情報を一定時間保持する
    これにより、DNSサーバ間とのトラフィック量がへり、回線のパフォーマンスは向上するが、クライアントPCはキャッシュ
    がなくなるまで同じWEBサーバにアクセスし続けるので負荷分散の妨げとなる

OSタイプ

OSタイプはOSの機能で負荷分散をする機能です。

  • Windows Server2008 = NLB(Network Load Balancing Services)
  • Linux = LVS(Linux Virtual Server)

どちらもOSの機能のとての提供であり、安価で負荷分散を実現することが可能となります。
しかし、小規模なサイトな単純なHTTPの負荷分散は向いているが、複雑で大規模な設定での負荷分散には向いていません。

  • NLBの例として
    複数のサーバはNLB専用共有MACアドレスを共有しており、NLBクラスタ内でそれぞれのサーバは専用のMACアドレスが割り当てられます。

この専用MACアドレスはARPには存在しない共有MACアドレスで応答をします。

4

アプライアンスタイプ

負荷分散装置(ロードバランサ)を用いた負荷分散をすることです。

該当装置

  • F5 Network社 → BIG-IP
  • Citrix社 → NetScalerシリーズ
  • Cisco Systems社 → ACE4700シリーズ

上記の機器は負荷分散に特化した機器で負荷分散を実現するため、複雑なトラフィックを柔軟にします。
アプライアンスタイプの場合、トラフィックを一旦負荷分散装置で受け、それを背後のサーバへ受け流します。

その他の負荷分散

最後にその他の負荷分散の紹介を簡単にします。

  1. 回線負荷分散
    複数用意されている回線をすべて使いたい場合にしようする技術
  2. 広域負荷分散
    物理的、距離的に離れているサーバを負荷分散する技術

それでは!




エンジニアのオンライン学習

ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。

おすすめオンライン教材
自宅で学習ができるオンラインスクール

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUT US
げんき☆ひろき
インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!