Application Load Balancer(ALB)とは?L7 ロードバランサーの仕組みと活用
ALB は アプリケーション層(HTTP/HTTPS)専用のロードバランサー。URL パス・ホスト名・HTTP ヘッダ・クエリ文字列・送信元 IP など、L7 情報に基づくきめ細かいルーティングが可能。マイクロサービス・コンテナ・Lambda・WebSocket・HTTP/...
HTTP/HTTPS(L7)に特化した、ホスト名・パス・ヘッダで柔軟にルーティングできるロードバランサー。
1. 概要(端的に)
ALB は アプリケーション層(HTTP/HTTPS)専用のロードバランサー。URL パス・ホスト名・HTTP ヘッダ・クエリ文字列・送信元 IP など、L7 情報に基づくきめ細かいルーティングが可能。マイクロサービス・コンテナ・Lambda・WebSocket・HTTP/2 まで幅広く対応する。
2. 何ができるか
- L7 ベースルーティング:パス(
/api/*)・ホスト(api.example.com)・ヘッダ・メソッド・クエリで分岐 - 複数のターゲット種別:EC2 / IP / Lambda / コンテナ
- WebSocket・HTTP/2・gRPC 対応
- SSL/TLS 終端:HTTPS を ALB で復号、後段は HTTP で軽量化
- WAF 統合:AWS WAF で SQL インジェクション・XSS 対策
- ユーザー認証統合:Cognito や OIDC で組み込み認証
- スティッキーセッション:Cookie ベースで同一クライアントを同一ターゲットへ
ルーティング条件
- パスベース(
/api/users→ サービス A) - ホストベース(
admin.example.com→ サービス B) - HTTP ヘッダ(
User-Agentや独自ヘッダで分岐) - クエリ文字列(
?version=2で別ターゲット) - 送信元 IP(社内 IP のみ別系統)
- HTTP メソッド(GET / POST で分岐)
3. 特徴
| 観点 | 特徴 |
|---|---|
| レイヤー | L7(HTTP/HTTPS のみ) |
| ターゲット | EC2 / IP / Lambda / コンテナ |
| WAF | 直接統合可能 |
| HTTP/2・WebSocket | サポート |
| 固定 IP | なし(DNS で解決) |
| AZ 数 | 最低 2 AZ 必要 |
| コスト | NLB より高め |
| 接続性 | クライアント IP は X-Forwarded-For で渡る |
vs NLB(試験頻出比較)
| 観点 | ALB | NLB |
|---|---|---|
| プロトコル | HTTP/HTTPS/gRPC/WebSocket | TCP/UDP/TLS |
| 固定 IP | × | ○(Elastic IP 可) |
| レイテンシ | 数十 ms | 数 ms |
| WAF 統合 | ○ | × |
| ルーティング | 高度(L7 条件) | シンプル(L4) |
| 用途 | Web/API | ゲーム/VoIP/超高速 |
4. 仕組み
ALB は 「リスナー → ルール → ターゲットグループ → ターゲット」 の流れでルーティングする。
構成要素
- ロードバランサー本体:DNS エンドポイント
- リスナー:ポート + プロトコル(例:HTTPS:443)
- ルール:条件と優先順位を持つルーティング設定
- アクション:forward / redirect / fixed-response / authenticate
- ターゲットグループ:振り分け先の集合
- ヘルスチェック:HTTP/HTTPS で生存確認
動作の流れ
- クライアントが ALB の DNS にアクセス
- リスナーが受信(HTTPS:443 で SSL 復号)
- ルール評価:上から順に条件マッチ
- マッチしたアクションを実行(多くは forward)
- ターゲットグループから 正常な ターゲットを選択
- ターゲットへリクエスト転送
- レスポンス受信 → クライアントへ返却
スティッキーセッション
- アプリケーション維持型:アプリが発行する Cookie を利用
- 期間ベース:ALB が
AWSALBCookie を発行(1 秒〜7 日)
ターゲットの正常性
- healthy:ヘルスチェック合格
- initial:登録直後のヘルスチェック前
- unhealthy:ヘルスチェック失敗
- draining:登録解除中(既存接続は処理)
- unused:AZ にターゲットなし
5. ユースケース
ユースケース 1:マイクロサービス・API ゲートウェイ
/api/users/* → ユーザーサービス、/api/orders/* → 注文サービスへルーティング。
ユースケース 2:マルチテナント SaaS
tenant1.example.com tenant2.example.com をホストベースで分岐。
ユースケース 3:A/B テスト
ヘッダ X-Version: beta のリクエストだけ新環境へ振り分け。
ユースケース 4:Lambda + ALB のサーバーレス Web
EC2 不要で Lambda をターゲットに、API Gateway 不要の構成も可。
ユースケース 5:WAF + ALB のセキュアな Web
ALB に AWS WAF を直接アタッチして SQL インジェクション・XSS 対策。
6. 関連用語
- ELB — ALB を含むロードバランサー総称
- NLB — L4 ロードバランサー(比較対象)
- EC2 / ECS / Lambda — ALB のターゲット
- WAF — ALB と統合してセキュリティ強化
- ACM — SSL/TLS 証明書を ALB に適用
- Cognito — ALB 認証で利用
- Route53 — ALB への DNS ルーティング
7. 関連サイト
AWS 公式
参考
🎓 試験での出題傾向
| 試験 | 重要度 | 主な出題パターン |
|---|---|---|
| CLF | 高 | ALB の役割、L7 ロードバランサーの概念 |
| SAA | 高 | ALB vs NLB の使い分け、ルーティング設計 |
| DVA | 高 | パスベースルーティング、Lambda 統合、認証連携 |
| SOA | 中 | ヘルスチェック・ログ分析 |