ロードバランシング

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

インフラ可用性

ロードバランシングとは

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

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 / EKS ALB が必要
Lambda + API Gateway 不要 (自動)
EC2 ALB / NLB が必要

CloudFront との組み合わせ

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

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

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

関連用語