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
0
270
SINoALICE -シノアリス- それは必死の「サーバー削減」
CEDEC 2019 にて発表された資料です
https://cedec.cesa.or.jp/2019/session/detail/s5ca04ea19f15b
gree_tech
PRO
September 12, 2019
Tweet
Share
More Decks by gree_tech
See All by gree_tech
REALITY株式会社における開発生産性向上の取り組み: 失敗と成功から学んだこと
gree_tech
PRO
2
240
『ヘブンバーンズレッド』におけるフィールドギミックの裏側
gree_tech
PRO
2
200
セキュリティインシデント対応の体制・運用の試行錯誤 / greetechcon2024-session-a1
gree_tech
PRO
1
200
『アナザーエデン 時空を超える猫』国内海外同時運営実現への道のり ~別々で開発されたアプリを安定して同時リリースするまでの取り組み~
gree_tech
PRO
1
170
『アサルトリリィ Last Bullet』におけるクラウドストリーミング技術を用いたブラウザゲーム化の紹介
gree_tech
PRO
1
220
UnityによるPCアプリの新しい選択肢。「PC版 Google Play Games」への対応について
gree_tech
PRO
1
380
実機ビルドのエラーによる検証ブロッカーを0に!『ヘブンバーンズレッド』のスモークテスト自動化の取り組み
gree_tech
PRO
1
250
"ゲームQA業界の技術向上を目指す! 会社を超えた研究会の取り組み"
gree_tech
PRO
1
300
Jamstack でリニューアルするグリーグループのメディア
gree_tech
PRO
2
460
Other Decks in Technology
See All in Technology
ゼロからわかる!!AWSの構成図を書いてみようワークショップ 問題&解答解説 #デッカイギ #羽田デッカイギおつ
_mossann_t
0
1.6k
ABWGのRe:Cap!
hm5ug
1
140
技術に触れたり、顔を出そう
maruto
1
160
AWSサービスアップデート 2024/12 Part3
nrinetcom
PRO
0
160
カップ麺の待ち時間(3分)でわかるPartyRockアップデート
ryutakondo
0
160
20250122_FinJAWS
takuyay0ne
2
210
【Oracle Cloud ウェビナー】2025年のセキュリティ脅威を読み解く:リスクに備えるためのレジリエンスとデータ保護
oracle4engineer
PRO
1
110
[IBM TechXchange Dojo]Watson Discoveryとwatsonx.aiでRAGを実現!事例のご紹介+座学②
siyuanzh09
0
120
AWS re:Invent 2024 recap in 20min / JAWSUG 千葉 2025.1.14
shimy
1
110
Building Scalable Backend Services with Firebase
wisdommatt
0
110
タイミーのデータ活用を支えるdbt Cloud導入とこれから
ttccddtoki
2
370
DMMブックスへのTipKit導入
ttyi2
1
130
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Code Reviewing Like a Champion
maltzj
521
39k
Designing on Purpose - Digital PM Summit 2013
jponch
117
7.1k
Speed Design
sergeychernyshev
25
740
Done Done
chrislema
182
16k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
30
2.1k
Navigating Team Friction
lara
183
15k
How to train your dragon (web standard)
notwaldorf
89
5.8k
Designing for humans not robots
tammielis
250
25k
Building Adaptive Systems
keathley
38
2.4k
Six Lessons from altMBA
skipperchong
27
3.6k
Docker and Python
trallard
43
3.2k
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 ご静聴ありがとうございました