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
moznion
August 19, 2017
Technology
1
3.8k
そして物語は更に何度目かのアプリ内通知再実装を迎える / Reimplement in app notification again
Kyoto.なんか #3の資料です
moznion
August 19, 2017
Tweet
Share
More Decks by moznion
See All by moznion
Simple組み合わせ村から大都会Railsにやってきた俺は / Coming to Rails from the Simple
moznion
3
2.1k
AIレシート読み取り機能をRuby on Rails on AWSで実現するLLMにまつわるアレコレ / AI-based receipt reading function powered by LLM on Ruby on Rails on AWS
moznion
3
130
Develop to Survive - YAPC::Hakodate 2024 Keynote
moznion
10
15k
これはPerl? それともRuby? クイズ〜〜〜〜〜!!!- Perl or Ruby Quiz
moznion
3
2.5k
Perl 5 OOP機構30年史 - Perl 5's OOP Mechanism over the past 30 years
moznion
1
960
RuboCopのカスタムCopを書いてContributionしてみる - Contributing a Custom Cop to RuboCop: A Hands-on Experience
moznion
0
73
AWS上に構築する メンテ容易なElasticsearch System / Maintainable Elasticsearch system on AWS
moznion
2
3.9k
PROXY Protocol aware Proxy Server on Node.js
moznion
2
2.5k
Perl meets AWS Lambda
moznion
0
4.7k
Other Decks in Technology
See All in Technology
I could be Wrong!! - Learning from Agile Experts
kawaguti
PRO
8
3.4k
信頼されるためにやったこと、 やらなかったこと。/What we did to be trusted, What we did not do.
bitkey
PRO
0
2.2k
テストを書かないためのテスト/ Tests for not writing tests
sinsoku
1
170
デジタルアイデンティティ技術 認可・ID連携・認証 応用 / 20250114-OIDF-J-EduWG-TechSWG
oidfj
2
670
月間60万ユーザーを抱える 個人開発サービス「Walica」の 技術スタック変遷
miyachin
1
140
Oracle Base Database Service:サービス概要のご紹介
oracle4engineer
PRO
1
16k
RubyでKubernetesプログラミング
sat
PRO
4
160
FODにおけるホーム画面編成のレコメンド
watarukudo
PRO
2
270
生成AI × 旅行 LLMを活用した旅行プラン生成・チャットボット
kominet_ava
0
150
あなたの知らないクラフトビールの世界
miura55
0
120
東京Ruby会議12 Ruby と Rust と私 / Tokyo RubyKaigi 12 Ruby, Rust and me
eagletmt
3
870
dbtを中心にして組織のアジリティとガバナンスのトレードオンを考えてみた
gappy50
0
230
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
113
50k
Learning to Love Humans: Emotional Interface Design
aarron
274
40k
The Pragmatic Product Professional
lauravandoore
32
6.4k
Facilitating Awesome Meetings
lara
51
6.2k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Fireside Chat
paigeccino
34
3.1k
The Cult of Friendly URLs
andyhume
78
6.1k
Building Adaptive Systems
keathley
38
2.4k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
Scaling GitHub
holman
459
140k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
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?