2007年04月05日
ブログサーチ顛末記2 サーバー構成

昨日に引き続き、作成したブログ検索サイトについて。本日は、サーバー構成についてまとめておきます。
サーバーの構成は以下のとおり。
・Webサーバー兼リバースプロキシーサーバー×1
・アプリケーションサーバー×1
・DBサーバー×2(マスター×1、スレーブ×1)
・クローラー×1
という5台構成になっています。
現状、アクセスの負荷がないため、サービスインができる本当の最小構成です。
もう少し詳しく見ていきます。
ハードウェア
CPU:Pentium D 820(2.80GHz)
メモリ:Webサーバー、アプリケーションサーバーには1GB、
DBのマスターに2GB、スレーブに3GB、クローラーに2GB
ディスク:SATA 80GBのソフトウェアRAID
ソフトウェア
Webサーバー兼リバースプロキシーサーバー:Apache 2.2+mod_proxy_balancer
アプリケーションサーバー:Apache 2.0、PHP5.1
DBマスター:MySQL 4.0.27
DBスレーブ:MySQL 4.0.27+senna
クローラー:MySQL 4.1.20+Plaggerベースのクローラー
※それぞれのバージョンの理由なんかは、また改めて述べます。
トラフィックが増えてきた場合に、アプリケーションサーバーとDBスレーブを増やしていけば対応できるような構成にしています。ここらへんは、はてなのシステム構成などを参考にしています。
まるごとPerl!の事例編や、Software Design 1月号の特集なんかが大変参考になります。
とまぁ、こんな感じのサーバー構成になっています。
次回はブログ検索サイトがどう動いているのかについてまとめてみます。
ブログのエントリーをどのようにして収集し、データベースに格納し、検索出来るようにしているのか、ということについてです。楽しみにしている人がいるかどうか分かりませんが、お楽しみに。
ついでのお話。
ブログ検索サイトとしてNAMAANを目標としたのはいいのですが、実際にNAMAANがどれくらいのデーターを収集しているのかが当初見当もつかず、またそういった情報を見つけ出すことも出来ませんでした。そのため、新たに作るとして、どれくらいのデーター量になるのか、サーバーを何台用意すればよいかが判断できずにおりました。
そこで、サーバーを用意する前に、まずは古いPCに開発環境を作成し、クローラーと簡単な検索インターフェイスを作成のうえ、ためしにブログのエントリーの収集を開始してみました。
そして、ある程度エントリーがたまったところで、いくつかのキーワードで返ってくる検索結果を元に、推測で必要なスペックを算出した次第です。
例えば10万件のエントリーを収集した時点で、“日本”というキーワードでヒットするエントリーが50件だとします。一方NAMAANでは、“日本”というキーワードでヒットするエントリーが5,000件あったとすると、その差は100倍。ならばNAMAANは1,000万件のエントリーを保存しているに違いない。などといった具合です(上記の数は適当な数値です)。
ひとつのキーワード自体では正確さに欠けますが、いくつものキーワードで探っていくと大体正解に近い数が導き出せるはずです。
上記で算出した値は、公開して良いものか分からないので伏せますが、今回作成したブログ検索サイトでは、毎日30万件程度の新着のブログエントリーを収集し、それを過去2週間分まで検索できるように、という仕様で作成しました。
投稿者 田中@グリニッジ : 2007年04月05日 00:24
トラックバック
このエントリーのトラックバックURL:
http://blog.tanaka-cs.com/mt/mt-tb.cgi/125
