負荷分散の仕組み — ロードバランサとスケールアウト
導入
人気サービスのセール開始直後に「つながらない」経験はないでしょうか。その対策として企業が使うのがロードバランサです。大量のアクセスをうまく分散させる仕組みを確認していきます。
なぜ重要か
インターネットサービスは、突発的なアクセス増加に耐えられなければ、せっかくのビジネス機会を逃すだけでなく、社会的な信頼まで失いかねません。2019年のある大手ECサイトのセール初日にサーバーダウンが発生し、数十億円規模の損失が報じられた事例は記憶に新しいところです。
負荷分散の仕組みを理解することは、ITパスポートのテクノロジ系分野での得点に直結します。ロードバランサ・スケールアウト・スケールアップ・ラウンドロビンといった用語はいずれも頻出であり、単に暗記するだけでなく「なぜその方式が使われるのか」という文脈とセットで理解することが試験での確実な正答につながります。
実務においても、クラウドサービスの普及によって負荷分散はエンジニアだけでなくITを活用するすべての職種に関わる知識になっています。自社システムの信頼性設計や調達の判断においても、ここで学ぶ概念が役立ちます。
くわしく知ろう
ロードバランサ(負荷分散装置)とは、クライアントからのリクエストを複数のサーバーに振り分け、特定のサーバーへの負荷集中を防ぐ機能を指します。1台のサーバーにすべてのリクエストが集中するとパフォーマンスが低下し、最悪の場合はサービス停止に至りますが、ロードバランサが間に入ることで均等に処理を分担できます。
振り分けアルゴリズムとして最も基本的なのがラウンドロビンです。リクエストを順番に各サーバーへ均等に割り当てる方式で、設定がシンプルなため広く採用されています。このほかに、各サーバーの現在の負荷状況を考慮して振り分け先を決める「最小接続数方式」なども存在します。
一方、スティッキーセッションとは、同一ユーザーのリクエストを毎回同じサーバーに転送し続ける仕組みを指します。ログイン情報などセッション状態をサーバー側に保持するアプリケーションでは、リクエストのたびに異なるサーバーに振り分けられると状態が引き継がれないため、スティッキーセッションが必要になります。
処理能力を増やす方法には2種類あります。スケールアップはサーバー1台のCPUやメモリを強化する垂直方向の増強です。一方、スケールアウトはサーバーの台数を増やす水平方向の増強で、ロードバランサと組み合わせることで柔軟に拡張できます。クラウド環境ではアクセスの増減に応じて自動的にサーバー台数を増減させるオートスケール機能もよく利用されています。
具体例で理解する
たとえばECサイトのセールでアクセスが急増した場合、ロードバランサが3台のサーバーにリクエストをラウンドロビンで均等に振り分けることで、1台あたりの負荷を3分の1程度に抑えられます。スケールアウトでサーバーをさらに追加すれば、そのまま振り分け先を増やして対応できます。一方で、ショッピングカートの内容はセッションで管理されているため、スティッキーセッションを設定して同一ユーザーを同じサーバーに固定することで、カートが空になるといった不具合を防いでいます。
試験での出題パターン
【パターン1:ロードバランサの役割を問う選択問題】
「クライアントからのリクエストを複数のサーバーに振り分けて負荷を分散させる装置はどれか」という形式で出題されます。バックアップ・ファイアウォール・DNSサーバーといった紛らわしい選択肢の中から正確に選べるよう、ロードバランサの本質的な役割(振り分けによる負荷分散)を言葉で説明できるレベルまで理解しておくと安心です。
【パターン2:スケールアウトとスケールアップの区別を問う問題】
「サーバーの台数を増やして処理能力を高める方式はどれか」という問いが典型です。スケールアウトは台数を増やす水平拡張、スケールアップは1台の性能を高める垂直拡張として覚えておきます。「アウト=外に広がる(台数増)」「アップ=上に伸びる(性能向上)」というイメージで区別する方法が覚えやすいでしょう。
【パターン3:振り分けアルゴリズムを問う問題】
ラウンドロビンの説明として「リクエストを順番に均等に割り当てる」という内容が正解になるパターンです。ラウンドロビンは負荷分散だけでなく、DNSのラウンドロビンとして複数IPアドレスを順番に返す仕組みでも登場するため、文脈を区別して理解しておくことが重要です。
よくある間違い・紛らわしいポイント
【スケールアウトとスケールアップの混同】
試験でも実務でも最も混同されやすいペアです。スケールアウトは台数を増やす方法なので初期コストを分散できる反面、サーバー間の整合性管理が複雑になります。スケールアップはサーバーを1台のまま高性能化するため管理はシンプルですが、物理的な上限があります。ロードバランサが本領を発揮するのはスケールアウト構成であることを意識してください。
【ラウンドロビンとスティッキーセッションの関係】
ラウンドロビンは均等振り分けが基本ですが、スティッキーセッションを有効にすると同一ユーザーのリクエストは常に同じサーバーに転送されます。「ラウンドロビンとスティッキーセッションは両立しない」と思い込むのは誤りで、実際には「ラウンドロビンで最初の接続先を決定し、以降は同じサーバーに固定する」という組み合わせが一般的に使われています。
【オートスケールとロードバランサの区別】
オートスケールはサーバーの台数を自動で増減させる仕組みであり、ロードバランサは増えたサーバーにリクエストを振り分ける仕組みです。どちらか一方だけで負荷対策が完結するわけではなく、両者を組み合わせることで高可用性なシステムが実現します。
まとめ・試験ポイント
- ロードバランサ=複数サーバーへのリクエスト振り分けで負荷を分散
- ラウンドロビン=リクエストを順番に均等配分する基本アルゴリズム
- スティッキーセッション=同一ユーザーを同じサーバーに固定する仕組み
- スケールアウト=サーバー台数を増やす水平拡張(ロードバランサと組み合わせる)
- スケールアップ=サーバー1台の性能を高める垂直拡張
- オートスケール=負荷に応じてサーバー台数を自動増減するクラウド機能
- 試験ではスケールアウトとスケールアップの違い、ラウンドロビンの説明が頻出
学習した内容を試験形式で確認しよう。ITパスポート入門試験100問に挑戦できます。
入門試験100問に挑戦する