日記
らんきん5! のシステム構成Edit

らんきん5! は永遠のベータ版なので、今後どんどん変わっていくかもしれないけれども、ひとまず現バージョンにおいての話。

サーバーはもともと利用していたさくらのVPS 512が3台。昔はさくらの専用サーバーを3台(10000円×3)借りていたことを考えると、さくらのVPS 512が3台(1000円×3)なんて安くなったものだなー。

ひとまずスモールスタートなので、さくらのVPS 512が1台で始めようと思っていたんだけど、どうせならばスケールアウトのテストもかねて無駄に3台使った構成から始めてみた。内容的には1台でも十分まかなえる。

WebサーバーはApache 2.2.3。スタティックドキュメント配信、アプリケーションサーバー、リバースプロキシー&ロードバランサーとして利用。3台とも同一構成で並べつつ、1台にはmod_proxy_balancerを入れて、そこでいったんリクエストを受け付けてからstickysessionで3台に回している。

サーバーサイドスクリプトエンジンはPHP 5.3.8/mod_php/APC。フレームワークはZend Framework 1.11.11。ごくごく標準的なZend FrameworkのWebアプリケーション構成にしてある。

クライアントサイドJavaScriptフレームワークはjQuery。PC版もモバイル版も同じ。最初モバイル版はjQuery Mobileで作ろうとしていろいろいじってみたんだけど、このサイトではあまり手間対効果のバランスが良くなかったんでやめた。現状のスマートフォン版はレイアウトHTMLを別物に差し替えて、CSSレベルで見た目を調整しているだけ。

DBサーバーはMySQL 5.5.17+mroonga。3台それぞれに同一構成でインストールしつつ、1台をマスター、残り2台をスレーブにしている。Zend_Db_Table/Zend_Db_Table_RowからDBアクセスを分散させる方法は、結構悩みどころだね。今回実装した方法がどのくらい使えるかはしばらく検証してみないと。

日本語全文検索エンジンは、最近はずっとtritonnを使ってきたんだけど、さすがにそろそろmroongaに乗り換えるべきだろうと、初めて使ってみた。ただ、最低限の日本語全文検索エンジンとしてしか使っていないんで、groongaらしい機能は全然触っていない。

memcachedを各サーバーに入れて、それぞれ用のセッションサーバーとして利用しているけれども、さくらのVPS 512だとメモリがもったいないんで、ファイルベースのセッションに戻しちゃうかも。

それぞれの詳しい内容については、またあとで。

Published At2012-01-11 20:03Updated At2012-01-11 20:03