API Gateway vs Load Balancer vs Reverse Proxy
一部のコンテンツは LLM によって生成されており、まだ手動で検証されていません。
この 3 つは混同 されがちです。すべてクライアントとサーバーの間 に位置 しますが、それぞれ異 なる問題 を解決 します。
機能スペクトラム
flowchart LR
subgraph RP["Reverse Proxy"]
A["SSL 終端"]
B["キャッシュ"]
C["圧縮"]
end
subgraph LB["Load Balancer"]
D["トラフィック分散"]
E["ヘルスチェック"]
F["フェイルオーバー"]
end
subgraph AG["API Gateway"]
G["認証・認可"]
H["レート制限"]
I["変換・分析"]
end
RP --> LB --> AG
Reverse Proxy
サーバーの前段 に位置 するプロキシで、クライアントの要求 を受 け取 り、バックエンドサーバーに転送 します。汎用的 なソリューションで、コンテンツタイプを気 にしません。
コア機能
| 機能 | 説明 |
|---|---|
| SSL 終端 | HTTPS の暗号化 /復号化 を処理 し、バックエンドの負荷 を軽減 |
| キャッシュ | 静的 リソースをキャッシュし、バックエンドへの要求 を削減 |
| セキュリティ | バックエンドサーバーの構成 を隠蔽 |
| 圧縮 | レスポンスを圧縮 し、転送 を高速化 |
よく使 われるツール
- Nginx - 高性能 、広 く利用
- HAProxy - 高可用性 に特化
- Caddy - 自動 HTTPS、簡単 な設定
Load Balancer
トラフィック分散 に特化 したリバースプロキシ。スケーラビリティと高可用性 を実現 します。
負荷分散 アルゴリズム
| アルゴリズム | 説明 |
|---|---|
| Round Robin | 順番 に振 り分 け |
| Least Connections | 接続数 が最 も少 ないサーバーに割 り当 て |
| IP Hash | クライアント IP に基 づきサーバーを決定 、同 じユーザーは同 じサーバーへ |
| Weighted | 重 みの比率 で振 り分 け |
L4 vs L7
flowchart TB
subgraph L4["Layer 4 (TCP)"]
L4A["見えるもの:IP + Port"]
L4B["高速だがルーティングは限定的"]
end
subgraph L7["Layer 7 (HTTP)"]
L7A["見えるもの:URL, Headers, Cookies"]
L7B["パスに基づき異なるサービスへルーティング可能"]
end
| 層 | 利点 | 欠点 |
|---|---|---|
| L4 | 高性能 、低遅延 | コンテンツに基 づくルーティング不可 |
| L7 | 柔軟 なルーティング、豊富 な機能 | パフォーマンスオーバーヘッドが大 きい |
よく使 われるツール
- AWS ALB - L7 アプリケーション層 ロードバランサー
- AWS NLB - L4 ネットワーク層 ロードバランサー
- GCP Load Balancer - グローバル分散型
API Gateway
API 管理 に特化 したリバースプロキシ。マイクロサービスアーキテクチャに最適 で、横断的関心事 (cross-cutting concerns)を一元管理 します。
コア機能
| 機能 | 説明 |
|---|---|
| 認証 /認可 | JWT 検証 、OAuth、API Key |
| レート制限 | API の濫用 を防止 |
| リクエスト/レスポンス変換 | ヘッダー、ボディの修正 、フォーマット変換 |
| バージョン管理 | 複数 の API バージョンを管理 |
| 分析 ・モニタリング | API の使用状況 を追跡 |
よく使 われるツール
- Kong - オープンソース、拡張 可能
- AWS API Gateway - クラウドネイティブ、AWS と統合
- Apigee - Google 傘下 、エンタープライズ向 け
実際 のアーキテクチャ
flowchart LR
Client["Client"] --> CDN["CDN"]
CDN --> Gateway["API Gateway"]
Gateway --> LB["Load Balancer"]
LB --> S1["Service A"]
LB --> S2["Service B"]
LB --> S3["Service C"]
実際 には、この 3 つは組 み合 わせて使用 され、それぞれの役割 を果 たします。
判断 フレームワーク
| 要件 | 推奨 ソリューション |
|---|---|
| サービスに複数 のインスタンス | Load Balancer |
| 外部公開 API | API Gateway |
| 認証 /レート制限 が必要 | API Gateway |
| SSL + キャッシュが必要 | Reverse Proxy |
| マイクロサービスアーキテクチャ | API Gateway + Load Balancer |
まとめ
- Reverse Proxy - 汎用 プロキシ、SSL、キャッシュ、圧縮 を処理
- Load Balancer - トラフィック分散 と高可用性 に特化
- API Gateway - API 管理 専用 、認証 ・制限 ・変換 を処理
3 つは競合 ではなく補完関係 にあり、要件 に応 じて組 み合 わせて使用 します。