株価ガジェットの負荷対策

http://worris.sakura.ne.jp/worris/ で公開している株価や外国為替のガジェットとブログパーツが、503 Service Temporarily Unavailable ばかり返していることは認識していたが、ブログへのコメントで連絡があったので対策してみようと思った。


見てみると、Google ガジェットの利用者だけで合計10万ユーザーを超えている。
アクティブなユーザー数は分からないが、表示されないなら使うのを止めるだろうと思うものの、Google ガジェットの評価ページではボロクソに言われている。
だったらもうディレクトリから消してもらおうと考えたのだが、やり方が分からない。このへんから申請するみたいだけど、複雑過ぎる。トライしたが失敗した。
ファイルを消して 404 にしても消えないと来た(検索すると出てくるのだ)。さらに gmodules.com でホストされている分はコントロールが効かないように思える。


で、まず、単純にサーバを増強。さくらのレンタルサーバ ライトで運用していたが、プレミアムを契約。既存の契約をプラン変更することはできなくて、従来の契約を解約すれば同じ URL を使うことができるのだが、他のサービスにも使っているので引越しがめんどくさい。
Google ガジェットについては XML を書き換えればアクセス先を変更できる。ブログパーツ等は設置先のコードを書き換えることはできないのでリダイレクトすることになるが、まずは負荷分散させることにして後回し。


アクセスログを取って観察してみると、半分以上で 503 を返している。これはひどい
そして気付いたのが 150.70.84.〜からのアクセスが異常に多いこと。調べてみるとトレンドマイクロのウィルスソフトらしい。.htaccess で denyする。
ちなみに次に多いのがソニーIBM、ビクター、日立、リクルート博報堂ASAHIネット、ドコモ、リコーと来ている。時間帯では9時〜17時にかなり集中している。


外国為替Google ガジェットについては、より良いガジェットがある(JavaScript だけで書かれていてクライアントサイドで動き、先方のサーバに負担がかかることはない)ので、そちらへ誘導する。と言っても上記のようにコントロールが効かないので、301 リダイレクトで飛ばしてしまう。


これで 503 の頻度はある程度減った。
しばらくこれで様子を見ようと思う。


だが、そもそもこのガジェットの設計に問題がある。某サイトからスクレイピングして来て整形しているのだから、プロセスの持続時間が長くなるのは当然だ。
一応ある時からキャッシュを実装したのだが、焼け石に水な感じだった。
上述の外国為替ガジェットのように、JavaScript で書いてクライアントサイドでスクレイピングさせればいいのだが、もともとJavaScript に不慣れな上に Gadgets API での開発は気が滅入る。そもそもこの一連のサービスはある人からの依頼がきっかけで好奇心から作っていたもので、自分では必要ないし、もはや興味も失せている。
RSSXML で配信されていればまだ楽なのだが、株価や外国為替をフィードしているところは今もって無いようだ。


というか、Google が提供すれば済む話なのである。
アメリカの株価を表示するガジェットは米 Google 謹製だったと思う。だからその内オフィシャル版が出来て、サービスを続ける必要はなくなるだろうと思いながら、3年以上が経過した。
グーグル ジャパンは、急上昇ワードや Pay Per Post で遊んでないで、こういうところのローカライズをやるべきだと思う。