AWS Application Load Balancer (ALB) とは?

AWS Application Load Balancer (ALB) は、
AWSのマネージド型ロードバランサーの1つ で、
アプリケーション層(OSI参照モデルのレイヤー7)での負荷分散 を提供します。
主に HTTP/HTTPS トラフィックの振り分けを行い、Webアプリケーションやマイクロサービスのスケールや可用性向上に役立ちます。


🔹 ALB の主な機能

1️⃣ レイヤー7(アプリケーション層)でのルーティング

  • ホストベースルーティングドメイン名に応じて異なるターゲットグループへ転送
    • 例:api.example.comAPIサーバー、 www.example.com → Webサーバー
  • パスベースルーティング:URLのパスに応じて転送
    • 例:example.com/login → 認証サーバー、 example.com/images → 画像サーバー
  • ヘッダー、クエリパラメータ、メソッドによるルーティング:特定のリクエスト属性に基づく振り分け

2️⃣ ターゲットグループ & ヘルスチェック

  • ターゲットグループ(EC2、Lambda、IP、コンテナなど)

    • EC2 インスタンス(Auto Scalingと連携可能)
    • ECS (コンテナ環境)
    • Lambda関数(ALB経由でLambdaを呼び出せる)
    • IPアドレス(オンプレミスサーバーとも連携可能)
  • ヘルスチェック

    • 指定したエンドポイントの正常性を監視し、異常がある場合はトラフィックを別のサーバーへ転送。

3️⃣ SSL/TLS 終端(HTTPS サポート)

  • HTTPSリクエストの処理(TLSオフロード)
    • ALBでSSL証明書を管理し、内部はHTTP通信にすることでサーバー負荷を軽減。
    • AWS Certificate Manager (ACM) と連携して無料のSSL証明書を利用可能。

4️⃣ WebSocket & HTTP/2 サポート

  • リアルタイム通信(WebSocket)最新のHTTP/2 に対応。

5️⃣ WAF(Web Application Firewall)連携

6️⃣ 高可用性 & Auto Scaling

  • 複数のAZ(アベイラビリティゾーン)にまたがって負荷分散 し、システムの耐障害性を向上。

🔹 ALB の料金

  • ロードバランサーの時間課金(約 $0.0225/時間)
  • 転送されたデータ量に応じた課金(GB単位で課金)
  • LCU(Load Balancer Capacity Unit)単位の課金(リクエスト数やルールの複雑さに依存)

🔹 ALB の活用例

Webアプリの負荷分散マイクロサービス(ECS, EKS, Lambda)のトラフィック管理HTTPS/SSLオフロードオンプレミス + クラウドのハイブリッド環境のルーティングWAFと組み合わせてセキュアなアプリ環境を構築


🔹 ALB と他のロードバランサーの違い

種類 特徴
Application Load Balancer (ALB) L7(アプリ層)、HTTP/HTTPS/WS対応、詳細なルーティング
Network Load Balancer (NLB) L4(トランスポート層)、TCP/UDP対応、高速な接続
Classic Load Balancer (CLB) 旧型、L4 & L7対応、基本的な機能のみ

🔹 まとめ

項目 内容
用途 Webアプリ、API、マイクロサービスの負荷分散
ルーティング ホストベース、パスベース、ヘッダー・クエリベース
対応プロトコル HTTP, HTTPS, WebSocket, HTTP/2
ターゲットグループ EC2, ECS, Lambda, IP
セキュリティ AWS WAF対応、SSL/TLS終端
料金体系 時間 + データ転送量 + LCU 課金
主なユースケース Webアプリの負荷分散、HTTPSオフロード、マイクロサービスの管理

AWS環境でアプリケーションレイヤーの負荷分散を行うなら、ALBが最適!