GNU/Linux >> Linux の 問題 >  >> Ubuntu

負荷分散とは何ですか?定義とその仕組み

はじめに

最新のWebサイトとアプリケーションは、大量のトラフィックを生成し、同時に多数のクライアント要求を処理します。負荷分散は、これらの要求を満たすのに役立ち、Webサイトとアプリケーションの応答を高速かつ信頼性の高いものに保ちます。

この記事では、負荷分散とは何か、どのように機能するか、どの種類の負荷分散が存在するかを学習します。

負荷分散の定義

負荷分散は高いネットワークトラフィックを分散します 複数のサーバーにまたがって、組織がトラフィックの多いワークロードに対応するために水平方向に拡張できるようにします。負荷分散により、クライアントリクエストが利用可能なサーバーにルーティングされ、ワー​​クロードが均等に分散され、アプリケーションの応答性が向上するため、ウェブサイトの可用性が向上します。

負荷分散はレイヤー4〜7に適用されます 7層のオープンシステム相互接続( OSI ) モデル。その機能は次のとおりです。

  • L4。 ネットワークデータとトランスポート層プロトコル(IPアドレスやTCPポートなど)に基づいてトラフィックを転送します。
  • L7 。コンテンツスイッチングを負荷分散に追加し、HTTPヘッダー、URI統一リソース識別子、SSLセッションID、HTMLフォームデータなどの特性に応じてルーティングを決定できるようにします。
  • GSLB。 Global Server Load Balancingは、L4およびL7機能をさまざまなサイトのサーバーに拡張します。

負荷分散が重要な理由

情報の流れを維持するには、負荷分散が不可欠です。 サーバーとウェブサイトへのアクセスに使用されるユーザーデバイス(コンピューター、タブレット、スマートフォンなど)の間。

いくつかの負荷分散の利点があります:

  • 信頼性。 ウェブサイトやアプリは、トラフィックが多い場合でも優れたUXを提供する必要があります。ロードバランサーは、データを効率的に移動し、アプリケーション配信リソースの使用を最適化し、サーバーの過負荷を防ぐことで、トラフィックの急増を処理します。そうすれば、ウェブサイトのパフォーマンスは高く維持され、ユーザーは満足し続けることができます。
  • 可用性。 定期的なヘルスチェックが含まれるため、負荷分散は重要です。 ロードバランサーとホストマシンの間で、リクエストを確実に受信できるようにします。ホストマシンの1つがダウンしている場合、ロードバランサーは要求を他の使用可能なデバイスにリダイレクトします。

    ロードバランサーも障害のあるサーバーを削除します 問題が解決するまでプールから。一部のロードバランサーは、増加するリクエストに対応するために、新しい仮想化アプリケーションサーバーを作成することもあります。
  • セキュリティ。 負荷分散は、特にクラウドコンピューティングの進化に伴って追加されたセキュリティ機能により、ほとんどの最新のアプリケーションで要件になりつつあります。ロードバランサーのオフロード機能は、DDoS攻撃から保護します 攻撃トラフィックを企業サーバーではなくパブリッククラウドプロバイダーにシフトすることによって。
  • 予測的洞察。 負荷分散には、トラフィックのボトルネックを予測できる分析が含まれます 組織がそれらを防ぐことを許可します。予測的洞察は自動化を促進し、組織が将来の意思決定を行うのに役立ちます。

負荷分散はどのように機能しますか?

ロードバランサーは、アプリケーションサーバーとインターネット上のユーザーの間に配置されます。ロードバランサーはリクエストを受信すると、プール内のどのサーバーが使用可能かを判断し、そのサーバーにリクエストをルーティングします。

利用可能なサーバーにリクエストをルーティングする または、ワークロードが低いサーバーの場合、負荷分散により、ストレスのかかったサーバーの負荷が軽減され、高可用性と信頼性が確保されます。

ロードバランサーはサーバーを動的に追加または削除します 需要が高いまたは低い場合。そうすることで、需要に柔軟に対応できます。

負荷分散もフェイルオーバーを提供します パフォーマンスの向上に加えて。ロードバランサーは、障害が発生したサーバーからバックアップサーバーにワークロードをリダイレクトし、エンドユーザーへの影響を軽減します。

負荷分散の種類

ロードバランサーは、ストレージタイプ、バランサーの複雑さ、および機能が異なります。さまざまなタイプのロードバランサーについて、以下で説明します。

ハードウェアベース

ハードウェアベースのロードバランサーは、独自のソフトウェアを備えた専用ハードウェアです。 インストールされています。さまざまなアプリケーションタイプからの大量のトラフィックを処理できます。

ハードウェアベースのロードバランサーには、同じデバイス上で複数の仮想ロードバランサーインスタンスを使用できる仮想化機能が組み込まれています。

ソフトウェアベース

ソフトウェアベースのロードバランサーは、仮想マシンまたはホワイトボックスサーバーで実行され、通常は ADCに組み込まれます。 (アプリケーション配信コントローラー)。仮想負荷分散は、物理的な負荷分散に比べて優れた柔軟性を提供します。

ソフトウェアベースのロードバランサーは、一般的なハイパーバイザー、コンテナー、またはベアメタルサーバーでのオーバーヘッドがごくわずかなLinuxプロセスとして実行されます。

仮想

仮想ロードバランサーは、仮想マシン上の専用デバイスから独自の負荷分散ソフトウェアを展開して、上記の2つのタイプを組み合わせます。ただし、仮想ロードバランサーは、スケーラビリティと自動化が制限されているというアーキテクチャ上の課題を克服できません。

クラウドベース

クラウドベースの負荷分散は、クラウドインフラストラクチャを利用します。クラウドベースの負荷分散の例は次のとおりです。

  • ネットワーク負荷分散 。ネットワーク負荷分散はレイヤー4に依存し、ネットワークレイヤー情報を利用してネットワークトラフィックの送信先を決定します。ネットワーク負荷分散は最速の負荷分散ソリューションですが、サーバー間でのトラフィックの分散のバランスをとることができません。
  • HTTP(S)負荷分散 。 HTTP(S)負荷分散はレイヤー7に依存しています。これは最も柔軟な負荷分散タイプの1つであり、管理者はHTTPアドレスに付属する情報に基づいてトラフィック分散を決定できます。
  • 内部負荷分散 。内部負荷分散は、内部インフラストラクチャでの分散のバランスをとることができることを除いて、ネットワーク負荷分散とほぼ同じです。

負荷分散アルゴリズム

さまざまな負荷分散アルゴリズムは、ユースケースに応じてさまざまな利点と複雑さを提供します。最も一般的な負荷分散アルゴリズムは次のとおりです。

ラウンドロビン

リクエストを順次配信します 最初に使用可能なサーバーに移動し、完了時にそのサーバーをキューの最後に移動します。ラウンドロビンアルゴリズムは、同等のサーバーのプールに使用されますが、サーバーにすでに存在する負荷は考慮されません。

最小接続

最小接続アルゴリズムでは、最もビジーでないサーバーに新しいリクエストを送信します。 。サーバープールに不均一に分散された持続的接続が多数ある場合は、最小接続方法が使用されます。

最小応答時間

最小応答時間の負荷分散では、アクティブな接続が最も少なく、平均応答が最も速いサーバーにリクエストが分散されます。 時間 ヘルスモニタリングリクエストに。応答速度は、サーバーの負荷を示します。

ハッシュ

ハッシュアルゴリズムは、指定されたキーに基づいてリクエストを配布する場所を決定します 、クライアントIPアドレス、ポート番号、リクエストURLなど。ハッシュ方式は、eコマースWebサイトのカートなど、ユーザー固有の保存された情報に依存するアプリケーションに使用されます。

カスタムロード

カスタムロードアルゴリズムは、 SNMPを介して個々のサーバーにリクエストを送信します (簡易ネットワーク管理プロトコル)。管理者は、クエリをルーティングするときに考慮するロードバランサーのサーバー負荷を定義します(CPUとメモリの使用量、応答時間など)。


Ubuntu
  1. VPN強化:その概要と方法

  2. Build-Essential-Ubuntu とは何ですか? インストール方法と使用方法は?

  3. メールとは何ですか? どのようにナビゲートされますか?

  1. Hadoop Mapreduceとは何ですか、どのように機能しますか

  2. Gitアップストリームとは何ですか?アップストリームブランチを設定する方法

  3. Umaskとは何ですか?その使用方法

  1. 逆引きDNSとは何ですか?どのように機能しますか?

  2. きれいなホスト名とは何ですか、それを設定する方法

  3. 403ForbiddenError-それは何ですかそしてそれを修正する方法