7月 07
BookFind.jpで使用するWebフレームワークを、Ruby on Railsからweb.pyに変更しました。サーバーは今まで通りSlicehostのVPS。Dreamhostは解約しました。
実際に移行をしたのは3週間ほど前なんですが、以前より随分と軽快に動作するようになりました。Railsは、自分の用途に対してはオーバースペックだったのと、うまく使いこなせなかったのが残念です。web.pyは他のフレームワークで標準装備されているような機能も付いてなかったりしますが、そこが逆にシンプルで良かったりもします。
テンプレートエンジンはweb.pyに付属のものではなく、Makoをチョイス。ドキュメントがちゃんとあるのと、使いやすさから選びました。ベンチマークの成績も良いようですね。テンプレート内にPythonのコードを書けるのも便利です。
Webサーバーはweb.pyの開発者さんも使っている、lighttpd。設定ファイルが読み書きしやすいです。LiteSpeedで、ブラウザベースの設定はかえって面倒だと感じたので、テキストベースの設定がちょうど良いです。lighttpdの設定の仕方は、Lighttpd – Linux Tipsがとても参考になりました。
RailsでのAjax用ライブラリはPrototypeとscript.aculo.usでしたが、今回はより新しいjQueryを採用しました。慣れると、すごく使いやすいです。使い方は『jQuery in Action』を読んで覚えました。リファレンス向きではありませんが、チュートリアル形式なので、一から勉強するには最適でした。
そのjQueryのファイルは、AJAX Libraries APIを通じて読み込まれるようにしています。jQueryのバージョンアップの手間が省けると同時に、インターネットの無駄なトラフィックも減らせて一石二鳥です。
そのほか、価格比較グラフの描画にGoogle Chart APIを使ったり、AJAX News Barで洋書関連のニュースを表示したりと、ちょっとGoogleに依存しすぎな気もします。アクセス解析もGoogle Analyticsですし、Googleからアクセスを遮断されでもしたら、大変そうです。
web.pyはCGI環境でも動くくらい軽快ですから、多機能を望まない方にはオススメのフレームワークです。
8月 03
Unofficial DreamHost Blogによると、DreamHostがPrivate Serverをサービスに加えたようです。
DreamHost Private Servers
従来の共有ホスト料金$7.95/monthにプラスして、「150 MB RAM / 150 MHz CPU」なら$15/monthでメモリとCPUの確保が保証されるみたいです。この容量は、あとからの変更もでき、再起動も不要だとか。
さらに、2つのIPアドレスが使えたり、サーバー名を自分で付けられたりします。DreamHostユーザーにうれしいのは、常駐プロセスやcronジョブを勝手にkillされないことかもしれません。
自分のサーバーの再起動はコントロールパネルからできるようですが、rootアクセスは許可されていないようです。
今のところ、申し込みは招待コードを持った人のみだそうです。既存ユーザーはコントロールパネルから、予約が可能です。
面白そうなサービスですが、実際に使ってみた方のレポートが読みたいところですね。
8月 01
Slicehostでインストールしたプログラムの設定も終わったので、そろそろドメインのアドレスを移転することにします。
ドメインネームはVALUE DOMAIN:バリュードメインで取得したものなので、ネームサーバーを変更するだけでOK。未使用ドメインを使ってテストもしておいたので、問題ないでしょう。
あと気になるのは、Google Appsで提供されているメールの設定。今使用中のDreamHostは「Google により確認済み」のリストに入っていますが、Slicehostはそうではありません。大丈夫だとは思いますが、一応成功した人の例を調べてみました。
domain.com. A 127.127.127.127
domain.com. NS ns1.slicehost.net.
domain.com. NS ns2.slicehost.net.
domain.com. NS ns3.slicehost.net.
domain.com. MX 1 ASPMX.L.GOOGLE.COM.
domain.com. MX 5 ALT1.ASPMX.L.GOOGLE.COM.
domain.com. MX 5 ALT2.ASPMX.L.GOOGLE.COM.
domain.com. MX 10 ASPMX2.GOOGLEMAIL.COM.
domain.com. MX 10 ASPMX3.GOOGLEMAIL.COM.
domain.com. MX 10 ASPMX4.GOOGLEMAIL.COM.
domain.com. MX 10 ASPMX5.GOOGLEMAIL.COM.
domain.com. TXT "v=spf1 include:aspmx.googlemail.com ~all"
CactusWax.net – slicehost configuration part 2
まさしく、これです。どうやら、問題なさそうですね。
どうやら、この方もDreamHostからSlicehostに移転したようです。「CactusWax.net – new hosting choice」に移転する理由がいくつもあげられていますが、DreamHostに対する典型的な不満ですね。移転することにした直接の引き金は、以前あったFTPパスワードの大量流出事件のようです。
選択したLinuxのディストリビューションはUbuntsu、WebサーバーはNginxで、Djangoを利用しているようです。
Slicehostでのサーバー設定例が連載されているので、興味のある方は覗いてみてはいかがでしょう?
7月 25
先週、PHPからRuby on Railsに移行したBookFind.jp。「DreamHostでRailsは重い」という情報も知っていましたがが、予想より軽快な印象で、うれしい誤算だと思っていました
ところが、週末になってsshでログインしてみると、恐ろしく重い。lsやrmコマンドを入力しても、数秒間レスポンスがなかったりする。vimなんて起動が遅すぎて、とても使う気になれないくらいでした。load averageを見てみると、1分平均で100を超えてるし…
100でも負荷が高いと思っていましたが、どうやら300を超えた例もあるようで。
定期的に高くなるなー。
本日はloadavg300台を記録。それも15分平均で。現在は普段の値に落ち着いているが、その普段の値ですら30を超えているのだ。オーバーロードもいいとこだ。
twist-bend coupling: DreamHostのload average
こちらの方も遭遇されてますね。
一ヶ月$7.95~・・・という悪魔的ハイスペックな仕様ですが、load averageが時間帯で100を超えることもある(!)ということはヒミツです><
peacock union【Web Designing Laboratory】 : Blog Archive : Google Appsを使って独自ドメインのGmailを利用する
Railsアプリにアクセスしてみると、500エラーが多発。この時点ではサーバーの処理が滞っているせいだと思っていたんですが、数分後にload averageが下がり始めてからも、いっこうに良くなる気配はありません。そもそも、処理がRailsまでいっていないみたい?
症状はこんな感じ。
- dispatch.fcgiのプロセスがなかなか起動しない
- 起動したdispatch.fcgiプロセスが無応答になる
- 無応答のdispatch.fcgiが増殖する
Googleで検索してみると、該当しそうな事例がいくつか見つかりました。対処法もいくつか公開されているようです。見つかった方法は、どれもdispatch.fcgiの起動時に、メソッドの動作を書き換えてからプロセスを起動するもの。
いろいろ試してみて、最終的には一番下の方法をとることにしました。ただ、エラーが頻発するのは相変わらずで、この対処に時間をとられるのが嫌になり、結局DreamHostからの移転を決意しました。Apache + FastCGIも、ちょっとこりごりな気分です。
ただ、週が開け、移転先に決めたSlicehostとの契約が終わった頃になって、エラーの発生が収まったのは皮肉なものです。何故だか、ずいぶん軽快になってますよ。
結局、こちらに書いてあるように、DreamHostには静的なコンテンツで構成されたサイトが適しているのかもしれません。トラブルの間も、Railを介さないで出力されるページキャッシュのHTMLファイルは高レスポンスで表示されていました。
The Host with the Most | Ruby on Rails for Newbies
7月 11
今日からBookFind.jpを運用するソフトウェアを、PHP + Smarty + SQLiteから、Ruby on Rails + MySQLに移行しました。
数ヶ月前、『かんたんRuby on RailsでWebアプリケーション開発』でScaffoldの便利さに感動して移行を決めたものの、Railsの決まり事を覚えるのに四苦八苦。やっとこさ、ここまでこぎ着けました。
応答速度は以前よりも遅くなってしまった面もありますが、これはRailsのせいと言うより、Amazon ECSで取得する項目を増やしたのが主な原因です。ただ、ある程度は覚悟の上でもあります。これまでは使っていなかったカスタマーレビューを、どうしても利用したかったからです。日米のカスタマーレビューを一度にチェックできるのは便利ですから。価格情報などは24時間で再取得しますが、それ以外のデータは一定期間保持できるので、2度目のリクエストからはレスポンスも良くなることを期待しています。
Ajaxの導入も含め、これからも随時更新していく予定です。
4月 12
BookFind.jpの、さくらインターネットからDreamHostへの移転がなんとか完了しました。
必要な情報は、ほとんどWikiで調べれば解決できると思います。コントロールパネルも弄っているうちに、だんだん使いこなせるようになってきました。
一番困ったのは、DreamHostでのDNS情報の登録に時間がかかったこと。
Weirdness on this domain...
We currently have no "zone" file for 指定したドメイン, and so you cannot modify DNS.
Are you sure you have this domain hosted with us? (This page won't do anything unless otakustore.jp's nameservers are set to ns1.dreamhost.com, ns2.dreamhost.com, and ns3.dreamhost.com.)
Nonetheless, we'll try and create one now. Please try reloading this page in a couple of minutes. Sorry for the delay!
10時間ぐらいかかって、ようやくこの注意書きが消えて、DNSの設定フォームが現れました。そのすぐ後に、外部からのアクセスが確認できましたから、DreamHost側のネームサーバーの情報更新が遅いのではないかと思います。
今度からは、DreamHostでの登録完了を確認した後で、ドメイン・レジストラのネームサーバーの変更を行うようにする方が良さそうです。
4月 10
DreamHostであらかじめ用意されたvimはまだバージョン6.3だったので、まずは最新版のvim 7.0をインストールしてみます。DreamHostではSubversionも使用できるので、vimのリポジトリからソースをチェックアウトすることができます。
$ cd ~/local/src
$ svn co https://svn.sourceforge.net/svnroot/vim/vim7
$ cd vim7/src
$ ./configure --prefix=$HOME/local --enable-multibyte --with-features=big
--disable-gui --without-x
$ make; make test
$ make install
後は、”.bashrc”に
alias vim='$HOME/local/bin/vim'
alias vi=vim
と書き加えて、最新のvimを使えるようになりました。”.vimrc”や”.vim”は、普段使っているものをscpでコピーしました。
さくらインターネットのFreeBSDでも、DreamHostのDebian GNU/Linuxでも、Mac OS Xでも、vimは簡単に同じ設定で使用できるのが良いですね。
Recent Comments