ChordWikiのサーバをさくらのVPSに移転

前から脳内で計画とシミュレーションしてたけどむしゃくしゃしてたので実行した。
さくらのクラウドがリリースされるのを待ってみたけど、よく見たら必要なかった。

目的

アクセス負荷対策

さくらのレンタルサーバをライトからプレミアムに移行したのが2010年11月で90万PV/月くらいだったが、最近は180万PV/月まで来ていて503 Service Temporarily Unavailableが結構出ている。Webalizerで見ると3%台前半。他のサービスも共存してるけど。
304 Not Modifiedを明示的に返したりrequireを減らすために一ファイルに突っ込んだりと負荷軽減策を打って来たが、一時的に軽減したものの焼け石に水っぽい。
そしてさくらのレンタルサーバでは同一ファイルに対するアクセス制限が課せられているという話が本当なら影響が大きいシステムなので、引っ越せば軽減できると考えた。

Ruby 1.9

「その時」が来て慌てないように早めに書いておこうと思った。共有レンタルサーバで独自にRubyのバージョン上げるのも環境がややこしくなるのでVPSへ。
しかしほとんど書き換えないであっさり動作した。

Unicode

EUC-JPで上等だと思ってたんだけど、コンテンツ自体は問題ないのだが、URLエンコードしたEUC-JPを正しく扱えないサービスが存在する。bit.lyとかGoogle +1とか。勝手にUTF-8扱いするらしい*1。あとGoogle Analyticsはデコードは正しくしてくれるのだが、APIで呼び出す時など再エンコードUTF-8にしてしまう。
旧URLからのリダイレクトで文字コード変換できない文字が一部あるような気がしたがスルー。

副産物

独自ドメイン

chordwiki.orgを取った。

URL正規化

mod_rewriteの使用もコード変更多そうだから躊躇していたがそうでもなかった。代表ページのpermalinkだけ正規化して編集ページなどはパラメータを使うところや、サブドメインjaを無駄に使うなど、もろもろWikipediaに倣う。

ランキングをGoogle Analytics

これまで自分でカウントしていたが、上記のUTF-8化でGoogle Analyticsから生成できるようになった。

未達成

HTML5化とデザイン一新

Wikiエンジンに大きく関わるし、どうせデザインセンスないから諦めた。

ログイン機構

編集履歴IPアドレスでなくOpenIDで残したいなぁ。
Twitter IDで実装。


これまでの蓄積データを文字コード変換して移動させたり、301リダイレクトの処理も問題なく、概ね無事に移転作業完了した、と思う。
ChordWiki : コード譜共有サイト 〜無料の歌詞とコードをシェアしよう

*1:COMPLETEDって書いてあるけど嘘。