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
SINoALICE -シノアリス- それは必死の「サーバー削減」
Search
gree_tech
PRO
September 12, 2019
Technology
960
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SINoALICE -シノアリス- それは必死の「サーバー削減」
CEDEC 2019 にて発表された資料です
https://cedec.cesa.or.jp/2019/session/detail/s5ca04ea19f15b
gree_tech
PRO
September 12, 2019
More Decks by gree_tech
See All by gree_tech
変わるもの、変わらないもの :OSSアーキテクチャで実現する持続可能なシステム
gree_tech
PRO
0
4.8k
マネジメントに役立つ Google Cloud
gree_tech
PRO
0
64
今この時代に技術とどう向き合うべきか
gree_tech
PRO
3
2.7k
生成AIを開発組織にインストールするために: REALITYにおけるガバナンス・技術・文化へのアプローチ
gree_tech
PRO
0
440
安く・手軽に・現場発 既存資産を生かすSlack×AI検索Botの作り方
gree_tech
PRO
0
430
生成AIを安心して活用するために──「情報セキュリティガイドライン」策定とポイント
gree_tech
PRO
1
2.4k
あうもんと学ぶGenAIOps
gree_tech
PRO
0
550
MVP開発における生成AIの活用と導入事例
gree_tech
PRO
0
580
機械学習・生成AIが拓く事業価値創出の最前線
gree_tech
PRO
0
460
Other Decks in Technology
See All in Technology
打造你的 AI 工作流:Agent Skill + MCP 實戰工作坊
appleboy
0
270
「勝手に広まる」人気 AI エージェントを爆速で作ろう!(AWS Summit Japan 2026講演資料)
minorun365
PRO
10
2.7k
デジタル・デザイン構想 by Sayaka Ishizuka
y150saya
0
140
toB プロダクトから見たWAF
tokai235
0
260
コミュニティの有益性 ~JAWS Days 2026 での体験を通して~ / The Benefits of a Community ~Through My Experience at JAWS Days 2026~
seike460
PRO
0
310
Foundry Toolkit + Lemonade Serverでローカルワークフロー開発
seosoft
0
110
AWS PrivateLink × SCIM で実現する セキュアで運⽤負荷の低い Databricks 基盤の構築
tsuda7
0
120
次世代ランサムウェア対策の考察 / 20260704 Mitsutoshi Matsuo
shift_evolve
PRO
5
1.4k
Microsoft のサポートとフィードバック総まとめ
murachiakira
PRO
0
130
【FinOps】データドリブンな意思決定を目指して
z63d
3
540
AWS Summit 2026で見えたSIerにとっての Amazon Quickの位置づけ
maf_0521
0
140
FinOps X 2026 Recap from Engineer Side #JapanFinOps
chacco38
0
200
Featured
See All Featured
Ruling the World: When Life Gets Gamed
codingconduct
0
270
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
Color Theory Basics | Prateek | Gurzu
gurzu
0
380
Code Review Best Practice
trishagee
74
20k
A Tale of Four Properties
chriscoyier
163
24k
Fireside Chat
paigeccino
42
4k
Statistics for Hackers
jakevdp
799
230k
Optimising Largest Contentful Paint
csswizardry
37
3.7k
GraphQLとの向き合い方2022年版
quramy
50
15k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.8k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
230
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
170
Transcript
株式会社ポケラボ 覚張 泰幸 1 © POKELABO, INC. 2019/9/5 SINoALICE -シノアリス-
それは必死の「サーバー削減」
© POKELABO, INC. 2019/9/5 2 覚張 泰幸 (Yasuyuki Kakuhari) 2013年ポケラボ入社から早6年、入社から今まで2タイトルのGvGを世に送る
• [GvG] 戦乱のサムライキングダム (2013年リリース) • 新規アクションRPG (未リリース) • [GvG] SINoALICE -シノアリス (2017年リリース) GvGで始まりGvGを作り続けるオトコ 登壇者の紹介
© POKELABO, INC. 2019/9/5 3 http://sinoalice.jp/ SINoALICE -シノアリス-の紹介 (c) 2017-2019
SQUARE ENIX CO., LTD. All Rights Reserved.
© POKELABO, INC. 2019/9/5 4 SINoALICE -シノアリス- それは最高の「未曾有アクセス」 • 2017年6月6日のリリース時、何が発生しどう安定に至ったのかを赤裸々
に紹介 去年 (CEDEC2018)
© POKELABO, INC. 2019/9/5 5 前回のおさらい 開かないメンテナンス..
© POKELABO, INC. 2019/9/5 6 前回のおさらい 2017年6月 ~ EC2台数推移 グラフ
増え続けるインスタンス..
© POKELABO, INC. 2019/9/5 7 AppStoreトップセールスランキング1位!! 前回のおさらい
© POKELABO, INC. 2019/9/5 8 今年 (CEDEC2019) SINoALICE -シノアリス- それは必死の「サーバー削減」
© POKELABO, INC. 2019/9/5 9 1. 削減の軌跡 2. 削減 3.
SINoALICEにおけるサーバー削減, 移行の留意点 4. サーバー削減, 移行のテクニック SINoALICE -シノアリス- それは必死の「サーバー削減」
© POKELABO, INC. 2019/9/5 10 EC2 650台 • APP, mysql,
memcached, マルチ通信システムで利用 • RDSと比較すると費用は安いが、台数が多い RDS 200台 • 広げすぎたAurora • 費用的にもインパクトが大きいので、徹底削減 削れる所から削る 削減の軌跡
© POKELABO, INC. 2019/9/5 11 • 最大値650台!! 削減の軌跡 2017年6月 ~
EC2台数推移 グラフ
© POKELABO, INC. 2019/9/5 12 150台前後で推移 削減の軌跡 直近1年 ~ EC2台数推移
グラフ
© POKELABO, INC. 2019/9/5 13 • 最大値200台!! 削減の軌跡 2017年6月 ~
RDS台数推移 グラフ
© POKELABO, INC. 2019/9/5 14 50台前後で推移 削減の軌跡 直近1年 ~ RDS台数推移
グラフ
© POKELABO, INC. 2019/9/5 15 簡単なモノは定常メンテナンスで実施 • ElastiCacheやRead Replicaの削減, スケールダウンに関しては、時間
を要さないので定常メンテナンスで対応 大掛かりな作業は深夜メンテナンスを実施 • データベースの統合, 分散に関しては、時間を要するので深夜メンテナン スで対応 削減
© POKELABO, INC. 2019/9/5 16 膨大なデータ量 • 当初の想定を大幅に上回る10倍の人数を抱えている為、Log, Data周り の退避,
分散がそもそも適正ではない 様々なバッチ処理 • ゲームからデータベースを切り離してもバッチ処理は続けなければならな い SINoALICEにおけるサーバー削減, 移行の留意点
© POKELABO, INC. 2019/9/5 17 EBSの料金削減の為、データベース移行, 統合時に新しく作り直す • 一度広がった領域は縮小されない為、載せ替え 複数のalterは一つにまとめる
• 基本中の基本ではあるが、徹底 • 個々のデータ量が大きい為、まとめなかった場合は延長のリスク 移行作業前のスケールアップ • dump, restoreの速度増加 (CPU, I/O, NICの性能向上を狙う) サーバー削減, 移行のテクニック
© POKELABO, INC. 2019/9/5 18 ゲームを止めずにsharding化 • 初回shardingテーブルに対し、selectを発行 • データがあればそのまま利用し、データがなければ未shardingのテーブ
ルにselectを発行 • 未shardingのテーブルにselectが走った場合、shardingテーブルに対し insertを発行 サーバー削減, 移行のテクニック
© POKELABO, INC. 2019/9/5 19 RDSを利用している為、スケールダウンは定常メンテナンスで容易に実施出 来るが、スケールインは深夜メンテナンスが必須である 特に大量のデータを分散, 統合, 変更は膨大な時間を要する
グラフで示すと盛り上がるので台数のグラフを出したが、実際はインスタンス のタイプ変更(スケールダウン)による削減も大きい そもそもスケールアウト, スケールインを小まめに実施する様なシステムは 想定していなかったので、スケールアップ, スケールダウンで諸々対応した い まとめ
© POKELABO, INC. 2019/9/5 20 深夜メンテナンス中、実際に発生したしくじり事例の紹介 しくじり
© POKELABO, INC. 2019/9/5 21 想定通りに進まず、メンテナンスを延長 (2017-10-12) • 事前にシミュレーションを行なっていたが、予定を大幅に超えてしまい、メ ンテナンス終了に間に合わなくなってしまった
• 結果、45分メンテナンス延長 • ギリギリ朝のコロシアム時間には間に合ったが.. シミュレーション通りに行かない しくじり事例
© POKELABO, INC. 2019/9/5 22 移行に失敗し、翌日のコロシアムが出来ない (2017-10-12) • ユーザー関連のAuroraが移行中に異常 (import中なのにCPU負荷が下
がっている, DMLレイテンシが異常に上昇 etc..) • 時間に間に合わない可能性が出たので、failover処理によるRead Replica切り替 え • バッチによるマッチング処理が上記影響で中断され、翌朝のコロシアムが正常に 開催されない • 神魔召喚のレコードが正しく登録されず、神魔が時間通りに発生しない トラブル発生 しくじり事例 (2)
© POKELABO, INC. 2019/9/5 23 移行による費用増加 (2019-07-05) • モノガタリ, コロシアムで利用しているデータベースをEC2(mysql)から
RDS(Aurora)に載せ替え • EC2のI/Oアクセスを元に費用を見積もったが、設定が異なり見積もりが 役に立たず • EC2ではinnodb_flush_log_at_trx_commitの値を2で利用していた • RDSではデフォルト値を使用する様に設定していたが、EBS(I/O)へのアクセスが 想定以上に増え、予算を遥かに上回る請求が来た 見積もり誤り しくじり事例 (3)
© POKELABO, INC. 2019/9/5 24 1. 大規模マーケティング時のサーバー増設 2. SINoALICEにおけるAPPサーバーの削減 おまけ
© POKELABO, INC. 2019/9/5 25 APPサーバーに関しては、台数を並べて対応 • オートスケーリンググループを利用し、台数を調整 データベースに関しては、スケールアップで対応 •
スケールアウト, スケールインは準備がとても大変 • スケールアップでなるべく対応する 複数の施策が重なると、通常の2倍以上に増えるコトも..!! 大規模マーケティング時のサーバー増設
© POKELABO, INC. 2019/9/5 26 大規模マーケティング時のサーバー増設 2019年7月 ~ 直近コラボ時のEC2適正台数推移 グラフ
© POKELABO, INC. 2019/9/5 27 分析 • New Relicを利用し、効率の悪いAPIを抽出, 改善
最適化 • 24時間を通して細かくオートスケーリンググループを設定し、常に最適な 台数でシステムを運用 • クライアント側の効率化 (ローカルストレージの更なる有効活用) The 当たり前 SINoALICEにおけるAPPサーバーの削減
© POKELABO, INC. 2019/9/5 28 SINoALICEにおけるAPPサーバーの削減 2019年8月22日に改善したとあるAPI
© POKELABO, INC. 2019/9/5 29 ゲームを運用する上で課題は日々変わって行く (未曾有アクセスからサーバー削減) 課題に対する最適な道を模索, 選択することで、未来に繋がる 今後も色々課題が浮き彫りになって来るだろうが、楽しみながら対応し続け
たい 最後に
© POKELABO, INC. 2019/9/5 30 CEDEC2019協賛させて頂きました!! ポケロボくん
31 © POKELABO, INC. 2019/9/5 ご静聴ありがとうございました