ELB(Elastic Load Balancing)とは?
AWS が提供する ロードバランサ(負荷分散装置) の総称。
役割は以下の通り:
- トラフィックを複数のサーバーへ振り分け
- 障害が起きたサーバーを自動で除外
- スケールアウト・高可用性を実現
ELBには次の 3種類 があります:
- CLB(Classic Load Balancer)
- ALB(Application Load Balancer)
- NLB(Network Load Balancer)
① CLB(Classic Load Balancer)
L4(トランスポート層) / L7 (アプリケーション層) リバースプロキシ
TCP、SSL、HTTP、HTTPSに対応
現在は レガシー扱い。新規で使うメリットはほぼ無い。
主な特徴
- IPアドレスが固定されず、DNS名でアクセスする
- EC2-Classic(旧世代プラットフォーム)向けの歴史的背景を持つ
- ALB/NLB が登場するまでは標準的に使われていた
② ALB(Application Load Balancer)
L7リバースプロキシ/Webアプリ向けロードバランサ
HTTP/HTTPS を解析してルーティングできるため、
WebアプリやAPIで最も多く利用されるロードバランサ。
主な特徴
- IPアドレスが可変 → DNS必須(静的IPがない)
- HTTP/HTTPS の内容を理解して処理できる(L7)
- リクエスト/レスポンスどちらも ALB を通過(プロキシ方式)
- SSL終端(HTTPS処理)
- パスベース/ホストベースルーティング
- WAF 連携可能
- WebSocket / HTTP2 に対応
向いている用途
- Webアプリ(Rails, Next.js など)
- REST API / GraphQL API
- 予約サイト・ECサイト
- 認証(Cookie / Session)、CORS が必要なサービス
③ NLB(Network Load Balancer)
超高速・超大量トラフィックを捌く L4 NATロードバランサ
HTTP ではなく TCP/UDP レベルで処理するため、とにかく軽量で高速。
主な特徴
- L4(TCP/UDP)処理のみ → 超高速
- IP とポートを変換するだけ(NAT方式)
- クライアントIPがサーバーにそのまま届く
- リクエストのみ LB 通過 → レスポンスは直帰(超軽量)
- 毎秒数百万リクエストを処理可能
- 静的IPまたはElastic IPを付与できる
向いている用途
- 金融取引API(超低レイテンシ)
- ゲームサーバー(UDP)
- IoT デバイス通信
- gRPC
- VPN / VoIP
- 高速・大量トラフィックが必要なサービス
補足1:ALB vs CLB(なぜALBが主流?)
✔ パスベースルーティング
URL /aaa /bbb /ccc などに応じて転送先を変えられる。
CLB:URLを理解できないため 3台必要
ALB:1台でルーティング可能
✔ ホストベースルーティング
www_a.example.com
www_b.example.com
www_c.example.com
といった複数ホストも、ALBなら1台で振り分け可能。
補足2:リバースプロキシとロードバランサの違い
✔ リバースプロキシとは?
Webサーバーの“受付担当”
クライアントからのリクエストを受け取り、内部サーバーへ転送して応答を返す。
- SSL終端(HTTPS→HTTP変換)
- キャッシュ
- WAF
- HTTPヘッダ書き換え
- ルーティング
代表例:Nginx, Apache, CloudFront, ALB
✔ ロードバランサとは?
サーバーの負荷を分散するための仕組み
- トラフィックをサーバーへ均等に配分
- 障害サーバーの除外
- スケールアウトと組み合わせて高可用性
代表例:ALB, NLB, CLB
✔ ALB はどっち?
ALB = リバースプロキシ(L7) + ロードバランサ
つまり ALB は両方の性質を持っている
📚 参考文献