簡単にできるサーバーの負荷分散

WEBサイトを運営していたり、WEBデザイナーとしてサイトを管理している時にアクセス過多でサーバーが耐えられずアクセスしてもService Temporarily Unavailableとかサイトに繋がらず困った経験はありませんか?

Webの制作会社やIT系の企業で働くWEBデザイナーはシステム・SEの人に頼めばすぐに対応してもらえます。そもそもサーバーはちゃんと管理してくれてますからWEBデザイナーは気にしたことも無いかもしれません。ですがフリーとして独立したり、転職してメーカーとかのWeb担当になったりするとシステムに詳しい人がいなくて困る事があります、そうです私の事です、、、。

そんなときはまずレンタルサーバーを高機能な専用サーバーにするとかVPSにするとか考える訳ですが、Linuxだとかroot権限とか自分でサーバーを管理し、かつ料金が高い、それに数百万もするロードバランサをどうのこうのと非常にめんどくさそうな雰囲気が。

ということでお勧めなのが「DNSラウンドロビン」という技術です。
専用サーバーもロードバランサも必要ありません。共有サーバーを何台かレンタルして(別会社でも可)DNSで運営しているドメインにレンタルサーバーのIPアドレスを割り当てれば完了です。要はサーバーのミラーリングです。

DNS レコードの記述例です

example.com IN A 127.0.0.1
example.com IN A 127.0.0.2
example.com IN A 127.0.0.3

レンタルサーバーによって自分で設定できる場合とDNS設定依頼等で対応してくれる所とありますので確認してください。

ラウンドロビン設定が正しく機能しているかどうかの確認方法
コマンドプロンプトを開きます。
スタート→プログラム→アクセサリ→コマンドプロンプト
nslookup (ラウンドロビン設定を設定したドメイン名)と入力します。

DNSラウンドロビンが正しく設定されている場合は登録されているIPアドレスがすべて表示されます。さらにnslookupを繰り返すとIPアドレスの順番がランダムに入れ替わります。

コマンドプロンプトの表示例
コマンドプロンプトでnslookupを確認
Non-authoritative answer:とはそのドメインを直接管理しているDNSサーバーからの回答では無いという意味です。

DNSラウンドロビンはセッション管理や暗号化通信などがそのままではできません、ユーザーがアクセス中にサーバーが変わる可能性があるからです。

またアクセスの負荷状況でサーバーを振り分ける訳でなく単にランダム振り分けですのでトラフィック負荷が集中する可能性もあります。
ただ非常に簡単で安上がりに負荷分散ができるのでとてもお勧めです。

次回はDNSラウンドロビン設定時のWEBサイト管理のポイントをまとめてみたいと思います。