負荷分散とは?

負荷分散とは、サーバーファーム内にある複数のサーバー間においてネットワークトラフィックやアプリケーショントラフィックを系統的かつ効率的に分配することと定義されます。各ロードバランサーは、クライアントデバイスとバックエンドサーバー間に配置され、着信リクエストを受信した後、リクエストに応えることができる利用可能なサーバーにそれらを配信します。

その他の負荷分散に関するトピックを見る

ロードバランサーとは何か、そしてその仕組みとは?

ロードバランサーは、次のように定義されます。

  • 物理デバイス、特殊なハードウェア上で動作する仮想化インスタンス、またはソフトウェアプロセス。
  • アプリケーションデリバリーコントローラ(ADC)に組み込まれている機能であり、ホスティングされる場所に関係なく、3層構成のWebサービスおよびマイクロサービスベースのアプリケーションのパフォーマンスおよびセキュリティをより幅広く向上させるように設計された機能。
  • 多数の負荷分散アルゴリズム(ラウンドロビン、サーバー応答時間、最小接続方式など)を利用して、現在の要件に沿ってトラフィックを分散させる機能。
     
ロードバランサーは、バックエンドリソースの健全性を調べた上で、リクエストに応えることができないサーバーにはトラフィックを送信しません。

それがハードウェアであるかソフトウェアであるか、またはそれがいかなるアルゴリズムを使用しているかに関わらず、ロードバランサーはリソースプール内の異なるWebサーバーにトラフィックを分散させることで、いかなる単一サーバーも過負荷状態や信頼性の低い状態にならないようにします。ロードバランサーは、サーバーの応答時間を効果的に最小化すると同時に、スループットを最大化します。

ロードバランサーの役割は交通警官の役割に例えられることがあります。これは、ロードバランサーが、任意の時点で適切な場所にリクエストをシステマティックにルーティングすることにより、コストのかかるボトルネックや予期せぬ事態を防ぐ役割を担うためです。ロードバランサーは最終的に、複雑なIT環境と、そのような環境内で発生する入り組んだワークフローを維持するために必要となるパフォーマンスとセキュリティを提供する必要があります。

負荷分散は、モダンなマルチアプリケーションおよびマルチデバイス型のワークフローから送られる多数のリクエストを処理するための最もスケーラブルな方法です。今日のデジタルワークスペース内における多数の異なるアプリケーション、ファイル、デスクトップへのシームレスなアクセスを可能にするプラットフォームと連携することで、負荷分散機能は、より一貫性のある信頼性のあるエンドユーザーエクスペリエンスを提供します。

ハードウェアベースとソフトウェアベースのロードバランサーの比較

ハードウェアベースのロードバランサーには、次のような特徴があります。

  • 一般的に高性能なアプライアンスであり、さまざまなタイプのアプリケーションからの数ギガビット単位のトラフィックをセキュアに処理する能力を備えています。
  • 同アプライアンスには、仮想化機能が組み込まれている場合もあり、この機能を使うと多数の仮想ロードバランサーインスタンスを同一ハードウェア上に統合できます。
  • これにより、より柔軟なマルチテナントアーキテクチャを実現することやテナントの完全な隔離が可能になります。

一方、ソフトウェアベースのロードバランサーには、次のような特徴があります。

  • ハードウェア形式と類似の機能を提供し、ハードウェアにはない優れた柔軟性を備えているため、ハードウェア形式を完全に置き換えることができます。
  • 一般的なハイパーバイザー上で、コンテナ内で、またはベアメタルサーバーのオーバーヘッドを最小限に抑えたLinuxプロセスとして実行できるため、ユースケースや技術的要件に応じて高度な設定が行えます。
  • スペースを節約し、ハードウェア費用を削減できます。

L4、L7およびGSLBロードバランサーの説明

デジタルワークスペースでの日常的な従業員エクスペリエンスは、大きく変化する可能性があります。生産性は、アカウントのセキュリティ対策から、使用する多くのアプリケーションのパフォーマンスの変化に至るまで、あらゆるものに対応して変動する可能性があります。たとえば、営業担当者の70%以上は、複数の異なるアプリケーションからデータにアクセスするために苦労していますが、このタスクは、十分でない負荷分散を原因とする応答性の低下により悪化する可能性があります。

これは、デジタルワークスペースが極めてアプリケーションドリブン型であることを意味します。特にSaaS(Software-as-a-Service)アプリケーションに対する同時使用要求が増大し続けているため、適切な負荷分散が実施されない場合、エンドユーザーにアプリケーションを確実に配信することが困難になる可能性があります。また、すでに複数のシステム、インターフェイス、セキュリティ要件のナビゲートに苦労している場合は、パフォーマンスの低下やサービス停止のようなさらなる負担を負うことになります。

より優れた一貫性を促進し、絶えず変化するユーザーの要求に対応するためには、サーバーリソースがOSIモデルのレイヤー4および/またはレイヤー7で利用可能であること、かつ負荷分散されていることが必要となります。

  • レイヤー4(L4)ロードバランサーは、トランスポートレベルで動作します。これは、ロードバランサーが、パケットが使用するTCP/UDPポートや送信元と送信先のIPアドレスに基づいてルーティングを決定できることを意味します。L4ロードバランサーはネットワークアドレス変換を行いますが、各パケットの実際の中身は検査しません。
  • レイヤー7(L7)ロードバランサーは、OSIモデルの中で最上位の階層であるアプリケーションレベルで動作します。L7ロードバランサーは、サーバーファーム全体にリクエストを分散させる方法を決定する際に、L4ロードバランサーよりも幅広いデータ(HTTPヘッダーやSSLセッションIDなど)を評価できます。

L7ロードバランサーはL4ロードバランサーよりも多くの計算リソースを必要としますが、サーバーへのクライアントリクエストを理解して処理するためのコンテキストが追加されるため、L7ロードバランサーの方がより効率的となります。

広域負荷分散(GSLB)は、基本的なL4およびL7の負荷分散機能に加えて、複数のデータセンターを通じていずれかのタイプの機能を拡張することで、大量のトラフィックを効率的に分散し、エンドユーザー向けのサービスの低下を防止できます。

複数の地域にあるクラウドデータセンターでアプリケーションをホスティングするケースがますます増えているため、GSLBを使用することで、IT組織はあらゆるデバイスや場所に対して、より高い信頼性とより低い遅延でアプリケーションを配信できるようになります。これにより、エンドユーザーがデジタルワークスペース内で複数のアプリケーションやサービスをナビゲートする際に、より一貫性のあるエクスペリエンスを確保できるようになります。

一般的な負荷分散アルゴリズムにはどのようなものがありますか?

ロードバランサーまたはそれを含むADCは、特定のアルゴリズムに従って、サーバーファーム全体でリクエストがいかに分散されるかを決定します。このアルゴリズムに関しては、非常にシンプルなものから非常に複雑なものまで多くの選択肢があります。

ラウンドロビン

ラウンドロビンとは、仮想サーバーが回転リストに基づいて個々のクライアントリクエストを別のサーバーに転送することを保証するシンプルなテクニックです。この方式はロードバランサーにとって実装が容易ですが、サーバー上に存在している既存の負荷を考慮しないという欠点があります。このため、サーバーがプロセッサを多用したリクエストを大量に受信すると、過負荷状態になる危険性があります。

最小接続方式

ラウンドロビンが(回転リスト内でのサーバーの位置を考慮するだけで)サーバーの現在の負荷を考慮しないのに対して、最小接続方式ではそのような評価を行うことで、その結果として、通常優れたパフォーマンスを提供します。最小接続方式に従う仮想サーバーは、アクティブな接続数が最も少ないサーバーにリクエストを送信しようとします。

最小応答時間方式

この方式は最小接続方式よりも洗練されたアルゴリズムであり、サーバーによる動作状態監視リクエストへの応答にかかった時間に基づいています。応答の速さは、サーバーにどれだけ負荷がかかっているかや、予測される全体的なユーザーエクスペリエンスを示す指標となります。一部のロードバランサーでは、各サーバーのアクティブな接続数を考慮する場合もあります。

最小帯域幅方式

最小帯域幅方式は比較的シンプルなアルゴリズムであり、メガビット/秒(Mbps)単位で測定される最小のトラフィック量を現時点で提供しているサーバーを探します。
最小パケット方式

最小パケット方式は、指定された時間帯において最も少ないパケットを受信したサーバーを選択するものです。

ハッシング方式

この方式は、着信パケット内に含まれているさまざまなデータのハッシュ値に基づいて決定を行うものです。これには、着信パケット内に含まれている送信元/送信先のIPアドレス、ポート番号、URL、ドメイン名などの接続情報やヘッダー情報が含まれます。

カスタムロード方式

カスタムロード方式を使うと、ロードバランサーがSNMP経由で個々のサーバーの負荷を問い合わせることが可能となります。管理者は、問い合わせの対象となるサーバーの負荷(CPU使用量、メモリ、応答時間など)を定義し、リクエストに合わせてそれらを組み合わせることができます。

負荷分散が必要な理由は?

負荷分散機能を備えたADCを使うことで、IT部門はサービスのスケーラビリティと可用性を確保できるようになります。また、それが持つ高度なトラフィック管理機能を使うことで、企業や組織は、リクエストを各エンドユーザー対して適切なリソースへとより効率的に誘導できるようになります。ADCは他にも多くの機能(暗号化、認証、Webアプリケーションファイアウォールなど)を提供しており、環境全体で多くのアプリケーションやサービスを安全に保護、管理、監視するための単一制御点を提供することで、最良のエンドユーザーエクスペリエンスを保証します。

ロードバランサーの詳細はこちら

次のステップ