ロードバランシングとは何ですか?

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

ロードバランシングにはどのようなメリットがありますか?

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

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

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

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

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

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

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

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

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

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

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

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

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

ロードバランシングアルゴリズムとはどのようなものですか?

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

静的ロードバランシング

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

ラウンドロビン方式

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

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

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

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

IP ハッシュ方式

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

動的ロードバランシング 

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

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

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

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

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

最小応答時間方式

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

リソースベース方式

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

ロードバランシングはどのように機能しますか?

企業は通常、アプリケーションを複数のサーバーで実行しています。このようなサーバー構成をサーバーファームといいます。アプリケーションに対するユーザーリクエストは、まずロードバランサーに送られます。ロードバランサーは、各リクエストを、そのリクエストの処理に最も適したサーバーファーム内の 1 つのサーバーにルーティングします。

ロードバランシングは、レストランでマネージャーが行う作業のようなものです。5 人のウェイターがいるレストランを考えてみましょう。顧客がウェイターを選択することを許可されている場合、1 人または 2 人のウェイターの仕事が多くなって過負荷になる一方で、他のウェイターが何もしない状態になる可能性があります。このシナリオを回避するために、レストランのマネージャーは、顧客にサービスを提供するのに最も適した特定のウェイターに顧客を割り当てます。

ロードバランシングのタイプにはどのようなものがありますか?

ロードバランシングは、ロードバランサーがトラフィックをリダイレクトするためにクライアントリクエストでチェックする内容に応じて、3 つの主要なカテゴリに分類できます。

アプリケーションロードバランシング

複雑な最新のアプリケーションには、単一のアプリケーション機能専用の複数のサーバーを持ついくつかのサーバーファームがあります。Application Load Balancer は、HTTP ヘッダーや SSL セッション ID などのリクエストのコンテンツを調べて、トラフィックをリダイレクトします。 

例えば、e コマースアプリケーションは、製品ディレクトリ、ショッピングカート、およびチェックアウト機能を備えています。Application Load Balancer は、画像や動画を含むがオープンな接続を維持する必要のないサーバーに、製品の閲覧リクエストを送信します。比較すると、多くのクライアント接続を維持し、カートデータを長期間保存できるサーバーにショッピングカートリクエストを送信します。

ネットワークロードバランシング

Network Load Balancer は、IP アドレスや他のネットワーク情報を調べて、トラフィックを最適にリダイレクトします。アプリケーショントラフィックのソースを追跡し、複数のサーバーに静的 IP アドレスを割り当てることができます。Network Load Balancer は、前述の静的および動的ロードバランシングアルゴリズムを使用して、サーバーの負荷を分散します。

グローバルサーバーロードバランシング

グローバルサーバーロードバランシングは、地理的に分散した複数のサーバーにまたがって行われます。例えば、企業は、複数のデータセンター内で、さまざまな国で、および世界中のサードパーティーのクラウドプロバイダーで、サーバーを持つことができます。この場合、ローカルロードバランサーは、1 つの地域またはゾーン内のアプリケーション負荷を管理します。これらは、クライアントに地理的に近いサーバーにトラフィックをリダイレクトしようとします。サーバーに障害が発生した場合のみ、クライアントの地理的ゾーン外のサーバーにトラフィックをリダイレクトする可能性があります。

DNS ロードバランシング

DNS ロードバランシングでは、ドメイン上のリソースのプール全体で、ネットワークリクエストをルーティングするようにドメインを設定します。ドメインは、ウェブサイト、メールシステム、プリントサーバー、またはインターネット経由でアクセス可能な別のサービスに対応できます。DNS ロードバランシングは、アプリケーションの可用性を維持し、グローバルに分散されたリソースプール全体でネットワークトラフィックを分散させるのに役立ちます。 

ロードバランシングテクノロジーのタイプにはどのようなものがありますか?

ロードバランサーは、ハードウェアロードバランサーとソフトウェアロードバランサーの 2 つのタイプのいずれかです。

ハードウェアロードバランサー

ハードウェアベースのロードバランサーは、ギガバイト規模のトラフィックを安全に処理し、数百の異なるサーバーにリダイレクトできるハードウェアアプライアンスです。これをデータセンターに保存し、仮想化を使用して複数のデジタルまたは仮想ロードバランサーを作成し、一元管理できます。

ソフトウェアロードバランサー

ソフトウェアベースのロードバランサーは、すべてのロードバランシング機能を実行するアプリケーションです。任意のサーバーにインストールすることも、フルマネージド型のサードパーティーサービスとしてアクセスすることもできます。

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

ハードウェアロードバランサーには、初期投資、設定、および継続的なメンテナンスが必要です。また、ピーク時のトラフィックの急増に対処するためだけに購入する場合は特に、フルキャパシティまで使用しないこともあります。トラフィック量が現在のキャパシティを超えて突然増加した場合には、別のロードバランサーを購入して設定できるようになるまで、ユーザーに影響が生じます。

対照的に、ソフトウェアベースのロードバランサーは、はるかに柔軟です。簡単にスケールアップまたはスケールダウンでき、最新のクラウドコンピューティング環境とのより高い互換性があります。また、時間の経過に伴って、設定、管理、使用にかかるコストも削減されます。

AWS はロードバランシングをどのようにサポートできますか?

Elastic Load Balancing (ELB) は、着信アプリケーショントラフィックを AWS とオンプレミスのリソース全体で複数のターゲットと仮想アプライアンスに自動的に分散する、フルマネージド型のロードバランシングサービスです。これを使用して、複雑な設定や API ゲートウェイなしで最新のアプリケーションをスケールできます。ELB を使用して、4 つの異なるタイプのソフトウェアロードバランサーを設定できます。

  • Application Load Balancer は、HTTP ベースのリクエストのトラフィックをルーティングします。

  • Network Load Balancer は、IP アドレスに基づいてトラフィックをルーティングします。TCP とユーザーデータグラムプロトコル (UDP) ベースのリクエストの負荷分散に理想的です。

  • Gateway Load Balancer は、サードパーティー仮想アプライアンスにトラフィックをルーティングします。これは、ネットワークファイアウォールなどのサードパーティー製アプライアンスをスケーラブルで管理しやすい方法でネットワークトラフィックに組み込むのに理想的です。

  • Classic Load Balancer は、Amazon EC2-Classic ネットワーク内のアプリケーションにトラフィックをルーティングします。このネットワークは、他のお客様と共有する単一のフラットネットワークです。

要件に基づいてロードバランサーを選択できます。例えば、グローバルな害虫駆除ブランドである Terminix は、Gateway Load Balancer を使用して 300% 多くのスループットを処理しています。スポーツ放送向けに人工知能を活用した追跡テクノロジーを提供する企業である Second Spectrum は、AWS Load Balancer Controller を使用してホスティングコストを 90% 削減しています。学校におけるコンピュータサイエンスへのアクセスを拡大することに注力する非営利団体である Code.org は、Application Load Balancer を使用して、オンラインコーディングイベント中のトラフィックの 400% の急増を効率的に処理しています。

今すぐ AWS アカウントを作成して、ロードバランシングを開始しましょう!

AWS でのロードバランシングの次のステップ

追加の製品関連リソースを確認する
コンピューティングサービスの詳細 
無料のアカウントにサインアップ

AWS 無料利用枠にすぐにアクセスできます。 

サインアップ 
コンソールで構築を開始する

AWS マネジメントコンソールで、AWS を使って構築を開始しましょう。

サインイン