お問い合わせはこちら

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

公開
更新
ロードバランサーの解説

ロードバランサーとは、その名の通りサーバーにかかる負荷を、平等に振り分けるための装置のことを指します。これによって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サーバーの設定ファイルの一部(この場合ゾーンファイル)に、設定情報を書き込むことで実現できます。

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

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

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

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

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

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

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

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

オンプレの使い勝手をそのままに

KAGOYA FLEX

カゴヤ・ジャパンは、自社国内データセンターを基盤に、月額4,400円の低価格からクラウド導入を強力サポート。
VMware ベースの仮想サーバーと物理サーバーの組み合わせで最適なコストバランスをご提案いたします。
回線引き込みや、ライセンスの持ち込みなど柔軟な対応も可能です。