ただのにっき
2015-01-16(金) [長年日記]
■ この日記をHerokuへ移行実験中
最新のrubyはすでに$SAFEの4が使えなくなっていて、それはつまりtDiaryが使っているsandbox機構が用をなさなくなることを意味している。複数のユーザで同じホストを共有している場合、ユーザごとにアクセス権を分けるようにしないと、他人の日記データをいじったりできてしまうのでよろしくない。
というわけで複数ユーザをホストしているような場面では、suExecのような仕掛けを使うか、個々の日記をコンテナに入れるような運用に移行していかなければならない。それを見越してtDiary本体でも従来はローカルファイルに入れていたデータをデータベースにも入れられるようにする仕組みを作ったりと対応を進めているのだが、こないだリリースした4.1.0からプラグインのデータもデータベースに入れられるようになったので、そこそこ準備は整ってきた感じだ(まだ対応しているプラグインが少ないんだけど)。
Herokuのような揮発性のPaaSを使って普通に運用できることを確認するために、この日記のデータをHerokuにコピーしてみた。ストレージにはMongoDBを利用。
ちゃんとコンバータを書いたのでデータの移転作業は順調だったのだけど、なぜかTimeoutで日記が表示されなくて、なんでかなーと悩んでいたら、Amazonプラグインがおかしかった……というかProduct Advertising API用リバースプロキシが過アクセスでエラーを吐いていたのが原因という。そっちかよ(笑)。
rpaproxyはけっこうフリーライダーが多くて、毎秒1回くらいのペースでアクセスしてくるアフィリエイターがときどき発生する。見つけては弾くようにしてるんだけど、この作業自体を自動化しないとあかんなー。