はじめに
AWSには複数のロードバランサーが提供されており、その中でも特にApplication Load Balancer (ALB) と Network Load Balancer (NLB) は広く利用されています。
これらは用途や動作レイヤーが異なり、適切に選択することでシステムのパフォーマンスや可用性を最適化できます。
今回は、ALB と NLB の主な違いを整理し、それぞれの特徴や使いどころについて考察していきます。
書こうと思ったきっかけ
過去にさまざまな技術検証を行い、その中でロードバランサーに関する調査も行いました。
これらの経験を踏まえ、ALBとNLBの違いを一度整理し、備忘録としてまとめておきたいと思いました。
また、これからAWSを学ぶ人や、適切なロードバランサーの選択に悩んでいる人にとっても有用な情報になればと思います。
いろいろな観点でまとめてみた
1. 主な用途
ALB(Application Load Balancer)
- HTTP/HTTPS トラフィック向け
- アプリケーション層(L7: Layer 7)で動作
- パスベースやホストベースのルーティングが可能
- Webアプリケーションや API の負荷分散に適している
NLB(Network Load Balancer)
- TCP/UDP トラフィック向け
- ネットワーク層(L4: Layer 4)で動作
- 高スループット・低レイテンシーに最適化
- ゲームサーバーや金融系アプリ、リアルタイム通信向け
2. プロトコルの違い
ALB
- HTTP, HTTPS, WebSocket に対応
- HTTP ヘッダーやクエリパラメータを見てルーティング可能
NLB
- TCP, UDP, TLS に対応
- IP アドレスやポート単位での負荷分散
3. ルーティング機能
ALB
-
パスベースルーティング(例:
/login
はサーバA、/products
はサーバB) -
ホストベースルーティング(例:
app.example.com
はグループA、api.example.com
はグループB) - クエリパラメータやヘッダーに基づくルーティング
NLB
- ルーティングの柔軟性はない(基本は TCP/UDP ポートごとの単純な振り分け)
4. 耐障害性
ALB
- AWS リージョン内の複数の AZ(アベイラビリティゾーン)にトラフィックを分散可能
- 負荷分散の仕組みは AWS 側が管理
NLB
- 1つの固定 IP アドレスを提供可能(ELB の中で唯一)
- ゾーンごとのヘルスチェックが可能で、障害発生時には別のゾーンへ自動でトラフィックを振り分け
5. パフォーマンス
ALB
- HTTP/HTTPS のリクエスト処理が必要なため、遅延が若干発生する
- 軽量なリクエストに適しているが、大量の小さいリクエストにはやや不向き
NLB
- AWS の内部ネットワークを直接利用するため、超低レイテンシー
- 高スループットを必要とするアプリケーションに最適
- 1秒間に数百万リクエストを処理可能
6. コスト
ALB
- 使用時間 + 処理リクエスト数 に応じて課金
- 小規模な Web アプリなどではコストが比較的安い
NLB
- 使用時間 + 処理データ量(GB 単位) に応じて課金
- データ転送量が多い場合、ALB よりコストがかかることも
7. TLS(SSL)ターミネーション
ALB
- HTTPS リクエストの SSL/TLS 終端が可能
- 証明書を ALB に登録し、内部通信を HTTP にすることができる
NLB
- TLS パススルー(エンドツーエンド暗号化)が可能
- 内部サーバーで SSL 処理を行う必要がある
8. 固定 IP
ALB
- 固定 IP なし(DNS 名でアクセス)
- IP アドレスが変わる可能性があるため、IP ベースの許可リストに登録しづらい
NLB
- 固定 IP を提供
- 固定 IP を必要とするアプリケーションやファイアウォール設定に適している
ALB と NLB の比較表
項目 | ALB (Application Load Balancer) | NLB (Network Load Balancer) |
---|---|---|
動作レイヤー | L7 (アプリケーション層) | L4 (ネットワーク層) |
対応プロトコル | HTTP, HTTPS, WebSocket | TCP, UDP, TLS |
ルーティング機能 | パス・ホスト・ヘッダーで振り分け | シンプルなポートベース |
パフォーマンス | 標準 | 高スループット・低遅延 |
耐障害性 | マルチ AZ 対応 | マルチ AZ + 固定 IP |
TLS 終端 | 可能 | パススルーのみ |
固定 IP | なし | あり |
コスト | リクエスト数課金 | データ転送量課金 |
まとめ
ご覧いただきありがとうございました。今回は AWS の基本的なサービスの違いについてまとめましたが、知識を体系的に振り返る良い機会となりました。
今回の内容がどこまで参考になるか分かりませんが、どなたかの技術の助けになれば幸いです。