2.転送量分散Webクラスタモデル

一般的にクラスタシステムは、一部のシステムダウンなどが全体の業務に影響を与えないようにしシステムの可用性(Availability)を向上させるために組むフェイルオーバークラスタ、あるいはサーバーでのデータ処理負荷を軽減するために組む負荷分散(ロードバランス)クラスタなど、様々な種類・目的があり、それぞれ色々な実装方法がある。

Web転送量分散のためのクラスタはロードバランスクラスタの一種となり、この分野では次のような実装方法が良く用いられている。

ミラーサイト構築 同じ内容のサイトをURLの異なる複数の場所に構築する。URLが異なる同じ内容のサイトが存在すると検索エンジン対策などの観点からすると混乱の元となり好ましくない場合もある。
DNSラウンドロビン方式 サーバー単位で完全ミラーを作りDNSで振り分ける。負荷分散(ロードバランス)クラスタなど大規模向け。大手検索ポータルサイトYahoo!のトップページなどはこの方式を採用している。
コーディネータ方式 専用の負荷分散ネットワーク機器(ルータなど)を導入することでアクセス分散を図る。大規模チャット等、完全にミラーサーバーを分離出来ない高度なクラスタを構成する場合などに用いられる。分散の程度により様々。


CGI処理など動的なコンテンツを分散させるのと、単にアクセスのネットワーク上のトラフィックを軽減させるためにクラスタを組むのでは必要な構成も方法も異なるが、今ここでは適当な共用または専用のレンタルサーバーを使用しており、DNSやネットワークの構成は自由に変更できない環境において、画像や動画など特に転送量を必要とするスタティックなコンテンツ(ファイル)のみを分散させ、単純に転送量の軽減を図る場合を考える。

具体的には今現在、下の図1のように独自ドメイン・単一サーバー体系でサイトを運営しており転送量が問題となっているとしよう。

単一サーバーシステム
図1.単一サーバーシステム

そこで動画や画像など、特に転送量を必要とするが、必ずしも独自ドメインの同一サーバー上に置いてなくても良いファイル群について、それらをミラー化する子サーバーを幾つか導入し、HTMLを置いている親サーバーからリダイレクトする形で転送量分散を実現しようというのが、今ここで考えるWebクラスタシステムである。
Webクラスタシステム
図2.Webクラスタシステム

画像等を他のサーバーに置くというのは転送量を減らすための自然なアイディアであり、これだけではあまり新しさがないようにも見える。 しかし、ここでのポイントは単に画像等を他のサーバーに置いてHTML内からそちらを参照するというものではなく、次ページで述べるApacheのRewriteモジュールを使用してミラーへの振り分けを自動に行い、サイト運営者もクライアントユーザーも画像等がミラーに置かれていることを何ら意識しなくて済み、また将来の転送量増加にもミラーサーバーを追加するだけで柔軟に対応できるスケーラビリティを持った形でシステムを構成するという点であることを強調しておこう。

さて、次に実際のサーバー設定に移る前に、ここで具体的なサイト運営にかかるコストを試算してみよう。以下のようなレンタルサーバープランがある場合を考える。

  月額利用料 転送量制限
サブドメイン共用 \700 4.5GB/week
独自ドメイン共用 \2,000 9.0GB/week
独自ドメイン専用 \10,000 18.0GB/week

予算月額\10,000で、独自ドメインを利用したい場合に、順当な選択としては「独自ドメイン専用」を借りて単一サーバーで運営する方式となる。その場合、転送量制限は18GB/Weekである。

しかし、「独自ドメイン共用」1アカウントと「サブドメイン共用」を10アカウント(合計月額\9,000)借りて上記のクラスターを構成すれば、転送量は合計で9+4.5x10=54GB/Weekとなる。

例として画像等が90%,HTML等のテキストが10%のページ構成のサイトを構築した場合、サイトにアクセス出来るユーザー数を計算してみると、単一サーバーの場合と比較してクラスタシステムはその数、およそ2.8倍となり、どちらが得かは一目瞭然である。

ページTOPへ