サーバ負荷分散装置 (サーバフカブンサンソウチ) とは | 意味や読み方など丁寧でわかりやすい用語解説

作成日: 更新日:

サーバ負荷分散装置 (サーバフカブンサンソウチ) の読み方

日本語表記

サーバ負荷分散装置 (サーバフカブンサンソウチ)

英語表記

Load balancer (ロードバランサー)

サーバ負荷分散装置 (サーバフカブンサンソウチ) の意味や用語解説

サーバ負荷分散装置は、Webサービスやアプリケーションなど、大量のアクセスが想定されるシステムにおいて、クライアントからのリクエストを複数のバックエンドサーバへ効率的かつ均等に分配するための技術または装置である。これにより、特定のサーバへの負荷集中を防ぎ、システム全体の安定稼働とパフォーマンス向上を実現する。システムエンジニアを目指す上で、現代の多くの大規模サービスで不可欠な技術要素であると理解しておくべきだ。 この装置が解決する主な課題は、単一障害点のリスクと性能の限界である。もしサービスが単一のサーバで稼働している場合、そのサーバが故障するとサービス全体が停止してしまうという単一障害点となる。また、アクセスが急増した際に、その単一サーバの処理能力が限界に達すると、応答速度が著しく低下したり、最悪の場合サービスが停止したりする可能性がある。サーバ負荷分散装置は、これらの問題を解決するために導入される。複数のサーバが協調して動作することで、一台のサーバがダウンしても他のサーバがサービスを継続し、全体の処理能力を向上させることができる。 具体的な仕組みとしては、まずクライアントからのサービスリクエストは、バックエンドのサーバ群ではなく、仮想IPアドレスを持つサーバ負荷分散装置が受け取る。負荷分散装置は、自身に接続されている複数のバックエンドサーバの状態を常に監視しており、あらかじめ設定されたアルゴリズムに基づいて、現在最も適していると判断されるサーバを動的に選定する。そして、選ばれたサーバにリクエストを転送する。バックエンドサーバはそのリクエストを処理し、結果を負荷分散装置に返す。負荷分散装置は、その結果を元のクライアントに送り返すことで、あたかもクライアントが単一のサーバと直接通信しているかのように振る舞う。 この際に利用される負荷分散アルゴリズムには、いくつかの種類がある。最も基本的なものは、リクエストを順番に各サーバへ振り分ける「ラウンドロビン」である。また、各サーバの性能や処理能力の違いを考慮し、より高性能なサーバには多くのリクエストを、そうでないサーバには少ないリクエストを割り当てる「重み付けラウンドロビン」も存在する。現在アクティブな接続数が最も少ないサーバにリクエストを送る「最小コネクション」は、リアルタイムの負荷状況に基づいた効率的な分散を可能にする。特定のクライアントからのリクエストを常に同じサーバに送る必要がある場合には、送信元IPアドレスなどを元にルーティングを決定する「IPハッシュ」が用いられる。これらのアルゴリズムは、システムの特性や要件に応じて適切に選択される。 サーバの健全性を継続的に監視する「ヘルスチェック」機能も、負荷分散装置の重要な役割の一つである。負荷分散装置は、バックエンドサーバが正常に稼働しているか(例:サーバが起動しているか、特定のポートが応答するか、Webアプリケーションが期待通りのレスポンスを返すかなど)を定期的に確認する。もし何らかの異常が検知された場合、そのサーバは一時的に負荷分散の対象から外し、リクエストの転送を停止する。そして、サーバが復旧したことを確認できれば、再び負荷分散対象に加える。この機能により、障害が発生したサーバへのアクセスを自動的に回避し、サービス全体の可用性を高く保つことができる。 さらに、多くのWebアプリケーションで必要となるのが「セッション維持」(スティッキーセッションとも呼ばれる)機能である。ログイン状態やショッピングカートの内容など、ユーザー固有の情報(セッション情報)が特定のバックエンドサーバに保存されるアプリケーションの場合、クライアントからの連続するリクエストが途中で別のサーバに振り分けられると、セッション情報が失われ、アプリケーションが正しく機能しなくなる。セッション維持機能は、Cookie情報やSSLセッションID、送信元IPアドレスなどを利用して、特定のクライアントからの全てのリクエストを常に同じバックエンドサーバへ送ることで、この問題を解決し、一貫したユーザー体験を提供する。 「SSLオフロード」機能も、サーバの負荷を軽減するために有効である。クライアントとサーバ間の通信を暗号化するSSL/TLSプロトコル処理は、特にCPUに高い負荷をかける。負荷分散装置がこのSSL/TLS処理(暗号化/復号化)を肩代わりすることで、バックエンドサーバは暗号化処理の負担から解放され、本来のアプリケーションロジックの処理に集中できるようになる。これにより、各サーバの性能が向上し、より多くのリクエストを効率的に処理できるようになる。 より高度な機能として「コンテンツベースルーティング」がある。これは、HTTPリクエストに含まれるURLパスやHTTPヘッダなどの情報に基づいて、リクエストを異なるバックエンドサーバグループに振り分ける機能である。例えば、画像ファイルやCSSファイルなどの静的コンテンツへのリクエストは、高速なファイルサーバ群にルーティングし、データベースアクセスを伴う動的なアプリケーション処理のリクエストは、アプリケーションサーバ群にルーティングするといった使い分けが可能となる。これにより、サーバ群の専門化と最適化が図れ、システム全体の効率が向上する。 これらの機能を通じて、サーバ負荷分散装置はシステムの高可用性、パフォーマンスの向上、そして高いスケーラビリティという大きなメリットを提供する。サービスの成長に合わせてバックエンドサーバを追加する際にも、既存のサービスを停止することなく、容易に容量を拡張できる。また、サーバの定期メンテナンスやアップデートを行う際も、対象サーバを一時的に負荷分散の対象から外すことで、サービスを継続しながら作業を進めることが可能となる。負荷分散装置自体も、単一障害点とならないように、通常は冗長構成(アクティブ/スタンバイなど)で導入されることが多い。 サーバ負荷分散装置は、物理的なハードウェアアプライアンスとして導入される形態のほか、NginxやHAProxyなどの汎用サーバ上で動作するソフトウェアとして構築されることもある。近年では、AWS Elastic Load BalancingやAzure Load Balancer、GCP Load Balancingといったクラウドサービスとして提供されるものが主流となっており、インフラ管理の負担を軽減しつつ、柔軟なシステム構築が可能になっている。システムの規模や要件、運用コストに応じて、これらの選択肢の中から最適なソリューションが選定される。

サーバ負荷分散装置 (サーバフカブンサンソウチ) とは | 意味や読み方など丁寧でわかりやすい用語解説