AWS Application Load Balancer (ALB) は、
AWSのマネージド型ロードバランサーの1つ で、
アプリケーション層(OSI参照モデルのレイヤー7)での負荷分散 を提供します。
主に HTTP/HTTPS トラフィックの振り分けを行い、Webアプリケーションやマイクロサービスのスケールや可用性向上に役立ちます。
🔹 ALB の主な機能
1️⃣ レイヤー7(アプリケーション層)でのルーティング
- ホストベースルーティング:ドメイン名に応じて異なるターゲットグループへ転送
- 例:
api.example.com→ APIサーバー、www.example.com→ Webサーバー
- 例:
- パスベースルーティング:URLのパスに応じて転送
- 例:
example.com/login→ 認証サーバー、example.com/images→ 画像サーバー
- 例:
- ヘッダー、クエリパラメータ、メソッドによるルーティング:特定のリクエスト属性に基づく振り分け
2️⃣ ターゲットグループ & ヘルスチェック
-
ターゲットグループ(EC2、Lambda、IP、コンテナなど)
-
ヘルスチェック
- 指定したエンドポイントの正常性を監視し、異常がある場合はトラフィックを別のサーバーへ転送。
3️⃣ SSL/TLS 終端(HTTPS サポート)
4️⃣ WebSocket & HTTP/2 サポート
- リアルタイム通信(WebSocket) や 最新のHTTP/2 に対応。
5️⃣ WAF(Web Application Firewall)連携
- AWS WAF(Webアプリケーションファイアウォール)と組み合わせて、DDoS攻撃やSQLインジェクション対策 が可能。
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が最適!