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
DAU 100 万人突破! 急成長を支える Shadowverse のインフラ技術
Search
Cygames, Inc.
PRO
June 02, 2017
Technology
16k
8
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
DAU 100 万人突破! 急成長を支える Shadowverse のインフラ技術
2017/06/01 Game Tech Session ~AWS Summit Tokyo 2017~
Cygames, Inc.
PRO
June 02, 2017
More Decks by Cygames, Inc.
See All by Cygames, Inc.
【CEDEC2026】Creative Approaches to Localizing the Dialects and Unique Speech of Umamusume: Pretty Derby Characters in English
cygames
PRO
4
26k
【CEDEC2026】コードレビュー支援ツール開発から学ぶ:LLMを用いた業務システムの実践的な運用設計と誤出力対策
cygames
PRO
0
900
【CEDEC2026】『ウマ娘 プリティーダービー』 英語版のキャラクターの方言や口調をローカライズするための創造的アプローチ
cygames
PRO
3
1.2k
【CEDEC2026】次世代デジタルカードゲームのサーバー設計と運用 〜『Shadowverse: Worlds Beyond』の舞台裏~
cygames
PRO
2
1.7k
【CEDEC2026】派手さと見やすさは両立できる!『Shadowverse: Worlds Beyond』エフェクト・3D背景の超進化したビジュアル設計
cygames
PRO
0
1.4k
【CEDEC2026】『Shadowverse: Worlds Beyond』続編開発におけるUIデザイン・アニメーション演出の「超進化」 ~継承と挑戦を両立するデザイン手法~
cygames
PRO
2
4.8k
【CEDEC2026】『Relink』を拡張せよ - 『GRANBLUE FANTASY: Relink - Endless Ragnarok』の開発速度と品質を守るCI運用
cygames
PRO
0
200
【CEDEC2026】『GRANBLUE FANTASY: Relink - Endless Ragnarok』のバトル制作事例 ~最高のキャラゲーを目指して~
cygames
PRO
1
330
【CEDEC2026】アートとゲームデザインをつなぐVFX設計『GRANBLUE FANTASY: Relink - Endless Ragnarok』における表現と可読性の両立
cygames
PRO
0
760
Other Decks in Technology
See All in Technology
英語が話せなくてもKubeConスタッフに参加した話
yusuke427
0
1k
作って理解するCoding Agent 〜フレームワークに頼らないピュア Python での実装〜
takapy
2
460
My broken English still works: speaking at global OSS events
naruoga
0
120
도구에서 동료까지: 10년차 AI 스타트업의 AI 적응기
inureyes
PRO
1
310
AIペネトレーションテスト・ セキュリティ検証「AgenticSec」紹介資料
laysakura
2
9.3k
【GCC2026】TrueHDRIを用いたルックデブ環境とライティングテクニック
bandainamcostudios
PRO
0
140
AI・HPC開発を支えるGPU環境の新しい選択肢 液冷GPUシステム「AquSys」の取り組み
gpuunite_official
0
170
長期運営で肥大化したExcelマスターデータの解消に向けた移行事例
gree_tech
PRO
0
100
MulticaとPi Coding Agentで、小規模OSSを30本同時運用した流れ
eiei114
0
140
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
4
24k
8bit CPU 2026
koba789
3
1.2k
生成 AI の基礎 〜 サンプル実装で学ぶ基本原理
enakai00
7
4.5k
Featured
See All Featured
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
580
Joys of Absence: A Defence of Solitary Play
codingconduct
1
440
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
Designing Powerful Visuals for Engaging Learning
tmiket
1
500
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
480
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
480
Designing for Timeless Needs
cassininazir
1
450
How to make the Groovebox
asonas
2
2.3k
Building Applications with DynamoDB
mza
96
7.2k
Designing for Performance
lara
611
70k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Transcript
ΞδΣϯμ 4IBEPXWFSTFΛࢧ͑ ΔΠ ϯϑϥٕज़ εέʔϥϒϧͳϩάऩूج൫ େنڥγεςϜͱͭͷνϟ Ϩϯδ 5#ͷϩάऩूج൫
4IBEPXWFSTFΛࢧ͑ Δ Π ϯϑϥٕज़
େنڥ
"QQMJDBUJPO4FSWFST Node.js Nginx 6TFS$MJFOU "QQMJDBUJPO4FSWFST Apache / PHP %BUBCBTF4FSWFST
MySQL HTTPS WebSocket Elastic Load Balancing Elastic Load Balancing $BTIF4FSWFST Memcached Redis
ͭͷνϟ Ϩϯδ શσʔλͷอଘͱσʔλϩʔυ ϦϓϨΠػೳͷϦ Ϧʔε /HJOYʹΑ Δಠ࣮ࣗͷ-ϩʔυόϥϯα ରઓγεςϜͷεέʔϧΞ τ
ํϦ ΞϧλΠ Ϝ௨৴ ࣋ଓతଓͷཱ֬ 8FC4PDLFU ରઓ૬खʹ Ϧ ΞϧλΠ Ϝʹ
σʔλө
Ϧ ΞϧλΠ Ϝ௨৴ͷαʔόߏ ΫϥΠ Ξϯ τ3PPN*%Ͱ άϧʔϓԽ͞ΕΔ αʔόϝ οηʔδΛ ΫϥΠ
Ξϯ τʹڞ༗͢Δ ΈΛ࣋ͭ ࢄϦ ΞϧλΠ Ϝ௨৴ͷ ߏͷݕ౼ Client A (RoomID 1) Client B (RoomID 2) Client C (RoomID 1) RoomID 1 RoomID 2 4FSWFS
1VC4VCϝ οηʔδϯάϞσϧ 1VC4VCϞσϧબఆ ࣮͕༰қ ୯Ұো ʢ410'ʣ 1VC4VC͕Ϙ τϧωο Ϋʹ
εέʔϧΞ τͷ՝ ແఀࢭͷมߋ͕ߦ͑ͳ͍ Client A (RoomID 1) Client B (RoomID 2) Client C (RoomID 1) RoomID 1 /PEF RoomID 2 /PEF RoomID 1 RoomID 3 /PEF RoomID 2 3FEJT1VC4VC RoomID 1 RoomID 3 Client D (RoomID 3) Layer4 LB(Elastic Load Balancing)
ϧʔϜ*%ରԠ-ϩʔυόϥϯαͷ։ൃ 410'ͷഉআ ϊ ʔυΛಈతʹมߋ Ϛ ονϯάϩδο Ϋ Λ࣮ ಉҰϧʔϜ*%Λ ಉҰαʔόʹಈతϧʔς
Ο ϯά Client A (RoomID 1) Client B (RoomID 2) Client C (RoomID 1) Lua Nginx 1 Layer4 LB(Elastic Load Balancing) Lua Application Load Balancer Cluster Lua Nginx N Client D (RoomID 3) Nginx 2 … Room 1 Node 1 Room 2 Room 3 Node 3 Node 2 Dynamic Routing
/HJOY-ϩʔυόϥϯαͱ-VBεΫ Ϧϓ τ /HJOY 8FC4PDLFU௨৴ ʢํ௨৴ʣ ͷϩʔυόϥϯα -VBϞδϡʔϧʹΑ Γϩδο
ΫػೳΛ࣮ -VBεΫ Ϧϓ τ ϔο μʹ༩͞ΕͨϧʔϜ*%Λݩʹಈతࢄ 8FC"1*ʹΑ Γແఀࢭʹઃఆมߋ
ࢄϩδο Ϋͷ࣮ ࢄϩδο Ϋ ϧʔϜ*%ͷϋο γϡͱ/PEFαʔόͷ༨ࢉ ʢNPEʣ Ͱ ଓઌϊ
ʔυ͕ܾఆ͞ΕΔ $POTJTUFOU)BTIJOH ʢϋο γϡܭࢉʣ ϊ ʔυͷՃ ɾ আΛ࠷খݶͷมߋͰϚ ο ϐϯά
ສηο γϣϯ ಉ࣌ରઓສୡ
ͭͷνϟ Ϩϯδ શσʔλͷอଘͱσʔλϩʔυ ϦϓϨΠػೳͷϦ Ϧʔε /HJOYʹΑ Δಠ࣮ࣗͷ-ϩʔυόϥϯα ରઓγεςϜͷεέʔϧΞ τ
ϦϓϨΠػೳ ࠷৽݅ͷότϧΛ ϦϓϨΠ ͢Δ શରઓσʔλͷอଘ շదͳԠ
(BNF4ZTUFN 3FQMBZ4ZTUFN ϦϓϨΠσʔλͷอଘͱ࠶ੜ Amazon S3 Redis SQS Web Servers
(PHP) Worker Servers (PHP)
ϦϓϨΠػೳͷσʔλ
ϦϓϨΠػೳͷϦ Ϧʔε ࣮ͷ๛ͳ"84αʔϏεΛ࠾༻ 424ʹΑ ΔඇಉظԽͰػೳ "NB[PO4ͷ҆ఆͨ͠σʔλऔಘ ຊ൪ڥʹ͓͚Δظؒͷݕূ Ϣʔβʹݟͤͳ͍ඇެ։Ϧ Ϧʔε
· ͱΊ ୯Ұোͷͳ͍֦ுՄೳͳαʔόߏ ϐʔΫ࣌ͷ௨৴ྔ ɾ ΞΫηε͕ଟ͘ɺ ༧ଌࠔ ରઓγεςϜΛಠٕࣗज़Ͱ࣮ େ༰ྔσʔλͷอଘɺ
σʔλશੑͷ֬อ "NB[PO3%4 "NB[PO4Λར༻
εέʔϥϒϧͳ ϩάऩूج൫
ιʔγϟϧήʔϜͱ ϩά $4ରԠ ,1*ࢦඪͷऔಘ γεςϜෆ۩߹ͷௐࠪ
σʔλͷछྨͱྔ ςΩε τϩά ΞΫηεϩάɺ Τϥʔϩάɺ ό τϧϩάɺ 42-ϩάʜ %BUBCBTF*OTFSUϩά
՝ۚϩάɺ ΞΠ ςϜϩάɺ ߦಈϩά
˞4IBEPXWFSTFҎ֎ؚΉ
ςΩε τϩάऩूͷ՝ ϩάऔΓ ͜΅͠ ҰߦͷαΠ ζ੍ݶ όο ϑ ΝΩϡʔҲΕ தܧαʔόͷෛՙ
ϩάσʔλ૿େʹΑ Δ εέʔϧΞ τͷ՝ Web Server 1 Error log KPI log Log Proxy 3 4UPSBHF"SSBZ Web Server 2 Web Server N SQL log Log Proxy 2 Access log Log Proxy 1
.Z42-Π ϯαʔ τ ϩάͷ՝ ϨεϙϯεԆ .Z42-*OTFSUॲཧͷԆ ϩάσʔλ૿େ ϨϓϦέʔγϣϯԆ Web
Server 1 Action log Web Server 2 Web Server N Item log MySQL Server Payment log
ಠࣗϩάసૹΤʔδΣϯ τͷ։ൃ "NB[PO4ʹϩάΛू ̎ͭͷϩάసૹΤʔδΣϯ τ Λ։ൃ 4UBMLFSςΩε τϩάͷసૹ 1PSUFS%#*OTFSUϩάͷඇಉظసૹ
ߏԽσʔλͷసૹͱ424ϝ οηʔδ࡞
4UBMLFSͱ1PSUFS औΓ ͜΅͠ࢭͱ࠶ଓ సૹͰ͖ͳ͔ͬͨϩάશͯϩʔΧϧʹอଘ &YQPOFOUJBM#BDLP⒎Ϧ τϥΠִؒͷௐ +JUUFS ʢΒ͖ͭʣ Λಋೖ͠ɺ
࠶ଓཁٻΛࢄ
4UBMLFSͱ1PSUFS "NB[PO4ͷύϑ ΥʔϚϯε্ ઌ಄จࣈʹϋο γϡϓϨϑ Ο ο Ϋ εՃ͠ɺ
JOEFYΛෳύʔς Ο γϣϯʹࢄ ྫ ɿ 4CVDLFU/MpMF໊
"TZODISPOPVT-PH 4ZTUFN (BNF 4ZTUFN CVTJOFTT 4ZTUFN 1PSUFSͱඇಉظ%#ϩάγεςϜ Worker Servers
(Amazon EC2) Log Datebase (Amazon Aurora) σʔλղੳ CSରԠ Porter Web Servers Amazon S3 SQS TSV
"844ϩάू Kibana Google BigQuery Mackerel Amazon Aurora Redshift Porter/Stalker
Amazon S3
ϩά౷ܭͱ άϥϑඳը )551εςʔλεͷΞΫηε
ώʔ τϚοϓ ΞΫηεϩάͱ࠲ඪใΛϚο ϐϯά
.BDLFSFM "QBDIFϨεϙϯελΠ ϜඵҎ্ͷ
"NB[PO4ͱ֎෦πʔϧͷ࿈ܞ εέʔϥϒϧʹ Π ϯελϯεΛ૿ݮ ϩάͷྔϐʔΫ࣌ͱ ࠷খͷ࣌Ͱഒͷࠩ αʔόϨεͰ ӡ༻Λܰݮ Google
BigQuery Porter/Stalker Amazon S3
1.Put Event Trigger 2.Create Message 3.C ount M essages
&$4Λར༻ͨ͠εέʔϥϒϧͳϩά࿈ܞ Google Cloud Storage Google BigQuery Auto Scaling 4.Run Task 6.Save Objects SQL Query Cron Job Amazon S3 Amazon Lamdba Amazon Lamdba SQS Amazon EC2 Container Service(ECS) Ϋϥελͷ$16༻ʹԠͯ͡ Π ϯελϯεΛ૿ݮ 5.Get Files ϩάྔʹԠͯ͡ίϯςφىಈΛ૿ݮ
ͭͷεέʔϦϯάϙϦ γͷ࿈ಈ -BNCEB'VODUJPO ϩάྔʹԠͯ͡ɺ ίϯςφىಈΛ্͛Δ &$"VUP4DBMJOH ىಈதίϯςφ͕ ্ঢʹΑ Γ$16༻্ঢ
&$εέʔϦϯάϙϦ γʹΑ Γ $POUBJOFS*OTUBODF૿Ճ &$4Ϋϥελʔͷ$16༻ $POUBJOFS*OTUBODFىಈ
ίε τݮͱࣗಈԽͷ࣮ݱ αʔόϨεʺίε τݮ -BNCEB&$4ʹΑ Γ ίε τ Λʹݮ
ίϯςφٕज़ͷ࠾༻ -BNCEBͱ&$4ͷద༻ൣғ όονॲཧɺ Π ϕϯ τ τ ϦΨʔ-BNCEB ৗ࣮࣌ߦ͢Δॲཧ&$4
"NB[PO"UIFOBͷར༻ 1.Put Event Trigger 2.Create Message 3.C ount M
essages Auto Scaling 4.Run Task Cron Job Amazon S3 Amazon Lamdba Amazon Lamdba SQS Amazon EC2 Container Service(ECS) 5.Get Files SQL Query Amazon S3 Amazon Athena 6.Save Objects Google Cloud Storage Google BigQuery SQL Query
"NB[PO"UIFOBͷར༻ ύεมʹΑ Δύʔς Ο γϣϯԽ 4UBMLFSͷ4ύεܗࣜ "NB[PO"UIFOBͷ4ύεܗࣜ S3://athena-examples/l2xa-<file>.20150101 s3://athena-examples/ex/2015/01/01/<file>
· ͱΊ ϩάूʹΑ Γσʔλ׆༻͕ଅਐ ඇಉظԽΛߦ͍ϨεϙϯεΛվળ αʔόϨε ͱࣗಈԽͰίε τ ͱݮ
$ZHBNFTΠ ϯϑϥ͕ େʹ͍ͯ͠Δ ͜ ͱ
ͨ Γલͷ͜ ͱ Λ ͨ ΓલʹΔ
Π ϯϑϥͷϨΠ ϠʔͰ ՝Λղܾ͢Δ
ίΞٕज़ ࣗͨͪͰ࣮͢Δ
5IBOLZPV