ロード バランサは、ネットワーク トラフィックを (オンプレミスまたはクラウド上の) リソース間で動的に分散させ、アプリケーションをサポートします。

ロード バランサは、トラフィック プロキシとして機能するソリューションで、ネットワーク トラフィックやアプリケーション トラフィックを複数のサーバのエンドポイント間で分散させます。トラフィック量のピーク時に処理能力を分散させ、アプリケーションの信頼性を高める目的で使用するものです。ロード バランサを使用することで、個々のサービスやクラウドにかかる負担が減ってアプリケーションの総合的なパフォーマンスが向上し、異なるコンピューティング サーフェスに需要を分散させることでアプリケーション セッションやネットワーク セッションを維持しやすくなります。

最新のアプリケーションでは、同時に数百万ものセッションを処理し、それぞれのユーザに正しいテキスト、ビデオ、画像などのデータを返すスピードと信頼性が求められます。こうした膨大なトラフィック量に対応するため、ほとんどのアプリケーションには多数のリソース サーバがあり、サーバ間で重複するデータを持っています。

ロード バランシングは、アプリケーションをサポートするリソースのネットワーク全体にネットワーク トラフィックを動的に分散させます。ロード バランサは、ユーザとサーバ群の間に設けられるデバイスまたはサービスであり、目に見えない調整役として、すべてのリソース サーバが等しく利用されるようにします。使用量や需要が高い時間帯でも信頼性と可用性を高め、アップタイムを増やし、より良いユーザ エクスペリエンスを提供します。

ロード バランシングがもたらすメリット

ユーザや顧客は、ほぼリアルタイムで情報を検索し、トランザクションを実行できることを当然のこととして期待しています。たとえそれが需要や使用量がピークに達する時間帯であっても、レスポンスが遅れたり、その信頼性や一貫性が失われたりするなら、顧客は離れ、二度と戻ってこないかもしれません。コンピューティングのニーズが急増し、受信した需要、つまり「ロード」 (負荷) が高すぎて対処しきれなくなると、内部サーバやサーバ システムに大きな混乱が生じます。

ロード バランサを使用することには、次のようなメリットがあります。

  • アプリケーションの可用性: ユーザは内外を問わず、可用性の高いアプリケーションを必要としています。アプリケーションや機能がダウンしたり、遅延したり、フリーズしたりすると、貴重な時間が失われます。そうした煩わしさが、競合への乗り換えにつながることもあります。
  • アプリケーションの拡張性: チケット販売会社を例に考えてみましょう。人気の高いライブ チケットの発売予定日時が発表されたとします。チケットを求めて、数千人あるいはそれを超えるユーザがこの会社のサイトにアクセスすることが予想されます。ロード バランサがなければ、サイトを利用できるのは、1つのサーバまたは複数あるうちの最初のサーバで処理できるユーザのみであり、この大きな需要のほんの一部しか満たせません。一方、ロード バランサを導入してこのトラフィックの大幅な急増に備えれば、リクエストやトラフィックを他の利用可能なコンピューティング サーフェスに振り分けることができます。つまり、より多くの客が希望するチケットを購入できるわけです。
  • アプリケーションのセキュリティ: ロード バランシングによって、組織はセキュリティ ソリューションを拡張することもできます。その主な手法の1つは、複数のバックエンド システム間でトラフィックを分散させることで、アタック サーフェスを最小化し、リソースを使い果たしたりリンクにアクセスが集中したりする事態を防ぎます。あるシステムが脆弱であったりすでに侵害されていたりする場合には、トラフィックを他のシステムにルーティングすることもできます。さらに、特定のサーバが脆弱になった場合は、サーバ間でトラフィックをルーティングし直すことにより、DDoS攻撃への対策をより一層強化できます。
  • アプリケーションのパフォーマンス: 以上のメリットをもたらすロード バランサにより、アプリケーションのパフォーマンスが向上します。つまり、セキュリティを強化し、アップタイムを最適化し、需要のピークに応じて拡張させることで、アプリケーションが想定どおりに、そして顧客やユーザの期待どおりに機能します。

ロード バランシング アルゴリズム

ロード バランシング アルゴリズムは、その動作方式によって静的または動的の2種類に分けられます。静的ロード バランシングでは、分散型ネットワーク内の既存サーバのパフォーマンス能力に関する情報を持つアルゴリズムを使って、各サーバが受信する負荷を測定します。一方動的ロード バランシングでは、ランタイム中に減らす必要がある負荷の量と、その負荷をどのシステムに振り分けるかを動的に特定します。こちらは、受信する負荷の変動が大きいシステムに適した方式です。

一般的なロード バランシング アルゴリズムの種類をいくつかご紹介します。

  • ラウンド ロビン: このアルゴリズムは、Domain Name System (DNS)を使って、分散対象のサーバに順番にトラフィックを回していきます。(注: DNSロード バランシングは動的なソリューションの場合もあります。)
  • しきい値: このアルゴリズムは、管理者が設定したしきい値に基づいてタスクを分散させます。
  • ランダムな2択: いわゆる「power of two」アルゴリズムで、ランダムに選ばれた2つのサーバから1つを選んで、それにリクエストを送信します。その際、設定に応じて最小接続数アルゴリズムか最短時間アルゴリズムが適用されます。
  • 最小接続数: 新たなリクエストは、その時点でクライアントとの接続数が最も少ないサーバに送信されます。各サーバの相対的な処理能力を踏まえた上で、接続数が一番少ないサーバまたは使用している帯域幅やリソース量が一番少ないサーバを判断します。
  • 最短時間: このアルゴリズムでは、応答時間が最短かつ有効な接続数が最も少ないという原則を満たすサーバを選んで、リクエストを送信します。
  • URLハッシュ: このアルゴリズムは、クライアントからのリクエストに含まれるURLをベースにハッシュ値を生成します。リクエストはこのハッシュ値に応じて、サーバに転送されます。ロード バランサによってURLのハッシュ値がキャッシュに保存され、以降同じURLを使用するリクエストはキャッシュにヒットするので、同じサーバに転送されます。
  • ソースIPハッシュ: このアルゴリズムは、クライアントのソースIPアドレスと宛先IPアドレスをもとに一意のハッシュ キーを生成し、クライアントを特定のサーバに紐付けます。このキーはセッションが切断されても再度生成できるため、再接続のリクエストが以前に使用したのと同じサーバにルーティングされるようになります。
  • コンシステント ハッシュ: このアルゴリズムは、クライアントとサーバの両方をリング構造にマッピングし、各サーバを処理能力に応じてこのリング上の複数のポイントに割り当てます。クライアントからリクエストを受信すると、リクエストはリング上のあるポイントへとハッシュ化され、時計回りに次の使用可能なサーバへと動的にルーティングされます。

ロード バランシングの仕組み

ロード バランシングは、ユーザ リクエストに静的または動的に応答し、そのリクエストを完了できるバックエンド サーバの中から1つ選んでそれにリクエストを振り分ける仕組みです。いずれかのサーバがダウンした場合には、ロード バランサが残りのオンライン サーバにトラフィックをルーティングします。

ロード バランシングの例

静的ロード バランシングの例: ある企業は、静的なコンテンツが大半を占めるWebサイトをホストしています。このシナリオでは、トラフィックのニーズが予測可能で変動が少ないため、静的ロード バランサが適していると言えます。2つ (もしくはそれ以上) の同一のWebサーバを用意して、その間で静的ロード バランサを使ってトラフィックを分散することができます。

動的ロード バランシングの例: ある企業はトラフィックの変動が大きく、急増したり急減したりします。この変動には予測可能なものもあれば、そうでないものもあります。このようなケースでは、動的ロード バランシングからメリットを得られるでしょう。これに該当する企業の例として、ブラック フライデーのセール日時を発表するEC小売企業、季節性ワクチン摂取のオンライン予約の開始を発表した直後の医療機関、失業保険受給者に毎週決まった曜日にその週の給付金請求を行うよう義務付けている政府の労働機関、自然災害発生時にオンラインでの迅速な対応が求められる救援団体などが挙げられます。これらのケースで起こるトラフィックや需要の急増は、計画的に備えられるものもありますが、そうできないものもあります。こうしたシナリオでは、動的ロード バランシング アルゴリズムを採用すれば、顧客やユーザがアプリやリソースを最も必要としているときに確実にアクセスできるようになります。

さまざまなロード バランサの種類

ロード バランサにはさまざまな種類があり、それぞれ機能が異なりますが、開放型システム間相互接続 (OSI)モデルと呼ばれるアーキテクチャ内に存在します。このモデルには7つの層があります。ネットワーク ファイアウォールは、このうちの第1~3層 (第1 ― 物理層、第2 ― データ リンク層、第3 ― ネットワーク層) に当たります。一方、ロード バランシングは、第4~7層 (第4 ― トランスポート層、第5 ― セッション層、第6 ― プレゼンテーション層、第7 ― アプリケーション層) で動作します。一般にロード バランサが使用されるのは、第4層と第7層です

  • 第4層のロード バランサは、ネットワークとトランスポート層のプロトコル (IP、TCP、FTP、UDP) からのデータをもとにトラフィックを振り分けます。
  • 第7層のロード バランサは、アプリケーション層のプロトコルに含まれるデータに基づいてリクエストを分散させます。それには、HTTPヘッダ、Cookie、URI、SSLセッションID、HTMLフォーム データなどが含まれます。また、特定のパラメータの値など、アプリケーション メッセージ内にあるデータをもとにルーティングを決定することもできます。第7層のロード バランシングには、コンテンツの切り替え機能が加わります。

クラウドベースのロード バランサ

クラウドベースのロード バランサは、トラフィックの急増やサーバ使用の最適化に対応する単なるトラフィック制御装置ではありません。クラウドネイティブのロード バランサなら、予測分析によって、トラフィックのボトルネックが発生する前にそれを可視化できます。このため、企業は自社のITソリューションを最適化するのに有用なインサイトが得られます。

アプリケーション ロード バランシング: 企業がアプリケーションのパフォーマンスや可用性への依存度をますます高めているなかで、アプリケーション ロード バランシングは、スケーリング、運用の効率化、コスト削減を実現するのに役立ちます。

Global Server Load Balancing: 世界各国にユーザや顧客を抱える企業では、ユーザのトラフィックを最も近いエンドポイントに送信するGlobal Server Load Balancingを通じて、負荷処理能力を高めることができます。

DNSロード バランシング: Domain Name System (DNS) でドメインを設定し、そのドメインに対するユーザ リクエストがサーバ マシン群の中で分散されるようにすることをDNSロード バランシングと呼びます。

ネットワーク ロード バランシング: アプリケーション デリバリ コントローラ (ADC) は、物理サーバのプロキシとして機能する物理または仮想アプライアンスで、アプリケーション機能やネットワーク機能を管理します。そして、ネットワーク ロード バランシング ソリューションがそれらを下支えしています。

HTTP/HTTPSロード バランシング: 複数のWebサーバまたはアプリケーション サーバ群にトラフィックを分散させてリソース使用率を最適化するこの技法は、HTTP/HTTPSロード バランシングと呼ばれています。

内部ロード バランシング: 内部ロード バランサは、非公開のサブネットに割り当てるもので、パブリックIPを持ちません。通常、サーバ ファーム内部で動作します。

Diameter: Diameterロード バランサは、ネットワーク内の複数のサーバに信号発信トラフィックを分散させます。これを最もコスト効率よく行う方法の1つは、データ トランスポート層ではなく直径コントロール プレーンを拡張することです。(Diameterロード バランシングも、静的にも動的にもなります。)

ロード バランサ テクノロジ

ロード バランサ ソリューションにはほかの種類もあります。こうしたソリューションは、単独で、またはネットワーク内でクラウドネイティブのロード バランサと組み合わせて使用できます。主なものをいくつかご紹介します。

ハードウェア ロード バランサ: ハードウェア ロード バランサとは、特殊なオペレーティング システムが搭載されている物理デバイスのことです。(通常はオンプレミスの)複数のアプリケーション サーバ間に、Webトラフィックが分散されるようプログラムできます。

ソフトウェア ロード バランサ: ソフトウェア ロード バランサも物理ロード バランサと似たような動作をしますが、ソフトウェア プログラム上で実行されます。このソフトウェアを通じて、静的ロード バランシングと動的ロード バランシングの両方を使ってシングル ポイント障害をなくすことで、トラフィック需要のあらゆる変化に対応し、アプリの可用性を維持します。

仮想ロード バランサ: ハードウェア ロード バランサとソフトウェア ロード バランサを組み合わせたのが、仮想ロード バランサです。ネットワーク トラフィック負荷をハードウェア バックエンド サーバ間で簡単に分散できるアプリケーション デリバリ コントローラ ソフトウェアを使用します。

F5がお手伝いできること

システムの可用性を維持して最適化し、いつでもデータにアクセスできるようにし、ユーザや顧客の満足度を高めるには、組織のニーズに合ったロード バランサを見つけることが大切です。

F5は、静的ソリューションをはじめ、ハードウェア、ソフトウェア、そしてクラウドベースのロード バランサの強みを兼ね備えた統合型グローバル ソリューションまで幅広く、お客様のロード バランサの固有のニーズに対応します。お客様のビジネス ニーズに合ったロード バランシング アルゴリズムとソリューションをご提案します。

BIG-IP Application Servicesは、お客様のデジタル アプリケーション サービスを管理、スケーリング、最適化するための統合型ソリューションです。BIG-IP Local Traffic Manager (LTM) は静的および動的ロード バランシング機能を備え、シングル ポイント障害を防ぎます。F5 BIG-IP DNSはアプリケーション間のロード バランシングをグローバルに適用することで、アプリケーションを常に利用可能な状態にし、顧客のニーズに対応できるようにします。

F5 Distributed Cloud DNS Load Balancerは、シンプルなロード バランシング ソリューションです。信頼性の高い災害復旧機能を備えているため、開発チームはビジネスのイノベーションの促進に専念できます。

F5 Distributed Cloud App Connectは、エッジを含むあらゆる環境のアプリやサービスを安全に接続することで、ロード バランシングを可能にします。

F5は、幅広いロード バランシング ソリューションを取りそろえ、お客様のアプリ、トラフィック、データ、コンピューティング サーフェスを常に最適な状態に保ちます。