【図で理解】ロードバランサーとは?負荷分散の仕組みを解説

ロードバランサーとは、その名の通りサーバーにかかる負荷を、平等に振り分けるための装置のことを指します。これによって1つのサーバーにかかる負担を軽減したり、停止状態を防ぐことができたりします。ここではロードバランサーの仕組みについて分かりやすくご紹介します。

ロードバランサーとは?

ロード(load、負荷)+バランサー(Balancer、平衡を保つためのもの)で、サーバーやネットワークに関連する用語であり、装置の名称です。この仕組みにより、Webサイトへのアクセス集中やサーバー故障などの場合でも、アクセス中の利用者に安定したサービス提供を継続可能になります。

まず、そもそも各種サーバーへのロードとは何かについてふれたあと、ロードをバランス良く処理するための、ロードバランサーの仕組みを解説します。

ロード(負荷)とは?

インターネットから各種サーバーにアクセスがあると、サーバーはその機器に搭載されているCPUやメモリーなどのリソースを使って指示を処理します。その結果が利用者のパソコンに送られて、指示内容がブラウザに表示されます。

アクセス数がわずかで、処理数が少ないうちは問題となりません。ところが何らかの理由でアクセスが集中し処理数が激増すると、利用者のブラウザでのページ表示が極端に遅くなったり、表示されなくなったりします。この滞っているときが、高い負荷の状態です。

さらに負荷の程度やその対象は一定ではないため、負荷を軽減するために絶対に安全な解決策はありません。やはりある程度の余裕と柔軟性のある対策が必要です。その一つが、この記事の主題であるロードバランサーの導入です。

ロードバランサーの種類

一口にロードバランサーと言っても、機器を配置(構成)する位置により以下の2種類に分類できます。

(1) Two-Arm (inline) (2) One-Arm
配置場所 通信経路上 見た目はサーバー類と並列
メリット 構成がシンプルでわかりやすい 負荷軽減、ロードバランサー自体がボトルネックにならない
デメリット ロードバランサー自体を冗長化しないと機器の障害対応ができない 通信経路を把握しづらい

この記事では(1)Two-Arm (inline)をもとに、以下解説を進めていきます。

ロードバランサーの仕組み

Two-Arm (inline)型では図のように、インターネットと各種サーバーの間にロードバランサーを配置します。このときにロードバランサーに設定するIPアドレスを、仮想IPアドレスと呼び、Webアクセスを一手に受け付け、配下の適切なWebサーバーに割り振ります。割り振り方・内容によって、L4やL7のロードバランスと呼ばれます。

L4:IPアドレスとポート番号によって割り振る
L7:通信内容に応じて、リクエストを特定のサーバー群に割り振る

次にロードバランサーにきたリクエストが、実際の各種サーバーに転送されます。具体的には、各種サーバー側に割り振られたIPアドレス宛に対して送信されています。

そして、複数ある実際のサーバーの一つへ自動振り分けされて、負荷を分散することができます。

さらにロードバランサーでSSLアクセラレーターを使用することにより、本来サーバーごとに必要なSSL証明書を1本化したり、暗号化通信の負荷を軽減できたりします

ロードバランサーの役割と機能

それでは、役割と機能についてさらに詳しくみていきましょう。負荷分散の目的もあわせて説明していきます。

速度低下を防ぐ

SEO(検索エンジン最適化)の観点から、Webサイトのページ表示速度の高速化は重要です。そのためWebサイトの人気が出てアクセス数が増加しても、ページ表示速度が低下しないように対策しなければなりません。

サーバーに負荷がかかると、処理に時間がかかり、利用者は重く感じてしまいます。その主な原因は、処理件数が増加してサーバーのリソース(CPUやメモリーなど)を奪い合うためです。

そこでロードバランサーの登場です。実際のサーバーも1台から複数台に増やすことで、負荷を分散します。その結果、Webサイトのページ表示速度の低下を防ぎ、高速化することができます

ダウンしたサーバーへ送らない

1台のサーバーで運用している場合、万一故障するとサービスは停止し、修理しなければ元の状態に戻すことはできません。

一方ロードバランサーの仕組みでは、実際のサーバーを複数台で構成しているため、万一そのうちの1台が故障しても他のサーバーに自動切替すれば、利用者は継続してアクセスすることができます

故障したサーバーを修理してロードバランサーの仕組みに戻せば、再び従来の構成と機能を回復することができます。

サーバーのメインテナンス

サービスを一時停止せずに、サーバーのメインテナンスを行うことができます。これはロードバランサーの設定を、メインテナンス中のサーバーに振り分けしないようにすることで実現可能です。

特定のユーザーのアクセスを同じサーバーへ送る

Webアプリケーションのトランザクションの整合性を維持するために、過去に振り分けたサーバーと同じサーバーに送る機能があります。これを「パーシステンス」といいます。これにより、一連の処理を保つことができます。

負荷分散の役割を持つDNSラウンドロビンとの違い

ロードバランシング(負荷分散)を実現する手段は、ロードバランサーだけではなく、DNSラウンドロビンという簡易的な方法もあります。両者の違いを把握することは、より良いロードバランシング手法を導入するうえで大切です。

DNSラウンドロビンとは

ロードバラシングの一つで、ロードバランサーを使用しない手法です。DNSサーバーの設定ファイルの一部(この場合ゾーンファイル)に、設定情報を書き込むことで実現できます。

DNSサーバーには、ドメイン名とサーバーに割り振られているIPアドレスを結びつける機能があります。この対応しているIPアドレスを複数登録します。するとリクエスト毎に、登録した異なったIPアドレスを順番に返してきます。利用者によるアクセス毎に異なるサーバー(Webサーバーなど)につながるため、負荷を分散することができます。

このように、DNSラウンドロビンはDNSの設定ファイルの書き換えだけで、結果的にロードバラシングを実現できますが、デメリットもあります。詳しくは下記の比較表をご覧ください。

(参考1)webサーバーに対する負荷分散 DNSラウンドロビンとロードバランサー
(参考2)NSDとDNSラウンドロビン

ロードバランサーとDNSラウンドロビンの比較表

ロードバランサー DNSラウンドロビン
価格 装置代が高価 比較的安価(設定のみ)
サーバー障害検知 可能で、故障のサーバーには転送しない 通常は不可能で、故障のサーバーに転送するため、利用者には不具合となる
通信の継続性 有り、オンラインショッピング向き(パーシステンス) 無し
柔軟性(効率) 現在のコネクション数が最も小さいサーバーに転送可能(リーストコネクション) 負荷の大小に関係なく、あくまで順番通りに割り振る

負荷分散でサービス停止を防ぎましょう

ここまでいかがでしたか。ロードバラシングの仕組みは、アクセス数の多いWebサイトを運営するためには必要不可欠です。その仕組みには、ロードバランサーとDNSラウンドロビンがあり、ロードバランサーの方が機能的に上回っています。

カゴヤ・ジャパンではベアメタルサーバープランにて、専用ロードバランサーをオプションとして提供しています。ロードバランサー自体の冗長化にも対応しています。利用を検討されてみてはいかがでしょうか。

高速でセキュアな環境で運用できるWordpressユーザー向けに特化したWordPress専用サーバー

人気記事ランキングトップ10

カテゴリ一覧

新着記事Pick Up!