ALB 【Application Load Balancer】
概要
ALB(Application Load Balancer)とは、米アマゾンドットコム(Amazon.com)社のクラウドサービス、Amazon Web Services(AWS)で提供されるサービスの一つで、アプリケーション層(HTTP/HTTPS)の情報に基づいてサーバ間で負荷分散を行うことができる仕組み。Elastic Load Balancing(ELB)のサービス品目の一つ。AWS上に複数のEC2インスタンスやコンテナを展開してサービスを提供する際、外部からのリクエストを指定した条件に基づいて振り分け、負荷分散を行うことができる。振り分け先としてIPアドレスやインスタンス、AWS Lambda関数を指定できる。
リクエストを均等に分散するラウンドロビン方式、最も負荷が低い対象に振り分ける最小未処理リクエスト(Least Outstanding Requests)方式を選択できる。複数のアベイラビリティゾーン(AZ)にまたがる振り分け(クロスゾーン負荷分散)も可能である。
一定のルールに基づく固定的な振り分け(ルーティング)も可能で、URL文字列やHTTPヘッダの内容を用いて振り分けルールを指定できる。ホストヘッダーに記載されたホスト名を用いるホストベースルーティング(複数のドメイン名やホスト名を使い分ける場合)や、URLのパス文字列(ファイル名やディレクトリ名)を用いるパスベース、クエリ文字列を用いるクエリ文字列ベースのルーティングなどが利用できる。
プロトコルとしてHTTP(従来型のHTTP/1.1)の他にHTTPS(SSL/TLS)、HTTP/2、gRPC、WebSocketにも対応する。HTTPSターミネーション機能によりSSL/TLS処理をロードバランサ上で終端させ、Webサーバ側の暗号化処理の負荷を軽減できる。処理に矛盾を来さないよう同一セッションの通信は同一のホストに誘導され、送信元IPアドレスの同一性も維持される。
Amazon ELBではプロトコル階層の異なる複数の負荷分散機能を提供しており、アプリケーション層のALBの他にも、トランスポート層(TCP/UDP)の情報を用いる「NLB」(Network Load Balancer)、インターネット層(IP)とトランスポート層を組み合わせる「GLB」(Gateway Load Balancer)、アプリケーション層とトランスポート層を組み合わせる「CLB」(Classic Load Balancer/初期のELB)といった品目が用意されている。