Talk
十年ものアプリのセッションストレージをクッキーからRedisに移行するときに気にしたこと、それでも起きてしまったこと
rails new したばかりのアプリケーションのセッションストレージはなんでしょう。そう、特別なテンプレートを使わない限り CookieStore です。
Rails のデフォルト設定ですし追加インフラも不要で利用も容易なため採用しているアプリケーションも多いでしょう。
しかしセキュリティのベストプラクティスによると、セッションストレージをサーバサイドに寄せるよう推奨されることも多いです。さてそこでセッションストレージをクッキーから切り替えるとしましょう。
アプリケーションがリリース前だったら? ストレージ切り替えを実装するだけですね。
リリース済みだがセッションのリセットが許容されるなら? ストレージを切り替えてデプロイするだけですね。
アプリケーションはリリース済みだし、セッションを維持したままストレージを切り替えたいときは? この場合なにをどうしていくべきか、Rails によるレールは敷かれていません。
私達は運用10年目となる1000万オーダーのセッションを持つ Rails アプリケーションのセッションストレージを、セッションを維持したまま Cookie から Redis (MemoryDB) に移行しました。
セッションストレージの移行をどんな方法で進めたか、どんな実装をしたか、どんなことを気にしていたか、それでも起きたトラブルや移行した結果についてお話しします。