Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
サーバレスとマイクロサービスで変わるゲームサーバ開発
Search
Kazutomo Niwa
October 01, 2016
Technology
5.9k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
サーバレスとマイクロサービスで変わるゲームサーバ開発
Serverlessconf Tokyo 2016 で登壇した際に利用した資料です。
こちらもご参照ください →
https://gs2.io/
Kazutomo Niwa
October 01, 2016
More Decks by Kazutomo Niwa
See All by Kazutomo Niwa
Amazon Event Bridge による次世代の Pub/Sub
kazutomo
0
2k
DynamoDB のインデックス再編事例
kazutomo
2
1k
Production-ready Amazon Event Bridge
kazutomo
2
1.1k
もうそこまで迫っている! Cloud2.0 時代の開発
kazutomo
3
1.9k
Game Server Services ではじめる サーバ開発運用しないゲーム開発
kazutomo
1
7.7k
Cloud2.0時代のゲーム開発を支えるGS2
kazutomo
1
2.2k
Unityネットワーク完全に理解した.pdf
kazutomo
3
3.5k
サーバレスアプリケーションの監視・運用
kazutomo
13
6.8k
ゼロからサーバレスの先頭に追いつこう
kazutomo
25
12k
Other Decks in Technology
See All in Technology
越境するなら専門用語を使うな高校校歌 / If you wanna cross border, you shouldn't use jargon
vtryo
0
150
アプリをもっと"iOSアプリっぽく"する小さな工夫 / Small Touches That Make Your App Feel More Like an iOS App
matsuji
2
1k
What the customer really needed
kawaguti
PRO
3
220
AIで社員の自主発信に広報目線を組み込む
_mossann_t
0
140
EventBridge に「合流」はない ― サーバーレスのワークフローを育てるということ / No Join in EventBridge
yusukeshimizu
2
460
おい、エージェントを使って終わらせろ
nwiizo
2
850
Genieを崇めよ
kameitomohiro
0
170
あけおめLINE 傾向とその対策
nasa9084
0
250
2026-09-18 gotanda.sre Terraformで複数環境作ったり、複数Stateに分割したりそれとTerragrunt / Terraform multi envs and multi states
masasuzu
4
690
GoのInterface内部構造から学ぶ!最高パフォーマンスを出すコード設計
yappli_developers
1
250
俺の仕事は AIに奪われないし、たぶんその BIも要らない
hikaruri
0
540
安心して変更できるWebフロントエンドの作り方
pirosikick
5
2.9k
Featured
See All Featured
Six Lessons from altMBA
skipperchong
29
4.5k
[SF Ruby Conf 2025] Rails X
palkan
3
1.4k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
900
The Curious Case for Waylosing
cassininazir
1
520
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Faster Mobile Websites
deanohume
310
32k
Optimizing for Happiness
mojombo
378
71k
From π to Pie charts
rasagy
1
380
So, you think you're a good person
axbom
PRO
2
2.2k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
400
Joys of Absence: A Defence of Solitary Play
codingconduct
1
530
Scaling GitHub
holman
464
140k
Transcript
αʔόϨεͱϚΠΫϩαʔϏεͰมΘΔ ήʔϜαʔό։ൃ 4FSWFSMFTT$POG5PLZP (BNF4FSWFS4FSWJDFTגࣜձࣾ දऔకࣾ$&0୮Ӌ Ұஐ
ࣗݾհ (BNF4FSWFS4FSWJDFTגࣜձࣾ ݄ۀ දऔకࣾ$&0୮Ӌ ҰஐʢʹΘ ͔ͣͱʣ גࣜձࣾηΨೖࣾ ܞଳి͚ήʔϜɾαʔό։ൃʹैࣄ
ఱಊגࣜձࣾೖࣾ ϙέϞϯɾϚϦΦΧʔτΛ͡Ίͱͨ͠ ήʔϜαʔό։ൃɾӡ༻ʹैࣄ ͖ͳ"84αʔϏε"1*(BUFXBZ -BNCEB %ZOBNP%#
Game Server Services(GS2) とは εϚϗήʔϜϒϥβήʔϜͷඞཁͱ͢Δػೳͷ͏ͪɺ • ϚονϝΠΩϯά • ϥϯΩϯά •
ϝʔϧϘοΫεʢϓϨθϯτϘοΫεʣ • ελϛφཧ ͱ͍ͬͨɺΑ͋͘ΔػೳΛ .JDSP4FSWJDFTԽ͠ɺ 4FSWFSMFTTͰઃܭɾ࣮͠ɺҰ࣌ؒԁʙͰར༻Ͱ͖Δͱ ͍͏"84ͷΑ͏ͳαʔϏεͰ͢ɻ
(BNF4FSWFS4FSWJDFT (4 ʹ͍ͭͯ ઌαΠτΛެ։ IUUQTHTJP ݄தʹ࣮ࢪ༧ఆͷϕ ʔλςετࢀՃऀΛืूத ຊͷηογϣϯ (4ΛαʔόϨεͰ࣮ݱ͢Δʹࢸͬͨ ܦҢ࣮ྫΛݩʹ͍ͯ͠·͢
(4ͷઃཱʹࢸͬͨܦҢ ίϯγϡʔϚήʔϜͷ։ൃʹ͓͍ͯɺήʔϜαʔόϓϥο τϑΥʔϚʔ͕ఏڙ͢Δ4%,ͷҰ෦ɻ ˠεϚʔτϑΥϯͰͦ͜·Ͱ໘ݟͯ͘Εͳ͍ɻ ֤͕ࣾࣅͨΑ͏ͳαʔόγεςϜΛ։ൃͯ͠͠·͍ͬͯΔɻ ˠوॏͳ։ൃϦιʔεΛ࿘අ͍ͯ͠Δɻ ήʔϜαʔόϓϥοτϑΥʔϚʔ͕։ൃ͍ͯͨͨ͠Ίɺή ʔϜ։ൃऀήʔϜαʔό։ൃͷϊϋ͕গͳ͍ɻ ˠͩ·ͩ͠·͠։ൃ͍ͯ͠Δݱଟ͍ɻ
(4ͱ αʔόϨεΞʔΩςΫνϟ ՝ࣗମϒϥβήʔϜ͔ΒωΠςΟϒήʔϜʹτϨϯυ ͕γϑτͯ͠͠Β͘ܦͬͨ͋ͨΓ͔Βײ͍ͯͨ͡ɻ ˠ(4ͷߏࣗମਵલ͔Β͋ͬͨɻ ͳͥࠓ·ͰىۀʹࢸΒͳ͔͔ͬͨʁ ˠαʔϏεΛཱͤ͞ΔͨΊͷ՝͕͋ͬͨɻ సػʁ ˠࡢ݄ͷ"1*(BUFXBZͷൃදɻ ˠಉ݄ʹαʔϏεͷ։ൃΛ։࢝ɻ
ͳͥαʔόϨε՝Λղܾ͢Δͱࢥͬͨͷ͔ʁ • εέʔϥϏϦςΟͷ֬อ • Մ༻ੑͷ֬อ • อकੑͷ֬อ • Ձ֨༏Ґੑͷ֬อ
εέʔϥϏϦςΟɾՄ༻ੑ αʔόϨε࣮ߦڥͷίϯςφ͕ఆظతʹഁغ͞ΕΔɻ ˠγεςϜ *NNVUBCMFͰ 4UBUFMFTTͳͷͱͳΔɻ *NNVUBCMFͰ 4UBUFMFTTͳγεςϜʹͳΔͱԿ͕خ͍͠ʁ ˠࢄॲཧ͕ՄೳͱͳΓɺεέʔϥϒϧʹɻ ˠαʔόোʹର͢Δੑ͕ڧ͘ͳΔɻ ήʔϜαʔόࣄલͷΞΫηεͷ༧͕͘͠ɺώοτ͠
ͨࡍʹඇৗʹεέʔϧ͕େ͖͘ҟͳΔɻ ˠεέʔϥϏϦςΟඇৗʹॏཁͳཁૉɻ
อकੑ -BNCEBͰɺσʔληϯλʔ "; ʹো͕ൃੜͯ͠ɺ ͦͷ";ͰॲཧΛܧଓ͠ͳ͘͢Δɻ෮چޙʹॲཧରʹ͢ɻ ͱ͍ͬͨΦϖϨʔγϣϯ "NB[PO͕ߦͬͯ͘ΕΔɻ ˠαʔόϨεԽ͢Δ͜ͱͰɺ ΠϯϑϥͷϚωʔδϝϯτ͔Β։์͞ΕΔɻ ܾͯ͠ϦιʔεϦονͰͳ͍(4ʹͱͬͯɺΠϯϑϥͷอ
कཧΛ"NB[POʹͤΔ͜ͱ͕ग़དྷΔͱ͍͏ͷେ͖ͳϝ Ϧοτɻ
Ձ֨༏Ґੑ ࠓ&$ͳͲԾαʔόͷΠϯελϯεΛௐ͍ͯ͠Δɻ ˠαʔόϨε࣮ࡍʹ͕࣮ؔߦ͞Εͨ࣌ؒʹରͯ͠ ՝ۚ͞ΕΔͨΊɺΩϟύγςΟίϯτϩʔϧෆཁɻ -BNCEBؔΛ࣮ߦ͢ΔίϯςφʹׂΓͯΔϝϞϦ༰ྔ $16ϦιʔεͳͲઃఆͰ͖Δɻ ˠؔͷಛੑʹ߹ΘͤͨϦιʔεׂ͕ߦͳ͑Δɻ ैདྷͷ։ൃख๏Ͱઃܭ͞ΕͨγεςϜͱൺֱͯ͠Ḯ৭ͷͳ ͍Ձ֨ଳͰαʔϏε͕ఏڙͰ͖ͨɻ
ͳͥ (4ϚΠΫϩαʔϏεʹͨ͠ͷ͔ʁ • γεςϜͷݟ௨͕͠ྑ͘ͳΔ • αʔϏε͕ૄ݁߹ͳͨΊɺ෦తʹར༻Մೳ • ςετ͕͍͢͠
γεςϜͷݟ௨͕͠ྑ͘ͳΔ ػೳΛࡉԽ͢Δ͜ͱͰɺγεςϜͷׂ͕࣋ͭ໌֬ʹͳΔɻ ׂ͕໌֬ʹͳΔͱ͍͏͜ͱɺΠϯϓοτɾΞτϓοτ Λ૾͘͢͠ͳΔͨΊɺαʔϏεΛγϯϓϧʹݟͤΔ͜ͱ ͕Ͱ͖ͨɻ
αʔϏε͕ૄ݁߹ͳͨΊɺ෦తʹར༻Մೳ γεςϜؒૄ݁߹ͳͨΊɺ(4ͷఏڙ͢ΔαʔϏεͷ͏ ͪɺͱ͋ΔͭͷαʔϏε͚ͩར༻͢Δɻͱ͍͏Α͏ͳ͜ͱ ͕͓͜ͳ͑Δɻ ݁߹ͷߴ͍γεςϜͩͱɺࣗελϛφͷཧػೳΛ ͍͍͚ͨͩͳͷʹɺԿނ͔(4ͷΞΧϯτγεςϜར ༻͠ͳ͚Εར༻Ͱ͖ͳ͍ɻͱ͍͏Α͏ͳࣗ༝ͷ͍αʔ Ϗεʹͳͬͯ͠·͍ͬͯͨͰ͠ΐ͏ɻ
ςετ͕͍͢͠ • γϯϓϧͳγεςϜςετΛॻ߲͘ݶΒΕ·͢ • ૄ݁߹ͳγεςϜςετ͕ॻ͖͍͢Ͱ͢ • ϚΠΫϩαʔϏεΛ࠾༻͢Δ͜ͱͰɺ(4ͷΞϓϦέʔγ ϣϯϨΠϠʔͷ࣭Λอͭ͜ͱʹͭͳ͕͍ͬͯ·͢
(4ΛαʔϏε͢Δ্Ͱͷෆ҆ ओ࠵ͷ٢ా͞Μ͔ΒʮαʔόϨεʹίϛοτͨ͠αʔϏεΛ ఏڙ͢Δ͜ͱʹෆ҆ͳ͔͔ͬͨʁʯͱฉ͔Εͨɻ ˠ࠷ॳރΕͯͳ͍͕ނʹൃੜ͢Δ͋Δ͔ɻ ͝Ζɺ4Λ࠷ॳʹ࠾༻͢Δͱ͖ʹɺ͍͔ͭαʔϏ ε͕ऴΘΔΜ͡Όͳ͍͔ʁͱΛͨ͜͠ͱ͕͋Δɻ ˠࠓͰͦΜͳ͜ͱΛؾʹ͢Δਓ͍ͳ͍ αʔόϨεಉ͡Ͱʁ
αʔόϨεͷ՝ • ཁ݅ʹΑͬͯݴޠΛ͍͚ͳ͚ΕͳΒͳ͍ • εςʔτϑϧͳγεςϜΛ։ൃ͢Δͷ͍͠ • ϑϨʔϜϫʔΫ͕·ͩະख़
ཁ݅ʹΑͬͯݴޠΛ͍͚ͳ͚ΕͳΒͳ͍ -BNCEB 1ZUIPO KBWBTDSJQU +BWBͷݴޠ͕ར༻Ͱ͖Δɻ ˠ࠷ॳ+BWBͰ։ൃ͠Α͏ͱࣦͯ͠ഊͨ͠ +BWBίϯςφىಈ࣌ͷΦʔόʔϔου͕ͱͯେ͖͍ɻ ˠʙඵͷىಈ࣌ؒɺϝϞϦফඅྔେ͖͍ +BWBʹྑ͍͕͋Δɻ ˠॲཧ͕ѹతʹ͍ɻ
"1*ͷडʹ1ZUIPOKBWBTDSJQUɻόονॲཧ+BWBɻ
εςʔτϑϧͳγεςϜΛ։ൃ͢Δͷ͍͠ αʔόϨεঢ়ଶΛ࣋ͭ͜ͱ͕Ͱ͖ͳ͍ɻ ˠ࣋ͭͳΒ%#,74ͳͲΛར༻͢Δ͜ͱʹɻ ֎෦ࢿݯͰߴ͔ͭίετײͷ͍͍ํ๏͕ͳ͍ɻ ˠ%ZOBNP%#ಡΈॻ͖ߴͳ͕Β มͷಡΈॻ͖Ϩϕϧͷ*0Λཁٻ͢ΔͱߴՁɻ ˠ.FNDBDIF3FEJTεέʔϧͮ͠Β͍ɻ ϑΝΠϧγεςϜΛ௨ͯ͠ঢ়ଶΛ࣋ͭʁ ˠίϯςφ͕ഁغ͞ΕΔͱҰॹʹফ͑ͯ͠·͏
ϑϨʔϜϫʔΫ͕·ͩະख़ ࠓͰͦ͜ɺز͔ͭͷϓϩμΫτ͕ग़͖͍ͯͯ·͢ɻ͔͠͠ɺ ·ͩ·ͩະख़ɻ (4Ͱ࣌ظతʹ͑ΔϓϩμΫτ͕ଘࡏ͠ͳ͔ͬͨͨΊɺ શʹࣗલͷϑϨʔϜϫʔΫΛར༻ɻ ࠓޙɺαʔόϨεͰͷγεςϜ։ൃ͕ҰൠతͳͷʹͳΔͨ ΊʹϑϨʔϜϫʔΫͷඋ͕ඞཁͱͳΓͦ͏ɻ
αʔόϨεͷະདྷ ԾԽͷྲྀΕͷ࣍ίϯςφͰͳ͘αʔόϨεʁ ˠԾԽௐୡظؒͷॖͰීٴ *BB4ͷొ ˠϋʔυΣΞͷཧ͔Β։์ ˠඞཁͳͱ͖ʹඞཁͳ͚ͩαʔό͕खʹೖΔ ίϯςφͲ͏ʁ αʔόϨεΞΠυϧϦιʔεશʹͳ͘ͳΔɻ
αʔόϨεͱϚΠΫϩαʔϏεͰมΘΔήʔϜαʔό։ൃ • Πϯϑϥอकʹର͢ΔཁٻϦιʔεͷݮ • ༨Ϧιʔεཧ͔Βͷ։์ • ίϞσΟςΟԽͨ͠ػೳͷ࠶ར༻ੑ্ • ࣭৴པੑͷ্
Πϯϑϥอकʹର͢ΔཁٻϦιʔεͷݮ αʔόϨεԽ͢Δ͜ͱͰɺΠϯϑϥϨΠϠʔͷอकΛ "NB[PO (PPHMFʹͤΔ͜ͱ͕Ͱ͖ΔΑ͏ʹͳΔͨΊɺ ήʔϜ։ൃݱͰෆ͕ͪ͠ͳΠϯϑϥΤϯδχΞʹର͢Δ ཁٻϦιʔε͕ݮͰ͖·͢
༨Ϧιʔεཧ͔Βͷ։์ ఆ͞ΕΔΞΫηεΛࡹ͖ɺকདྷͷΞΫηε૿ʹඋ͑ͨα ʔόͷ֬อɻ͜ΕΛ࣮ݱ͢ΔͨΊʹΞΫηεͷ༧ଌ αʔόࢿݯͷௐୡۀ͕ൃੜɻ ˠαʔόϨεͰॏཁੑ͘ͳΔɻ ϐʔΫ࣌ؒଳͱͦ͏Ͱͳ͍࣌ؒଳͷΪϟοϓʹΑͬͯੜ·Ε ΔΞΠυϧɻ ˠΦʔτεέʔϦϯάͷΈͷඞཁͩͬͨɻ ˠαʔόϨεͰඞཁͳ͘ͳΔɻ
ίϞσΟςΟԽͨ͠ػೳͷ࠶ར༻ੑ্ ήʔϜαʔόͷதʹ͓ଋతͳػೳ͕ଟଘࡏ͠·͢ ͦ͏͍ͬͨػೳϚΠΫϩαʔϏεԽ͢Δ͜ͱͰɺԿ࠶ ։ൃ͢Δ͜ͱΛආ͚Δ͜ͱ͕Ͱ͖·͢ ͜ΕʹΑͬͯɺΑΓήʔϜΛ໘ന͘͢ΔͨΊͷݻ༗ͷػೳͷ ։ൃʹΑΓϦιʔεΛׂ͘͜ͱ͕ग़དྷΔΑ͏ʹͳΓ·͢
࣭ɾ৴པੑͷ্ ςετ͕͘͢͠ͳͬͨΓɺεέʔϥϏϦςΟɾՄ༻ੑ͕ ্͢Δ͜ͱͰɺγεςϜશମͷ࣭৴པੑ্͕ɻ • εύήοςΟԽͯ͠ςετ͕ࠔ • ϋʔυΣΞ͕ނোɺωοτϫʔΫোʹΑͬͯαʔϏε͕ఀࢭ • ٸܹͳΞΫηε૿ՃʹΞϓϦέʔγϣϯΞʔΩςΫνϟ͕͑ΒΕͳ͍ ͜ͷΑ͏ͳɺαʔόϨεͱϚΠΫϩαʔϏεʹΑͬͯɺ
ΑΓ؆୯ͳʹͳΔɻ
࠷ޙʹ αʔόϨε࣍ͳΔτϨϯυͱͳΔՄೳੑ͕ߴ͍ ˠ͔͠͠ɺαʔόϨεۜͷؙͰͳ͍ ͨͱ͑ɺεςʔτϑϧͳγεςϜʹ͍͍ͯͳ͍ ˠແཧ࣮͍͍ͯͯ͜͠͠ͱͳ͍ దࡐదॴɺ͍ॴΛݟۃΊΔ͜ͱେࣄ
એ (4ͰεϚϗήʔϜϒϥβήʔϜͷඞཁͱ͢Δػೳ ͷதͰίϞσΟςΟԽͨ͠෦ΛϚΠΫϩαʔϏεԽ͠ɺα ʔόϨεͰઃܭɾ࣮ͨ͠αʔϏεɻ ˠ͜Ε·Ͱ͖ͯͨ͠Α͏ͳԸܙ͕ಘΒΕΔɻ ࣗΒαʔόϨεԽʹऔΓΉલʹҰɺ(4ͷ࠾༻ݕ౼ ͍͚ͨͩΕɻ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ IUUQTHTJP ϕʔλςετࢀՃऀืूதʂ