Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Laravelのセッション管理でフレームワークの オーバーライドが必要になった話
Search
TaikiKawamura
October 11, 2021
Programming
610
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Laravelのセッション管理でフレームワークの オーバーライドが必要になった話
TaikiKawamura
October 11, 2021
More Decks by TaikiKawamura
See All by TaikiKawamura
Laravelでのキャッシュの持ち方とAWS Fargateやイミュータブルインフラとの向き合い方
taikikawamura
1
650
Other Decks in Programming
See All in Programming
GKE アップグレード前に知っておきたい Blue/Green と PDB の関係
stkk
0
140
異なる設計思想のフレームワークを経験して得た学び
amekuhideki
2
1.5k
30年振りにコンパイラの定数整数除算を改善した
herumi
9
4.4k
【DroidKaigi 2026】「アクセシビリティを利用するとき、 アクセシビリティもまたこちらを利用している」 〜マルウェアによる攻撃と防衛について〜
halunoyo
0
330
「つくるAI」だけではバグは見つからない ~テストに必要な「見つけるAI」を分離させる戦略~
mfunaki
0
230
私のClaude Code活用法 (個人開発編) - PHPerKaigi mini #4(2026/08/24)
panda_program
1
210
Deep dive into the select statement (GopherCon UK)
jespino
0
170
AI駆動開発にグラフDBを重ねてみた
satoshi256kbyte
2
720
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
0
130
新人はどこまで自力でやり、どこからAIに頼るべきか/エンジニア育成に向き合う_先輩たちの悩みと知見共有会
toppan_digital_dev
1
550
The Good Stuff, Not the Slop: Engineering High-Quality Android Apps with Modern AI Tooling
danybony
0
160
KotlinConf Extended South Korea 2026 Keynote
l2hyunwoo
0
130
Featured
See All Featured
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.2k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.5k
Code Review Best Practice
trishagee
74
20k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
230
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
65k
Side Projects
sachag
455
43k
Leo the Paperboy
mayatellez
8
2.2k
Product Roadmaps are Hard
iamctodd
55
13k
Become a Pro
speakerdeck
PRO
31
6.2k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Deep Space Network (abreviated)
tonyrice
0
290
Thoughts on Productivity
jonyablonski
76
5.4k
Transcript
© Copyright 2021 Relic Inc. All rights reserved. -BSBWFMͷηογϣϯཧͰϑϨʔϜϫʔΫͷ ΦʔόʔϥΠυ͕ඞཁʹͳͬͨ
גࣜձࣾ3FMJDՏଜ ଠथ
ࣗݾհ • 河村 太樹(かわむら たいき) • 株式会社Relic テクノロジープラットフォームグループ マネージャー
• 主としている開発業務 • バックエンド開発 • インフラ構築・SRE • まれにVuexの部分も書いたり • 趣味 • バイク・ドライブ • 酒 • マンガ • キャンプ・BBQ • 軽い登⼭←New!!
ޠͷ࢝·Γ • ある⽇河村くんは某社にジョインし、2,3カ⽉後にリリースされる案件のPJに配属され ました • ⾯談では「インフラ構築得意です」と⾔っていたので検証環境と本番環境の構築も頼ま れました • 検証環境を作ったのでいじってもらったのですが、なんかセッションが保持されない!
と⾔われました。確かに河村くんはインフラ構築やってきた⼈ですが、久しぶりに1か らのサービスで作ったので、「あぁ、ローカルじゃない複数台構成のときにどうするか 抜けてたわ」となったのでした・・・
-BSBWFM ʹݶΒͣ ͷηογϣϯσʔλཧํ๏ • file • cookie • database
• memcached/redis • array • (Laravelにあるだけでリクエスト間で保持されないため、除外)
ͲΕΛ͍·͔͢ʁ • file • 本番等で複数台サーバがあるときに、特定のサーバに⾏かないといけない • スティッキーセッションを使えば解決するけれども、インフラエンジニアとして は、そもそもWebサーバがステートフルである状態に精神が耐えられない •
cookie • ⼀⾒楽そうだが、サイズに上限がある&実際に簡単に到達したので本番⽤途では 不適 • ブラウザによって異なるらしいが、4096byteが上限なのもあり、あてにはで きない • database • 無難案ではある • インフラエンジニアとしてはリレーショナルでもないデータをRDBで管理したく ない • memcached/redis • 難が⼀番なく、個⼈的におすすめ。
͡Ό͋3FEJTΛ͓͏ʂ • 使えれば問題なかったが、のっぴきならない?事情で使えなかった
͡Ό͋EBUBCBTFΛ͓͏ • 苦悩の始まりだった
Τϥʔ͕ग़ͨ
Կ͕ىͬͨ͜ʁ • Databaseでセッションを管理するときだけ、なぜか頑張ってセッションには必要な さそうなデータを取得しようとする • このサービスではユーザと管理者のセッションを両⽅管理していた • 取りたいデータがとれなかった •
どちらかがなければ・・・
ࢀߟɿ$BDIF#BTFE'JMF4FTTJPO)BOEMFS
ࢀߟɿݩͷ%BUBCBTF4FTTJPO)BOEMFS
Ͳ͏ͬͯղܾͨ͠ʁ • DatabaseSessionHandlerをオーバーライド • SessionServiceProvidorを作り、オーバーライドしたSessionHandlerを使うように指 定する • configのprovidersに登録する •
sessionのドライバーにオーバーライドしたドライバーを指定する
DatabaseSessionHandlerをオーバーライド
DatabaseSessionHandlerをオーバーライド(元)
SessionServiceProvidorを作り、オーバーライ ドしたSessionHandlerを使うように指定する
configのprovidersに登録する
sessionのドライバーにオーバーライドしたドラ イバーを指定する
·ͱΊ • セッションデータ管理はRedisとかを使いましょう(笑) • のっぴきならない事情があったらオーバーライドしたドライバを依存性注⼊しま しょう!
͓Βͤ ൪એ • Relicのテクノロジープラットフォームグループ絶賛募集中です!! • バックエンドアプリケーション開発の経験がある⽅ • ミドルウェアセットアップ、チューニングの経験がある⽅ •
AWSの経験がある⽅ • フロントも触れます、な⽅ • SREの領域だけでなく共通基盤開発、開発⽀援システムを作ったり作ろうとしたり • ⾯⽩ポイント • Relicはまだまだ成⻑途中で課題がいっぱいいっぱい • 解決したらきっと⼤幅⼯数減、売上増が⾒込める! • どこか特定の領域だけでなく、全体最適を求めます • X: 全部の知識を詳しく知ってほしい、フルスタックエンジニア • O: 抽象的に必要なことを求める思考⼒ • O: 問題定義、解決能⼒ • 割とチームができたばかりで、どういうチームにしていきたいか、していく べきか、から議論可能
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠