複数サーバー間セッションにZend_Cacheを利用する

Zend_Cacheのバックエンドmemcachedはとても便利ですね。請負で常駐で入って昨年3月にリリースされたサービスでも使いました。設計からリリースまでほとんどの作業をこなしたのですが、そこでは、会社の方針でPHPセッションは使用禁止*1、スケール目的にファーム構成がとられていました。ついでにクッキーは申請しないと使えないという・・・

複数サーバ間でのセッション維持

ファーム構成をしているので、フロントエンドは最低でも2台以上ありました。この状態で継続フォームを作成する場合、POSTでデータを引きまわしてもいいんですが、Zend_Cache+memcachedでセッション機構を作りました。どのみちフロントが複数台構成になった場合、PHPセッションでもsession.save_handlerを工夫して実装していると思いますが、ZFの機能だけでサクッとできてしまったのでそのまま使うことにしました。
ウィザード中の投稿画像のキャッシュなどにも効果的に使えます。
複数キャッシュサーバーを束ねて使ったのですが、パフォーマンス目的以外にも使い道があって面白いです。

*1:PHPセッションを禁止している理由はセキュリティなんでしょうが、自前でセッション機構を作る時にPHPセッションと同じ仕組みにしてしまったら一緒なんですけどね・・・という気もしますが、まぁ決まりごとなので。。