============================================== 104:セッションデータの保存にはRDBかKVSを使おう ============================================== .. maigo:: DISKがいっぱいなので増設します * 後輩W: ``/tmp`` のDISK容量増やすにはどうすればいいですか? * 先輩T:お、なんで ``/tmp`` の容量を増やしたいの? * 後輩W:DISK FULLエラーが出て、調べてみたら ``/tmp`` がいっぱいで書き込めなくなったみたいなので。 * 先輩T:それ、先に何が ``/tmp`` の容量を食ってるか調べたほうがいいよ。たぶん :index:`セッション` じゃないかな……。 * -10分後- * 後輩W: ``session-xxxx`` っていうファイルがたくさんあったので、これを消します。 * 先輩T:待って待って、消したらログインしてる人に影響が出るし、消してもまた作られるよ。それに、開発サーバーと違って本番ではサーバーが2台あるから、今のままだとユーザーのログイン状態が安定しないような不具合の原因になるよ。 セッションは、ユーザーの一時的な情報を保存するのに使われます。 たとえば、ユーザーのログイン状態や、ショッピングカートの内容などです。 セッションのデータをどこに持つかは、Webアプリケーションサーバーで決めることができます。 ユーザーのブラウザ上に保存したり、サーバーのファイルシステムやメモリ、データベースなどを選択可能です。 DjangoなどのWebアプリケーションフレームワークをよくわからないまま使っていると、 サーバーのファイルシステムにセッションを保存するように設定してしまい、 セッションを格納したファイルで ``/tmp`` がいっぱいになってしまうことがあります。 ベストプラクティス ================== .. index:: RDB .. index:: KVS .. index:: NFS .. index:: Cookie セッションデータの保存には **RDB** か **KVS** を使いましょう。 .. omission:: 関連 ==== * :doc:`101-ファイルを格納するディレクトリを分散させる`