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
3
5.6k
サーバレスとマイクロサービスで変わるゲームサーバ開発
Serverlessconf Tokyo 2016 で登壇した際に利用した資料です。
こちらもご参照ください →
https://gs2.io/
Kazutomo Niwa
October 01, 2016
Tweet
Share
More Decks by Kazutomo Niwa
See All by Kazutomo Niwa
Amazon Event Bridge による次世代の Pub/Sub
kazutomo
0
1.9k
DynamoDB のインデックス再編事例
kazutomo
2
780
Production-ready Amazon Event Bridge
kazutomo
2
970
もうそこまで迫っている! Cloud2.0 時代の開発
kazutomo
3
1.7k
Game Server Services ではじめる サーバ開発運用しないゲーム開発
kazutomo
1
7.3k
Cloud2.0時代のゲーム開発を支えるGS2
kazutomo
1
2k
Unityネットワーク完全に理解した.pdf
kazutomo
3
3.1k
サーバレスアプリケーションの監視・運用
kazutomo
13
6.4k
ゼロからサーバレスの先頭に追いつこう
kazutomo
25
12k
Other Decks in Technology
See All in Technology
Lexical Analysis
shigashiyama
1
150
複雑なState管理からの脱却
sansantech
PRO
1
140
[FOSS4G 2024 Japan LT] LLMを使ってGISデータ解析を自動化したい!
nssv
1
210
The Rise of LLMOps
asei
7
1.4k
スクラムチームを立ち上げる〜チーム開発で得られたもの・得られなかったもの〜
ohnoeight
2
350
Amazon CloudWatch Network Monitor のススメ
yuki_ink
1
200
社内で最大の技術的負債のリファクタリングに取り組んだお話し
kidooonn
1
550
[CV勉強会@関東 ECCV2024 読み会] オンラインマッピング x トラッキング MapTracker: Tracking with Strided Memory Fusion for Consistent Vector HD Mapping (Chen+, ECCV24)
abemii
0
220
透過型SMTPプロキシによる送信メールの可観測性向上: Update Edition / Improved observability of outgoing emails with transparent smtp proxy: Update edition
linyows
2
210
ハイパーパラメータチューニングって何をしているの
toridori_dev
0
140
EventHub Startup CTO of the year 2024 ピッチ資料
eventhub
0
110
Taming you application's environments
salaboy
0
180
Featured
See All Featured
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
A designer walks into a library…
pauljervisheath
203
24k
Building a Scalable Design System with Sketch
lauravandoore
459
33k
The Cost Of JavaScript in 2023
addyosmani
45
6.7k
[RailsConf 2023] Rails as a piece of cake
palkan
52
4.9k
What's new in Ruby 2.0
geeforr
343
31k
Intergalactic Javascript Robots from Outer Space
tanoku
269
27k
The Pragmatic Product Professional
lauravandoore
31
6.3k
Faster Mobile Websites
deanohume
305
30k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
840
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
42
9.2k
Why Our Code Smells
bkeepers
PRO
334
57k
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 ϕʔλςετࢀՃऀืूதʂ