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
サーバレスとマイクロサービスで変わるゲームサーバ開発
Search
Kazutomo Niwa
October 01, 2016
Technology
5.9k
3
Share
サーバレスとマイクロサービスで変わるゲームサーバ開発
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
970
Production-ready Amazon Event Bridge
kazutomo
2
1.1k
もうそこまで迫っている! Cloud2.0 時代の開発
kazutomo
3
1.9k
Game Server Services ではじめる サーバ開発運用しないゲーム開発
kazutomo
1
7.6k
Cloud2.0時代のゲーム開発を支えるGS2
kazutomo
1
2.2k
Unityネットワーク完全に理解した.pdf
kazutomo
3
3.4k
サーバレスアプリケーションの監視・運用
kazutomo
13
6.7k
ゼロからサーバレスの先頭に追いつこう
kazutomo
25
12k
Other Decks in Technology
See All in Technology
基盤を育てる 外部SaaS連携の運用
gamonges_dresscode
1
120
Choose your own adventure in agentic design patterns
glaforge
0
150
M5Stack CoreS3とZephyr(RTOS)で Edge AIっぽいことしてみた
iotengineer22
0
290
プラットフォームエンジニアリングの実践 - AWS コンテナサービスで構築する社内プラットフォーム / AWS Containers Platform Meetup #1
literalice
1
210
「責任あるAIエージェント」こそ自社で開発しよう!
minorun365
9
2.2k
需要創出(Chatwork)×供給(BPaaS) フライホイールとMoat 実行能力の最適配置とAI戦略
kubell_hr
0
850
PicoRuby as a Multi-VM Operating System
kishima
1
210
[OAWTT26][THR1028] Oracle AI Database 26ai へのアップグレード:ベストプラクティスと最新情報
oracle4engineer
PRO
1
110
AIが書いたコードを信じられない問題 〜レビュー負荷を下げるために変えたこと〜 / The AI Code Trust Gap: Reducing the Review Burden
bitkey
PRO
8
1.4k
AIが自律的に働く時代へ Amazon Quick で実現するAIエージェント紹介
koheiyoshikawa
0
110
Claude Code を安全に使おう勉強会 / Claude Code Security Basics
masahirokawahara
12
37k
扱える不確実性を増やしていく - スタートアップEMが考える「任せ方」
kadoppe
0
320
Featured
See All Featured
Done Done
chrislema
186
16k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
340
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
180
The Mindset for Success: Future Career Progression
greggifford
PRO
0
310
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
480
Building an army of robots
kneath
306
46k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.7k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.9k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.4k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
170
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
320
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
55k
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 ϕʔλςετࢀՃऀืूதʂ