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
そして物語は更に何度目かのアプリ内通知再実装を迎える / Reimplement in app...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
moznion
August 19, 2017
Technology
1
4k
そして物語は更に何度目かのアプリ内通知再実装を迎える / Reimplement in app notification again
Kyoto.なんか #3の資料です
moznion
August 19, 2017
Tweet
Share
More Decks by moznion
See All by moznion
履歴テーブル、今回はこう作りました 〜 Delegated Types編 〜 / How We Built Our History Table This Time — With Delegated Types
moznion
16
12k
「データ無い! 腹立つ! 推論する!」から 「データ無い! 腹立つ! データを作る」へ チームでデータを作り、育てられるようにするまで / How can we create, use, and maintain data ourselves?
moznion
11
7.1k
避けられないI/O待ちに対処する: Rails アプリにおけるSSEとasync gemの活用 / Tackling Inevitable I/O Latency in Rails Apps with SSE and the async gem
moznion
4
5.8k
RubyKaigi Hack Space in Tokyo & 函館最速 "予習" 会 / RubyKaigi Hack Space in Tokyo & The Fastest Briefing of RubyKaigi 2026 in Hakodate
moznion
1
360
地に足の付いた現実的な技術選定から魔力のある体験を得る『AIレシート読み取り機能』のケーススタディ / From Grounded Tech Choices to Magical UX: A Case Study of AI Receipt Scanning
moznion
7
4.8k
Chrome Extension Techniques from Hell
moznion
1
280
Simple組み合わせ村から大都会Railsにやってきた俺は / Coming to Rails from the Simple
moznion
4
8.6k
AIレシート読み取り機能をRuby on Rails on AWSで実現するLLMにまつわるアレコレ / AI-based receipt reading function powered by LLM on Ruby on Rails on AWS
moznion
3
1.2k
Develop to Survive - YAPC::Hakodate 2024 Keynote
moznion
11
23k
Other Decks in Technology
See All in Technology
Dr. Werner Vogelsの14年のキーノートから紐解くエンジニアリング組織への処方箋@JAWS DAYS 2026
p0n
1
140
Tebiki Engineering Team Deck
tebiki
0
27k
AWS CDK「読めるけど書けない」を脱却するファーストステップ
smt7174
3
140
AIエージェント時代に備える AWS Organizations とアカウント設計
kossykinto
3
1.1k
S3はフラットである –AWS公式SDKにも存在した、 署名付きURLにおけるパストラバーサル脆弱性– / JAWS DAYS 2026
flatt_security
0
1.8k
Sansanでの認証基盤内製化と移行
sansantech
PRO
0
500
Scrumは歪む — 組織設計の原理原則
dashi
0
190
Zeal of the Convert: Taming Shai-Hulud with AI
ramimac
0
110
AI実装による「レビューボトルネック」を解消する仕様駆動開発(SDD)/ ai-sdd-review-bottleneck
rakus_dev
0
140
SRE NEXT 2026 CfP レビュアーが語る聞きたくなるプロポーザルとは?
yutakawasaki0911
1
360
Google系サービスで文字起こしから勝手にカレンダーを埋めるエージェントを作った話
risatube
0
190
頼れる Agentic AI を支える Datadog のオブザーバビリティ / Powering Reliable Agentic AI with Datadog Observability
aoto
PRO
0
140
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
135
9.8k
We Are The Robots
honzajavorek
0
200
Side Projects
sachag
455
43k
Chasing Engaging Ingredients in Design
codingconduct
0
140
Making Projects Easy
brettharned
120
6.6k
How GitHub (no longer) Works
holman
316
140k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
210
The untapped power of vector embeddings
frankvandijk
2
1.6k
Optimising Largest Contentful Paint
csswizardry
37
3.6k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
52k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
480
Transcript
ͦͯ͠ޠߋʹԿ͔ͷ ΞϓϦ௨࠶࣮Λܴ͑Δ @moznion
@moznion Server Sideଠ
લճͷ͋Β͢͡
લճͷ͋Β͢͡
લճͷ͋Β͢͡ ͿΓͷग़Ͱ͢
ΞϓϦ௨ͱ
ΞϓϦ௨ͱ
None
ΞϓϦ௨ͷ๊͑Δ
༗ޮͳσʔλߏΛߟ͑Δͷ͕͍͠ w 8SJUF)BSEͳΞʔΩςΫνϟʹ͢Δ͔ w 3FBE)BSEͳΞʔΩςΫνϟʹ͢Δ͔ w ϋΠϒϦου
8SJUF)BSEͳΞʔΩςΫνϟ Storage Mailbox Write
Read
8SJUF)BSEͳΞʔΩςΫνϟ Storage Mailbox 4VCTDSJCFSͱ.BJMCPY͕ରԠ
Write Read
8SJUF)BSEͳΞʔΩςΫνϟ w 1SPT w 3FBE͕؆୯ 4VCTDSJCFSʹඥͮ͘ .BJMCPYΛ୯ʹಡΊऔͬͯ͜ΕΔ w $POT
w 8SJUFσʔλྔ͕૿͑Δ εύΠΫ͢Δ w 4UPSBHFͷσʔλ༰ྔ͕૿͑Δ ޙड़
3FBE)BSEͳΞʔΩςΫνϟ Write Read
3FBE)BSEͳΞʔΩςΫνϟ Write Read ͭͷσʔλιʔε͔Β 4VCTDSJCFSຖʹҟͳΔ௨Λ औಘͯ͘͠Δ
3FBE)BSEͳΞʔΩςΫνϟ w 1SPT w 8SJUF͢Δσʔλྔ͕গͳͯ͘ࡁΉ NBTUFSͱͳΔσʔλ͚ͩͰྑ͍ w $POT w
ͭͷσʔλιʔεΛͱʹͯ͠ɼ ֤4VCTDSJCFSʹԠͨ͡௨ΛΈཱͯΔ ඞཁ͕͋ΔͷͰSFBE͕ෳࡶʹͳΓ͕ͪ ॏ͍ΫΤϦ
લճͷ͋Β͢͡
8SJUF)BSEͳ ΞʔΩςΫνϟΛ࠾༻
8SJUF)BSEͳ ΞʔΩςΫνϟΛ࠾༻
8SJUF)BSEͳ ΞʔΩςΫνϟΛ࠾༻
ৄࡉલճͷεϥΠυ IUUQTTQFBLFSEFDLDPNNP[OJPO SFJNQMFNFOUJOBQQOPUJpDBUJPO
ͦͷޙฏͳʑΛ ա͍͕ͯͨ͝͠ʜʜ
Redisյ յͱݴ͏ఔͰͳ͍
w σʔλྔ͕େ͖͘ͳΓ͗ͨ͢ w ඦ(#ͷΦʔμʔ w ͦΓΌͦ͏ͩ VTFSͿΜNBJMCPY͕͋Δ w 3FEJTΛཧ͍ͯ͠ΔΤϯδχΞ͔Β ʮͦΖͦΖצหͯ͘͠ΕʯͱݴΘΕΔ
3FEJTͷݶք
3FEJTͷݶք w ௨σʔλॖୀ͠ʹ͍͘ w ٳϢʔβͰ͋ͬͯɼͦͷϢʔβͷ ௨σʔλফͤͳ͍ ॖখ͋Γ͔ w ͭ·Γσʔλ૿͑ΔҰํ
3FEJTͷݶք w 3FEJT͕ѱ͍Θ͚Ͱͳ͍ʂʂʂʂ w Ϣʔεέʔε͕߹Θͳ͔ͬͨ w େྔͷӬଓσʔλ࣋ͨͤΔͷΉ͍ͣ
ݱࡏ
w ͩ·ͩ͠·͠3FEJTΛ͍ͬͯΔʜʜ ͣ
Ͳ͏͢Εྑ͍ͷ͔
Ͳ͏͢Εྑ͍ͷ͔
ͭΒ͍ʂʂ
͜͜ͰৼΓฦͬͯΈ·͠ΐ͏
ৼΓฦΓ w ͳͥ4UPSBHF͕ؤுΔඞཁ͕͋Δͷ͔ʁ w ݱ࣮తͳͰσʔλΛฦ͢4UPSBHF͕ ແਚଂʹ͋Εղܾ͢Δ w ಡΉํॻ͘ํɼʮ௨ʯΛද͢ ϑΟʔυతͳੜσʔλΛѻ͏ํָ͕Ͱ͋Δ
ৼΓฦΓ w ͳͥ4UPSBHF͕ؤுΔඞཁ͕͋Δͷ͔ʁ w ݱ࣮తͳͰσʔλΛฦ͢4UPSBHF͕ ແਚଂʹ͋Εղܾ͢Δ w ಡΉํॻ͘ํɼʮ௨ʯΛද͢ ϑΟʔυతͳੜσʔλΛѻ͏ํָ͕Ͱ͋Δ
ແਚଂͳετϨʔδʜʜ
Amazon S3
"NB[PO4 w આ໌ෆཁ w "84ͷ0CKFDU4UPSBHF w ແਚଂ ແਚଂͰͳ͍
ৼΓฦΓ w ͳͥ4UPSBHF͕ؤுΔඞཁ͕͋Δͷ͔ʁ w ݱ࣮తͳͰσʔλΛฦ͢4UPSBHF͕ ແਚଂʹ͋Εղܾ͢Δ w ಡΉํॻ͘ํɼʮ௨ʯΛද͢ ϑΟʔυతͳੜσʔλΛѻ͏ํָ͕Ͱ͋Δ
ৼΓฦΓ w ͳͥ4UPSBHF͕ؤுΔඞཁ͕͋Δͷ͔ʁ w ݱ࣮తͳͰσʔλΛฦ͢4UPSBHF͕ ແਚଂʹ͋Εղܾ͢Δ w ಡΉํॻ͘ํɼʮ௨ʯΛද͢ ϑΟʔυతͳੜσʔλΛѻ͏ํָ͕Ͱ͋Δ
ϑΟʔυʜʜ
RSS
344 w આ໌ෆཁ w 9.-Ͱهड़Մೳ w αʔόଆɾΫϥΠΞϯτଆΘͣॆ࣮ͨ͠ αϙʔτ w ࠷ۙ344ͬͯΑΓ"UPNͰ͔͢Ͷ
Write Feed 1 Feed 2 Feed 3
S3 Read ུ֓
ུ֓ w αʔό344 "UPN 'FFEͷϑΝΠϧΛ 4ʹ165 PS1"5$) w ΫϥΠΞϯτ4͔Β'FFEΛ(&5͖ͯ͠
ͯɼ344Ϧʔμʔ࣮ͳΓͳΜͳΓͰ௨ ΛಡΈऔΔ w γϯϓϧʂʂʂʂʂ
1SPT w 8SJUF)BSEʹͳͬͯ૬ख4͔ͩΒ ·͋େৎͰ͠ΐ͏ͱ͍͏҆৺ײ w 3FBE͕݅ଟ͘ͳͬͯ૬ख4͔ͩΒ ·͋େৎͰ͠ΐ͏ͱ͍͏҆৺ײ ୯ͳΔ'FFEpMFͷTFSWFͩ͠ʜʜ w
344ͱ͍͏ރΕٕͨज़ͷస༻ʹΑΔ҆৺ײ
$POT w 0CKFDU4UPSBHFͷ165ͱ͍͏ॲཧͷ ಛੑ্ɼߴͳଈ࣌ੑΛ࣋ͨͤΔͷ͕ ͍͠ w ೝূɾೝՄ w طಡཧ
ଈ࣌ੑʹ͍ͭͯͷ w ྫ͑ɼʮ164)௨͕ૹΒΕ͖ͯͨͷʹ ௨ը໘ʹ৽͍͠௨͕ແ͍ʯͱ͍͏ έʔε w ϑΟʔυͷߋ৽͕Ԇ͍ͯ͠ΔͷݪҼ
ଈ࣌ੑʹ͍ͭͯͷ w ʮϑΟʔυͷߋ৽͕ऴΘͬͨΒ164)௨ΛൃՐ ͢ΔʯΈ͍ͨͳΠϕϯτۦಈʹ͢Δख͋Δ υ ϝΠϯΠϕϯτతͳ w ͔͠͠߹ʹΑͬͯॲཧͷߴԽͷͨΊʹ164) ௨ૹ৴ͱϑΟʔυߋ৽ผͷϫʔΧϓϩηε͕
ඇಉظతʹͬͯΔɼΈ͍ͨͳͷ͋Γ·͢ΑͶ w ͍͠ɼ߹ʹΑΔͱ͔͠ݴ͑ͳ͍ʜʜ
ೝূɾೝՄ w ུ֓ਤͷΑ͏ͳૉͳߏͩͱɼ 4ͷύʔϚϦϯΫ͑͞Θ͔Ε୭Ͱ ௨ͷ༰͕ಡΈऔΕͯ͠·͏ w ଟ͘ͷ߹ͦΕϚζ͍Ͱ͠ΐ͏ Ϛζ͘ͳ͍߹͋Δ͔͠Εͳ͍
Write S3 Read ೝূɾೝՄ
º 6TFS͔ΒͷSFBE ڐՄ͠ͳ͍ Write S3 Read ೝূɾೝՄ
Write S3 Read ೝূɾೝՄ αʔό4ؒͷ SFBEͷΈڐՄ͢Δ
αʔόͰϓϩΩγ͢Δͱ /FUXPSLӽ͠ͷ*0͕ͪ ੜ͡ΔͷͰϘτϧωοΫ ʹͳΓ͏Δʜʜ Write S3 Read
ೝূɾೝՄ
ೝূɾೝՄ w 4Λ୯ͳΔόοΫΤϯυ4UPSBHFͱͯ͠ Έͳͯ͠ɼαʔόܦ༝ͰίϯςϯπΛฦ͢ Α͏ʹ͢Δ w γϯϓϧ͕ͩϓϩΩγ͍ͯ͠Δαʔό͕ ϘτϧωοΫʹͳΔՄೳੑ͕͋Δ
ೝূɾೝՄ Write S3 (?) Read Onetime Token Onetime Token Serve
Onetime token Onetime Token
ೝূɾೝՄ w αʔόPOFUJNFUPLFOΛΫϥΠΞϯτʹฦ ٫͠ɼΫϥΠΞϯτͦͷPOFUJNFUPLFOͱ ڞʹTUPSBHFʹΞΫηεͯ͠(&5 w TUPSBHFଆ͕POFUJNFUPLFOͰೝূͯ͠ίϯ ςϯπΛฦ͔͢Ͳ͏͔Λஅ w ͜Ε4ͩͱग़དྷͳ͍ؾ͕͢Δʜʜ
ग़དྷΔ0CKFDU4UPSBHF͋Δͷ͔ʁ
طಡཧ w ୯७ʹϑΟʔυͷϑΝΠϧΛ৴͍ͯ͠Δ ͚ͩͳͷͰαʔόαΠυͰͷطಡཧ͕ ͍͠ w ΫϥΠΞϯτଆʹؤுͬͯΒ͏͔͠ʜʜ
·ͱΊ
·ͱΊ w ΞϓϦ௨࣮ʹ༷ʑͳ͕͋Δ w 8SJUFʹدͤΔ͔3FBEʹدͤΔ͔ w 8SJUFʹدͤͭͭɼ4UPSBHFΛ4ʹ͢Δͱ͍͏ ΞʔΩςΫνϟͷఏҊ ڊਓͷݞʹΔͧ
w ͔͠͠·ͩݕ౼͖͋͢Δ
·ͱΊ w ΞϓϦ௨࣮ͻͱͭऔͬͯํ๏͕ ͨ͘͞Μ͋ͬͯԞ͕ਂ͍ w ༻్ʹ߹Θͤͯదͳํ๏Λબ͢Δ ඞཁ͕͋Δ w ଞʹͬͱྑ͍ػߏ͕͋ͬͨΒٞ͠·͠ΐ ͏
͍ͬͦ54%#ʹಥͬࠐΜ͡Ό͏ͱ͔
Q?