ロードバランシング

複数のサーバーにトラフィックを分散し、可用性とスケーラビリティを向上させる仕組み

インフラ可用性

ロードバランシングとは

ロードバランシング (Load Balancing) は、複数のサーバーにトラフィックを分散し、単一サーバーへの過負荷を防ぎ、可用性とスケーラビリティを向上させる仕組みである。

AWS のロードバランサー

AWS のロードバランサーを以下にまとめる。

タイプレイヤー用途
ALB (Application)L7 (HTTP)Web API、パスベースルーティング
NLB (Network)L4 (TCP/UDP)高スループット、低レイテンシ
CLB (Classic)L4/L7レガシー (非推奨)

分散アルゴリズム

分散アルゴリズムを以下に整理する。

アルゴリズム説明ALB
ラウンドロビン順番に振り分けデフォルト
最小接続数接続数が少ないサーバーに振り分け
IP ハッシュクライアント IP でサーバーを固定スティッキーセッション
加重重み付きで振り分け

パスベースルーティング

パスベースルーティングを図で示す。

ALB
  /api/*     → API サーバー (ECS)
  /static/*  → S3 (静的ファイル)
  /ws/*      → WebSocket サーバー

ヘルスチェックに失敗したターゲットはトラフィックから自動的に除外される。

サーバーレスでのロードバランシング

Lambda + API Gateway の場合、ロードバランシングは不要。API Gateway が自動的にリクエストを Lambda に振り分け、Lambda が自動スケールする。

アーキテクチャロードバランサー
ECS / EKSALB が必要
Lambda + API Gateway不要 (自動)
EC2ALB / NLB が必要

CloudFront との組み合わせ

CloudFront との 組み合わせを図で示す。

ユーザー → CloudFront (CDN) → ALB → ECS

CloudFront で静的コンテンツをキャッシュし、動的リクエストのみ ALB に転送する。

さらに掘り下げるなら関連書籍が参考になる。

この記事は役に立ちましたか?

関連用語

関連する記事