AWSロードバランシング

ロードバランシングは、アプリケーションをサポートするリソースのプール全体でネットワークトラフィックを均等に分散させる方法です。最新のアプリケーションは、数百万人のユーザーを同時に処理し、正しいテキスト、動画、画像、その他のデータを高速かつ信頼性の高い方法で各ユーザーに返す必要があります。このような大量のトラフィックを処理するために、ほとんどのアプリケーションには、重複データを持つ多数のリソースサーバーがあります。ロードバランサーは、ユーザーとサーバーグループの間に配置され、すべてのリソースサーバーが均等に使用されるようにする、目に見えないファシリテーターとして機能するデバイスです。

ロードバランシングのメリット

ロードバランシングにより、アプリケーションサーバーとその訪問者またはクライアント間のインターネットトラフィックが誘導および制御されます。その結果、アプリケーションの可用性、スケーラビリティ、セキュリティ、およびパフォーマンスが向上します。

アプリケーションの可用性

サーバーの障害またはメンテナンスにより、アプリケーションのダウンタイムが増加し、訪問者がアプリケーションを使用できなくなる可能性があります。ロードバランサーは、サーバーの問題を自動的に検出し、クライアントトラフィックを使用可能なサーバーにリダイレクトすることにより、システムのフォールトトレランスを向上させます。ロードバランシングを使用すると、次のタスクを簡単に実行できます。

  • アプリケーションのダウンタイムなしでアプリケーションサーバーのメンテナンスまたはアップグレードを実行する
  • バックアップサイトに自動ディザスタリカバリを提供する
  • ヘルスチェックを実行し、ダウンタイムの原因となり得る問題を防ぐ

アプリケーションのスケーラビリティ

ロードバランサーを使用すると、複数のサーバー間でネットワークトラフィックをインテリジェントにルーティングできます。ロードバランシングは次のことを実行するため、アプリケーションは何千ものクライアントリクエストを処理できます。

  • いずれかのサーバーでトラフィックのボトルネックが発生するのを防ぐ
  • 必要に応じて別のサーバーを追加したり、削除したりできるように、アプリケーショントラフィックを予測する
  • システムに冗長性を追加し、確信を持ってスケールできるようにする

アプリケーションセキュリティ

ロードバランサーには、インターネットアプリケーションに新たなセキュリティ層を追加するためのセキュリティ機能が組み込まれています。これらは、分散型サービス拒否攻撃に対処するための役立つツールです。分散型サービス拒否攻撃では、攻撃者は、何百万件もの同時リクエストでアプリケーションサーバーをフラッディングして、サーバー障害を引き起こします。ロードバランサーは、次の事項も実行できます。

  • トラフィックをモニタリングし、悪意のあるコンテンツをブロックする
  • 影響を最小限に抑えるため、攻撃トラフィックを複数のバックエンドサーバーに自動的にリダイレクトする
  • セキュリティを強化するために、ネットワークファイアウォールのグループを通じてトラフィックをルーティングする

アプリケーションのパフォーマンス

ロードバランサーは、応答時間を短縮し、ネットワークレイテンシーを低減することで、アプリケーションのパフォーマンスを改善します。これらは、次のようないくつかの重要なタスクを実行します。

  • サーバー間で負荷を均等に分散して、アプリケーションのパフォーマンスを改善する
  • クライアントのリクエストを地理的に近いサーバーにリダイレクトして、レイテンシーを低減する
  • 物理コンピューティングリソースと仮想コンピューティングリソースの信頼性とパフォーマンスを確保する

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

ロードバランシングアルゴリズムは、ロードバランサーがさまざまなクライアントリクエストごとに最適なサーバーを決定するために従う一連のルールです。ロードバランシングアルゴリズムは、主に 2 つのカテゴリに分類されます。

静的ロードバランシング

静的ロードバランシングアルゴリズムは、固定ルールに従い、現在のサーバーの状態には依存しません。静的ロードバランシングの例を次に示します。

ラウンドロビン方式

サーバーには、リクエストを送信する場所をクライアントに指示する IP アドレスがあります。IP アドレスは多数の数字で構成されており、覚えにくいです。簡単にするために、ドメインネームシステムはウェブサイト名をサーバーにマッピングします。

ラウンドロビン方式では、権威ネームサーバーが、特殊なハードウェアやソフトウェアの代わりにロードバランシングを行います。ネームサーバーは、サーバーファーム内のさまざまなサーバーの IP アドレスを順番に、またはラウンドロビン方式で返します。

重み付きラウンドロビン方式

重み付きラウンドロビンロードバランシングでは、優先度またはキャパシティに基づいて各サーバーに異なる重みを割り当てることができます。重みの大きいサーバーは、ネームサーバーからより多くの着信アプリケーショントラフィックを受信します。

IP ハッシュ方式

IP ハッシュ方式では、ロードバランサーは、クライアント IP アドレスに対してハッシュと呼ばれる数学的計算を実行します。クライアントの IP アドレスを数値に変換し、それを個々のサーバーにマッピングします。

動的ロードバランシング 

動的ロードバランシングアルゴリズムは、トラフィックを分散する前にサーバーの現在の状態を調べます。動的ロードバランシングアルゴリズムのいくつかの例を次に示します。

リーストコネクション方式

接続は、クライアントとサーバー間のオープンな通信チャネルです。クライアントが最初のリクエストをサーバーに送信すると、クライアントは認証を行い、相互にアクティブな接続を確立します。リーストコネクション方式では、ロードバランサーはアクティブな接続が最も少ないサーバーをチェックし、それらのサーバーにトラフィックを送信します。この方式では、すべての接続が、すべてのサーバーに同等の処理能力を要求していることを前提としています。

重み付きリーストコネクション方式

重み付きリーストコネクションアルゴリズムは、一部のサーバーが他のサーバーよりも多くのアクティブな接続を処理できることを前提としています。したがって、各サーバーに異なる重みまたはキャパシティを割り当てることができ、ロードバランサーは、キャパシティでリーストコネクションを持つサーバーに新しいクライアントリクエストを送信します。

最小応答時間方式

応答時間は、サーバーが着信リクエストを処理し、応答を送信するのにかかる合計時間です。最小応答時間方式では、サーバーの応答時間とアクティブな接続を組み合わせて、最適なサーバーを決定します。ロードバランサーはこのアルゴリズムを使用して、すべてのユーザーにより高速なサービスが提供されるようにします。

リソースベース方式

リソースベース方式では、ロードバランサーは現在のサーバー負荷を分析してトラフィックを分散します。エージェントと呼ばれる特殊なソフトウェアが各サーバーで実行され、コンピューティング性能やメモリなどのサーバーリソースの使用状況を計算します。その後、ロードバランサーは、トラフィックをそのサーバーに分散する前に、エージェントに十分な空きリソースがあるかどうかをチェックします。

この記事は役に立ちましたか?

もし参考になりましたら、下記のボタンで教えてください。

関連記事

コメント

この記事へのコメントはありません。