ELB 完全ガイド【CLB/ALB/NLB 選択・料金・クロスゾーン】

ELB 4 つのタイプ(CLB/ALB/NLB/Gateway LB)の使い分け、料金・スループット・クロスゾーン・ゾーンシフト、試験での判断基準。

学習順Step 80 / 91サービスEC2試験ドメイン弾力性

ELB(Elastic Load Balancing)の役割

ロードバランサーは、複数のターゲット(EC2、IP、Lambda、コンテナなど)にトラフィックを分散し、ヘルスチェックで異常なターゲットを迂回することで、レイヤー全体の可用性を高めます。マネージドで容量の伸縮も行われるため、単一インスタンスに依存する構成より耐障害性とスケーラビリティを両立しやすくなります。

ELB はリージョン内の複数 AZ にまたがって配置しますが、リージョンをまたぐロードバランシングは別の仕組み(DNS やマルチリージョン構成)です。

🎯 ロードバランサーの選択ガイド

新規ワークロードでは CLB(Classic Load Balancer) はレガシー扱いで、ALB/NLB が第一候補になることが多いです。

詳細比較表

項目 CLB ALB NLB Gateway LB
OSI レイヤー L4/L7 L7(アプリケーション層) L4(トランスポート層) L3(ネットワーク層)
スループット 標準 標準 超高スループット(100 万 RPS+) アプライアンス向け
レイテンシ 超低遅延(µs 単位) 透過型
固定 IP × × ✓(Elastic IP 対応)
ルーティング ホストベース(限定) パス、ホスト、クエリ、ヘッダー ターゲット IP 直指定 透過的転送
接続タイプ ステートフル ステートフル ステートフル ステートレス
クロスゾーン 後から有効化 デフォルト有効 デフォルト無効(有効化時転送料) アプライアンス依存
料金 LCU(処理量) LCU(新規接続・処理バイト・ルール) LCU + クロスゾーン有効時転送料 LCU + GENEVE 処理
認可統合 簡易 Lambda オーサライザー、Cognito ≈ ALB ×
戻りトラフィック LB 経由 LB 経由 LP 回避可能(フローティング) -
推奨用途 レガシー環境のみ マイクロサービス、Web アプリ ゲーミング、IoT、UDP、超低遅延 ファイアウォール、検査

📊 ロードバランサー選択フロー

双方向通信で L3 ネットワークアプライアンス必要?
  ├─ YES → Gateway Load Balancer
  └─ NO ↓

L4(TCP/UDP)向け、超高スループット、または超低遅延が必須?
  ├─ YES → Network Load Balancer
  └─ NO ↓

L7(HTTP/HTTPS)向け、パスベースルーティング、複数ターゲット?
  ├─ YES → Application Load Balancer(推奨)
  └─ NO ↓

レガシーシステムで CLB が必須?
  ├─ YES → Classic Load Balancer(ただし EOL を確認)
  └─ NO → Application Load Balancer がデフォルト

💰 料金・クロスゾーン設定の差分(試験頻出)

ALB vs NLB のクロスゾーン設定

設定 ALB NLB
デフォルト ✓ 有効 × 無効
有効化時の転送料 無料(公式の料金設定参照) 有料(GB 単価)
AWS Graviton ターゲット 対応 対応

試験ポイント:「NLB でクロスゾーン有効化 → AZ 間転送料が発生」という落とし穴が頻出。

月額料金の例(東京リージョン、月 1 億リクエスト)

LB タイプ 新規接続数 LCU 処理 クロスゾーン 月額(推定)
ALB 5000/s 1GB/s 無料 $130
NLB 1000/s 500 Mbps 無効時 $100 / 有効時 $150 $100~150
CLB - 転送量ベース - $30~50(だが EOL)

新規選択:ALB がバランス型、NLB が高性能型と覚えるのがテスト対策。


🔄 NLB の「戻りトラフィック フローティング」パターン

NLB では、クライアント → NLB → ターゲット の戻りトラフィック(レスポンス)が、NLB を経由せず、ターゲット からクライアントに直接返ることができます(Direct Server Return, DSR パターン)。

クライアント → NLB(ポート変換)→ ターゲット
                         ↓
             ターゲット → クライアント(直接返信)
                         ↑ NLB 経由しない

効果

  • NLB のスループットがボトルネックにならない
  • 超高スループット対応可能

制約

  • ターゲット(EC2)側でクライアント IP を見える設定が必要
  • ALB ではこの最適化が自動的に行われる

試験出題:「NLB で超高スループット実現 → DSR パターン理解が問われる」


Gateway Load Balancer 補足

Gateway Load Balancer は、サードパーティ製や AWS のネットワーク検査アプライアンスにトラフィックを流すための特殊な ELB です。Network Firewall を導入すると GLB が一緒に構成される、という説明が試験や解説でよく出ます。アプリの HTTP ルーティングというよりインスペクションのレイヤーです。

配置:パブリック/インターナル

  • インターネット向け … パブリックサブネットに配置し、クライアントから直接到達させる。
  • 内部向け(internal) … プライベートサブネットのみに置き、マイクロサービス間や社内クライアントからのみ到達させる。

どちらも セキュリティグループで許可プロトコルを絞ります。

リスナー・ルール・ターゲットグループ(ALB)

リスナーは、受け付けるプロトコルとポート(例: HTTPS 443)を定義します。ルールでは、パス・ホストヘッダー・クエリなど条件に応じて別のターゲットグループへ送るコンテンツベース/パスベースのルーティングが可能です。CLB は細かな条件分岐が苦手なため、マイクロサービスごとに振り分けたい場合は ALB が適します。

ターゲットグループには、インスタンス ID、IP、Lambda(ALB)などを登録します。ヘルスチェックはターゲットグループ単位で定義されるイメージを持つと、Auto Scaling 連携の問題を解きやすいです。

ヘルスチェックと CloudWatch

ターゲットがアン健全と判定されると、そのターゲットへは流しません。UnHealthyHostCountHealthyHostCount などのメトリクスを CloudWatch で監視し、Auto Scaling のスケーリングや通知に繋ぐのが典型的です。

  • アプリが落ちているが EC2 は running … EC2 ステータスだけでは分からない。ELB のヘルスチェックを使う意味がここにあります。

クロスゾーン負荷分散とゾーンシフト(試験の定番)

クロスゾーン負荷分散をオフにすると、ロードバランサーは各 AZ のターゲットに対して、その AZ に着いたリクエストを優先的に払い出しやすく、AZ 間で負荷が偏ることがあります。オンにすると、AZ をまたいでターゲットへより均等に近づけやすくなります。

次の対比は試験でも解説でもよく挙がります(料金と既定は公式の現行版で確認)。

  • ALBデフォルトでクロスゾーン有効。有効時の AZ 間データ転送の扱いは料金ページで確認。
  • NLBデフォルトでクロスゾーン無効の説明が多く、有効化すると AZ 間転送が有料になりやすい、という対比で試験に出ます。

ゾーンシフト(Zonal Shift) は、特定 AZ の劣化を検知したときに、他 AZ へ意図的にトラフィックを寄せるための機能です。クロスゾーンをオフにしてレイテンシ最優先にしているときほど、単一 AZ 障害とのセットで効いてきます。

スティッキーセッションと接続 draining

  • スティッキーセッション … 同一クライアントを一定時間同じターゲットへ寄せる。セッション状態をサーバー局所に持つレガシーアプリでは有効。ターゲット障害スケールインで別台に付き替わるため、完全な粘着は保証されない前提で設計します。
  • 接続 draining / 登録解除の遅延 … ターゲットを外す際、処理中のリクエストが終わるまで待つ時間。デプロイやスケールインで途切れにくくします(ALB では deregistration delay などの名称で設定)。

TLS(HTTPS)と ACM

多くの構成では、クライアント ↔ ロードバランサーは TLSロードバランサー ↔ アプリは HTTP とし、証明書は ACM で管理します。試験では「どこに証明書をアタッチするか」「終端を LB にするかアプリまで持ち込むか」がセットで出ます。

アクセスログと課金のイメージ

  • アクセスログS3 に保存し、障害調査・監査・分析に使います。
  • ALB/NLB の課金は LCU(Load Balancer Capacity Unit) ベースが中心で、新規接続数・処理バイト数・ルール評価などが絡みます。CLB はデータ転送量ベースと説明されることがあります。

よくある誤答パターン(SAA)

  • 「NLB も ALB もクロスゾーンの既定と転送料の扱いは同じ」→ 誤りになりやすい別物として暗記)。
  • 「CLB を選べば一番シンプルだから新規も CLB」→ シナリオによっては ALB/NLB が推奨
  • 「ELB がヘルスチェックを通したからアプリも必ず正常」→ ヘルスチェックのパス次第で誤検知もあり得る(設定の話)。

公式ドキュメント(深掘り)

重要ポイント

  • CLB = レガシー(新規は推奨されない)
  • ALB = L7・パスベースルーティング・デフォルトクロスゾーン有効・マイクロサービス向け
  • NLB = L4・超低遅延・固定 IP・ゲーミング/IoT・デフォルトクロスゾーン無効・片方向返信パス
  • Gateway LB = ネットワークアプライアンス検査用(Network Firewall とセット)
  • 料金・クロスゾーン設定の差分が試験頻出

このトピックの学習を完了しますか?

完了状態はいつでも切り替えられます