Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

ALB(エーエルビー)とは | 意味や読み方など丁寧でわかりやすい用語解説

ALB(エーエルビー)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

アプリケーションロードバランサー (アプリケーションロードバランサー)

英語表記

Application Load Balancer (アプリケーションロードバランサー)

用語解説

ALB (Application Load Balancer) は、Amazon Web Services (AWS) が提供するロードバランサーサービスの一つである。主にWebアプリケーションやAPIなど、HTTPおよびHTTPSプロトコルを使用するトラフィックの負荷分散に特化している。ALBの主要な役割は、クライアントからのリクエストを複数のバックエンドサーバー(EC2インスタンス、コンテナ、IPアドレスなど)に効率的に分散させ、アプリケーションの高可用性、スケーラビリティ、耐障害性を向上させることである。ALBは、OSI参照モデルの第7層であるアプリケーション層で動作するのが最大の特徴であり、これにより、従来のロードバランサーでは実現できなかった高度なルーティング機能を提供できる。

ALBは、クライアントからのリクエストをどのバックエンドサーバーに送信するかを決定する際に、単なるIPアドレスやポート番号だけでなく、HTTPヘッダー、URLパス、クエリパラメータといったアプリケーション層の情報を参照する。この機能により、単一のALBで複数のアプリケーションやWebサイトをホストしたり、特定のURLパスへのリクエストを特定のサーバーグループにルーティングしたりすることが可能になる。例えば、「/api」へのリクエストはAPIサーバー群へ、「/images」へのリクエストは画像サーバー群へ、といった具体的な振り分けが可能である。ALBは、これらのサーバー群を「ターゲットグループ」という単位で管理する。各ターゲットグループには、それぞれ異なるヘルスチェック設定やルーティングルールを適用でき、システム全体の柔軟性を高めている。

ALBの重要な機能の一つに、堅牢なヘルスチェックがある。これは、ターゲットグループ内のサーバーが正常に動作しているかを定期的に監視し、異常が検知されたサーバーにはリクエストを送信しないようにする仕組みである。これにより、一部のサーバーが故障してもサービス全体が停止するのを防ぎ、アプリケーションの高可用性を維持できる。また、ALBはSSL/TLS終端機能を提供する。これは、クライアントとALB間の通信を暗号化された状態(HTTPS)で処理し、ALBとバックエンドサーバー間の通信は平文(HTTP)または必要に応じて再暗号化を選択できる機能である。これにより、バックエンドサーバーの負荷を軽減し、SSL/TLS証明書の管理を一元化できる。

さらに、ALBはスティッキーセッション(セッション維持)に対応している。これは、特定のクライアントからの連続したリクエストを常に同じバックエンドサーバーに送信する機能であり、セッション情報がサーバー側に保存されるアプリケーションにおいて、ユーザー体験を損なうことなくサービスを提供するために不可欠である。ALBはHTTP/2プロトコルおよびWebSocketプロトコルもサポートしているため、モダンなWebアプリケーションの要件にも対応できる。AWSのフルマネージドサービスとして提供されるため、インフラストラクチャのプロビジョニング、スケーリング、メンテナンスといった運用負荷はAWS側が担う。これにより、ユーザーはアプリケーション開発に集中できるというメリットがある。ALB自体は、需要に応じて自動的にスケールアップおよびスケールダウンし、ピーク時のトラフィックにも柔軟に対応できる。また、複数のアベイラビリティーゾーンにデプロイすることで、単一障害点のリスクを軽減し、高い可用性を実現する。

ALBは、マイクロサービスアーキテクチャを採用したアプリケーションや、Dockerコンテナオーケストレーションサービス(Amazon ECSやAmazon EKSなど)を利用する環境において特に有効である。複雑なルーティングルールを設定することで、単一のALBを複数のマイクロサービスのエントリーポイントとして機能させることができ、サービスの発見やルーティングを簡素化できる。パスベースやホストベースのルーティングを利用して、異なるサービスやバージョンへのトラフィックを効率的に管理することも可能である。一方で、ALBはアプリケーション層に特化しているため、TCPやUDPといった下位層のプロトコルによる負荷分散が必要な場合は、Network Load Balancer (NLB) のような別のロードバランサーの利用が推奨される。ALBはその多機能性ゆえに、設定がやや複雑になる場合もあるが、その柔軟性と高機能は現代の多様なアプリケーション要件を満たす上で強力なツールとなる。

関連コンテンツ

関連IT用語