ELBの種類と信頼性に効く機能

Classic/Application/Network/Gateway Load Balancerの使い分け、ヘルスチェック、クロスゾーン、ゾーンシフト、スティッキー、接続の切り替えなどを整理します。

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

ELB(Elastic Load Balancing)の役割

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

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

ロードバランサーの種類(試験で効く差分)

新規ワークロードでは CLB(Classic Load Balancer) はレガシー扱いで、ALB/NLB が第一候補になることが多いです。種類ごとの「決め手」を表にまとめます(数値・既定値は時期で変わるため、本番設計は公式の各ロードバランサー別ガイドで確認してください)。

種類 OSI 代表的なプロトコル 決め手になる特徴
CLB L4/L7 HTTP/HTTPS/TCP/SSL 旧世代。複雑な L7 ルールは弱い。課金はデータ転送量ベースと説明されることがある。
ALB L7 HTTP/HTTPS パス/ホストベースルーティング、WebSocket、gRPC(対応範囲はドキュメント参照)。デフォルトでクロスゾーン有効(後から無効化も可能)。
NLB L4 TCP/UDP/TLS 超高スループット・超低遅延固定 IP、ターゲットに IP を直接指定可能。デフォルトでクロスゾーン無効になりがちで、有効化時の AZ 間データ転送料に注意。戻りトラフィックが NLB を経由しない経路がある(フローティング)理解が試験で問われる。
Gateway LB L3 GENEVE 等 ネットワークアプライアンス(検査・ファイアウォール)向け。透過的にトラフィックを分散し、VPC ルートと連携。

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/NLB優先。課金はCLBは転送量、ALB/NLBはLCUが基本
  • ALBはL7・デフォルトでクロスゾーン有効。NLBはL4・固定IP・既定はクロスゾーン無効が一般的
  • NLBは戻りトラフィックがNLBを経由しないパスがある設計理解が試験に出る
  • GWLBは第3層ゲートウェイでアプライアンス(検査)向け。Network Firewallとセットで語られる
  • ACMでTLS終端し、ターゲットにはHTTPで渡す構成が典型

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

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