ロードバランサー

2025年9月19日 (金) 04:15時点におけるAdministrator (トーク | 投稿記録)による版 (→‎L7ロードバランシング)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

ロードバランサーとは、複数のサーバーに対してアクセスの負荷を分散させる装置やシステムのことです。

外部からのリクエストやトラフィックを集約し、各サーバーの負荷状況を監視しながら最適なサーバーに振り分けることで、全体の処理能力を最大限に活用し、システムの安定性と応答速度を向上させます。

主な機能には以下があります。

  • 負荷分散:リクエストを複数サーバーに均等に分配し、過剰な負荷集中を防ぐ。
  • サーバーの死活監視:サーバーの稼働状態を常にチェックし、故障したサーバーへのアクセスを停止。
  • セッション管理(パーシステンス):同じユーザーのリクエストは一貫して同じサーバーに割り当て、連続性を保つ。
  • 障害時のサービス継続:障害のあるサーバーを除外し、他の正常なサーバーでサービスを継続可能にする。

これにより、ロードバランサーは大規模サービスの安定運用、拡張性向上、レスポンス向上を支えています。

主な方式

負荷分散の方式にはネットワーク層でのL4ロードバランシングとアプリケーション層でのL7ロードバランシングがあり用途によって使い分けられます。

L4ロードバランシング

L4ロードバランシンはOSI参照モデルの第4層にあたるトランスポート層(主にTCPやUDPプロトコル)で動作するロードバランサーのことです。このタイプのロードバランサーは、IPアドレスやポート番号に基づいてトラフィックを振り分けます。つまり、通信の内容までは解析せず、接続の確立情報や通信チャネル(ポート)を使って負荷分散を行うため、高速かつ大規模なトラフィック処理に適しています。

特徴としては、以下のような点があります。

  • 通信パケットの内容(HTTPのURLやヘッダーなど)には関与せず、ネットワーク層とトランスポート層の情報だけで振り分けを行う。
  • 負荷分散処理が軽量で高速、通信の遅延が少ない。
  • TCPやUDPのトラフィックに対応しているため、Web以外のアプリケーションにも利用可能。

例えばAWSのNetwork Load Balancer(NLB)がこのタイプであり、大量トラフィックの分散に使われる。

このようにトランスポート層ロードバランサーは、「どのサーバーに送るか」をネットワークレベルで素早く判断し、主に性能重視の用途に向いています。

L7ロードバランシング

L7ロードバランシングとはOSI参照モデルの第7層であるアプリケーション層で動作するロードバランシングのことです。大雑把にいえば振り分け機能のあるリバースプロキシです。この層では通信の内容そのもの(例えばHTTPのURLパスやヘッダー、Cookieなどの情報)を解析して、それに基づいてトラフィックの振り分けを行います。

特徴としては、以下のような点があります。

  • URLのパスやホスト名、HTTPヘッダーの内容に基づく細かなルーティングが可能。
  • 特定のユーザーグループや地域、端末に応じて異なるサーバーへトラフィックを振り分けられる。
  • Cookieを使ったセッション維持(スティッキーセッション)にも対応し、同一ユーザーのリクエストを同じサーバーに送ることができる。
  • SSLの終端(復号化)やコンテンツの圧縮、キャッシュの適用などの付加機能も提供できる。

例えば、大規模なWebサイトや複雑なWebアプリケーションでの柔軟なトラフィック制御に最適。

一方、トランスポート層(L4)のロードバランサーと比べると、内容解析を行うため処理が複雑でオーバーヘッドが大きくなりますが、その分より詳細かつ賢い振り分けが可能です。

関連項目