SlideShare a Scribd company logo
Submit Search
Upload
SINoALICE -シノアリス- それは必死の「サーバー削減」
Report
gree_tech
gree_tech
Follow
•
0 likes
•
26,037 views
1
of
31
SINoALICE -シノアリス- それは必死の「サーバー削減」
•
0 likes
•
26,037 views
Download Now
Download to read offline
Report
Engineering
CEDEC 2019 にて発表された資料です https://cedec.cesa.or.jp/2019/session/detail/s5ca04ea19f15b
Read more
gree_tech
gree_tech
Follow
Recommended
SINoALICE -シノアリス- グローバル版、全139ヵ国リリースへの道のり
gree_tech
2.1K views
•
47 slides
「電車でGO!!」アーケード大型3画面筐体で実在の街並みを表現するUE4開発事例
エピック・ゲームズ・ジャパン Epic Games Japan
12.4K views
•
121 slides
[デブサミ2015] スクラムならうまくいく?〜グリーのネイティブゲーム作りの歴史をひもとく、そして未来へ〜
gree_tech
5.1K views
•
74 slides
モンスター、マスコットとアニメーションの将来
エピック・ゲームズ・ジャパン Epic Games Japan
4.1K views
•
41 slides
Cedec2015_「消滅都市」運用の一年
gree_tech
21.5K views
•
90 slides
アナザーエデンを支える技術〜効率的なコンテンツ制作のための開発基盤〜
gree_tech
3.9K views
•
13 slides
More Related Content
What's hot
Cocos2d-xを用いた "LINE タワーライジング" の開発事例
gree_tech
8.3K views
•
45 slides
Unreal Engine 4の2018年上半期アップデート情報まとめ
エピック・ゲームズ・ジャパン Epic Games Japan
5.4K views
•
128 slides
【CGWORLDゼミ】ジェットスタジオ キャラメイクセミナー
弘幸 赤崎
12.7K views
•
74 slides
[CEDEC2014] 消滅都市のつくりかた 半年で素敵なゲームをリリースするには -
gree_tech
22.3K views
•
187 slides
世界を跨ぐリアルタイム PvP 対戦への挑戦 [Google Cloud INSIDE Games & Apps]
Google Cloud Platform - Japan
6.1K views
•
15 slides
【Saitama.js】Denoのすすめ
虎の穴 開発室
437 views
•
14 slides
What's hot
(18)
Cocos2d-xを用いた "LINE タワーライジング" の開発事例
gree_tech
•
8.3K views
Unreal Engine 4の2018年上半期アップデート情報まとめ
エピック・ゲームズ・ジャパン Epic Games Japan
•
5.4K views
【CGWORLDゼミ】ジェットスタジオ キャラメイクセミナー
弘幸 赤崎
•
12.7K views
[CEDEC2014] 消滅都市のつくりかた 半年で素敵なゲームをリリースするには -
gree_tech
•
22.3K views
世界を跨ぐリアルタイム PvP 対戦への挑戦 [Google Cloud INSIDE Games & Apps]
Google Cloud Platform - Japan
•
6.1K views
【Saitama.js】Denoのすすめ
虎の穴 開発室
•
437 views
CGWORLD Creative Conference 2017 「アセットの共有を円滑にするリグの作法」
BACKBONE-studio
•
7.6K views
animation_prototype_campfire_design
Yahoo!デベロッパーネットワーク
•
1.9K views
【20211027_toranoana.deno#2】とりあえずDenoを CloudRunで動かしてみる
虎の穴 開発室
•
296 views
Whomor portfolio
MinaOmori
•
51 views
Cloud runのオートスケールを検証してみる
虎の穴 開発室
•
858 views
1ヶ月で作り切る!スタートアップのための Rails 爆速開発術 (20170306)
Masataka Sato
•
1.5K views
Cedec2015 お客様に驚きを提供する運営 消滅都市の事例から-
gree_tech
•
27.2K views
Google I/O 報告 (Google Assistant)
Masatoshi Itoh
•
438 views
VR端末開発研究
Prolead_Terai
•
2K views
GCPの画像認識APIの紹介
虎の穴 開発室
•
332 views
UE4における大規模レベル実装ワークフローとブループリント活用事例
エピック・ゲームズ・ジャパン Epic Games Japan
•
21K views
Androidエンジニアになってからの1年間の感想と振り返り
ichirokato5
•
640 views
More from gree_tech
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
gree_tech
725 views
•
36 slides
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
gree_tech
229 views
•
13 slides
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
gree_tech
1K views
•
18 slides
アプリ起動時間高速化 ~推測するな、計測せよ~
gree_tech
1.9K views
•
84 slides
長寿なゲーム事業におけるアプリビルドの効率化
gree_tech
347 views
•
116 slides
Cloud Spanner をより便利にする運用支援ツールの紹介
gree_tech
680 views
•
31 slides
More from gree_tech
(20)
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
gree_tech
•
725 views
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
gree_tech
•
229 views
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
gree_tech
•
1K views
アプリ起動時間高速化 ~推測するな、計測せよ~
gree_tech
•
1.9K views
長寿なゲーム事業におけるアプリビルドの効率化
gree_tech
•
347 views
Cloud Spanner をより便利にする運用支援ツールの紹介
gree_tech
•
680 views
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
gree_tech
•
594 views
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
gree_tech
•
626 views
海外展開と負荷試験
gree_tech
•
593 views
翻訳QAでのテスト自動化の取り組み
gree_tech
•
304 views
組み込み開発のテストとゲーム開発のテストの違い
gree_tech
•
571 views
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
gree_tech
•
209 views
データエンジニアとアナリストチーム兼務になった件について
gree_tech
•
308 views
シェアドサービスとしてのデータテクノロジー
gree_tech
•
432 views
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
gree_tech
•
1K views
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
gree_tech
•
1.1K views
比較サイトの検索改善(SPA から SSR に変換)
gree_tech
•
691 views
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
gree_tech
•
2.9K views
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
gree_tech
•
395 views
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
gree_tech
•
750 views
Recently uploaded
how query cost affects search behavior translated in JP
Tobioka Ken
9 views
•
16 slides
robotics42.pptx
Natsutani Minoru
165 views
•
18 slides
lt.pptx
tomochamarika
39 views
•
13 slides
3Dプリンタでロボット作るよ#1_黎明編
Yoshihiro Shibata
19 views
•
7 slides
図解で理解するvetKD
ryoo toku
84 views
•
22 slides
AIで始めるRustプログラミング #SolDevHub
K Kinzal
20 views
•
25 slides
Recently uploaded
(7)
how query cost affects search behavior translated in JP
Tobioka Ken
•
9 views
robotics42.pptx
Natsutani Minoru
•
165 views
lt.pptx
tomochamarika
•
39 views
3Dプリンタでロボット作るよ#1_黎明編
Yoshihiro Shibata
•
19 views
図解で理解するvetKD
ryoo toku
•
84 views
AIで始めるRustプログラミング #SolDevHub
K Kinzal
•
20 views
SSH超入門
Toru Miyahara
•
12 views
SINoALICE -シノアリス- それは必死の「サーバー削減」
1.
株式会社ポケラボ 覚張 泰幸 1© POKELABO,
INC.2019/9/5 SINoALICE -シノアリス- それは必死の「サーバー削減」
2.
© POKELABO, INC.2019/9/5
2 覚張 泰幸 (Yasuyuki Kakuhari) 2013年ポケラボ入社から早6年、入社から今まで2タイトルのGvGを世に送る ● [GvG] 戦乱のサムライキングダム (2013年リリース) ● 新規アクションRPG (未リリース) ● [GvG] SINoALICE -シノアリス (2017年リリース) GvGで始まりGvGを作り続けるオトコ 登壇者の紹介
3.
© POKELABO, INC.2019/9/5
3 http://sinoalice.jp/ SINoALICE -シノアリス-の紹介 (c) 2017-2019 SQUARE ENIX CO., LTD. All Rights Reserved.
4.
© POKELABO, INC.2019/9/5
4 SINoALICE -シノアリス- それは最高の「未曾有アクセス」 • 2017年6月6日のリリース時、何が発生しどう安定に至ったのかを赤裸々 に紹介 去年 (CEDEC2018)
5.
© POKELABO, INC.2019/9/5
5 前回のおさらい 開かないメンテナンス..
6.
© POKELABO, INC.2019/9/5
6 前回のおさらい 2017年6月 ~ EC2台数推移 グラフ 増え続けるインスタンス..
7.
© POKELABO, INC.2019/9/5
7 AppStoreトップセールスランキング1位!! 前回のおさらい
8.
© POKELABO, INC.2019/9/5
8 今年 (CEDEC2019) SINoALICE -シノアリス- それは必死の「サーバー削減」
9.
© POKELABO, INC.2019/9/5
9 1. 削減の軌跡 2. 削減 3. SINoALICEにおけるサーバー削減, 移行の留意点 4. サーバー削減, 移行のテクニック SINoALICE -シノアリス- それは必死の「サーバー削減」
10.
© POKELABO, INC.2019/9/5
10 EC2 650台 • APP, mysql, memcached, マルチ通信システムで利用 • RDSと比較すると費用は安いが、台数が多い RDS 200台 • 広げすぎたAurora • 費用的にもインパクトが大きいので、徹底削減 削れる所から削る 削減の軌跡
11.
© POKELABO, INC.2019/9/5
11 • 最大値650台!! 削減の軌跡 2017年6月 ~ EC2台数推移 グラフ
12.
© POKELABO, INC.2019/9/5
12 150台前後で推移 削減の軌跡 直近1年 ~ EC2台数推移 グラフ
13.
© POKELABO, INC.2019/9/5
13 • 最大値200台!! 削減の軌跡 2017年6月 ~ RDS台数推移 グラフ
14.
© POKELABO, INC.2019/9/5
14 50台前後で推移 削減の軌跡 直近1年 ~ RDS台数推移 グラフ
15.
© POKELABO, INC.2019/9/5
15 簡単なモノは定常メンテナンスで実施 • ElastiCacheやRead Replicaの削減, スケールダウンに関しては、時間 を要さないので定常メンテナンスで対応 大掛かりな作業は深夜メンテナンスを実施 • データベースの統合, 分散に関しては、時間を要するので深夜メンテナン スで対応 削減
16.
© POKELABO, INC.2019/9/5
16 膨大なデータ量 • 当初の想定を大幅に上回る10倍の人数を抱えている為、Log, Data周り の退避, 分散がそもそも適正ではない 様々なバッチ処理 • ゲームからデータベースを切り離してもバッチ処理は続けなければならな い SINoALICEにおけるサーバー削減, 移行の留意点
17.
© POKELABO, INC.2019/9/5
17 EBSの料金削減の為、データベース移行, 統合時に新しく作り直す • 一度広がった領域は縮小されない為、載せ替え 複数のalterは一つにまとめる • 基本中の基本ではあるが、徹底 • 個々のデータ量が大きい為、まとめなかった場合は延長のリスク 移行作業前のスケールアップ • dump, restoreの速度増加 (CPU, I/O, NICの性能向上を狙う) サーバー削減, 移行のテクニック
18.
© POKELABO, INC.2019/9/5
18 ゲームを止めずにsharding化 • 初回shardingテーブルに対し、selectを発行 • データがあればそのまま利用し、データがなければ未shardingのテーブ ルにselectを発行 • 未shardingのテーブルにselectが走った場合、shardingテーブルに対し insertを発行 サーバー削減, 移行のテクニック
19.
© POKELABO, INC.2019/9/5
19 RDSを利用している為、スケールダウンは定常メンテナンスで容易に実施出 来るが、スケールインは深夜メンテナンスが必須である 特に大量のデータを分散, 統合, 変更は膨大な時間を要する グラフで示すと盛り上がるので台数のグラフを出したが、実際はインスタンス のタイプ変更(スケールダウン)による削減も大きい そもそもスケールアウト, スケールインを小まめに実施する様なシステムは 想定していなかったので、スケールアップ, スケールダウンで諸々対応した い まとめ
20.
© POKELABO, INC.2019/9/5
20 深夜メンテナンス中、実際に発生したしくじり事例の紹介 しくじり
21.
© POKELABO, INC.2019/9/5
21 想定通りに進まず、メンテナンスを延長 (2017-10-12) • 事前にシミュレーションを行なっていたが、予定を大幅に超えてしまい、メ ンテナンス終了に間に合わなくなってしまった • 結果、45分メンテナンス延長 • ギリギリ朝のコロシアム時間には間に合ったが.. シミュレーション通りに行かない しくじり事例
22.
© POKELABO, INC.2019/9/5
22 移行に失敗し、翌日のコロシアムが出来ない (2017-10-12) • ユーザー関連のAuroraが移行中に異常 (import中なのにCPU負荷が下 がっている, DMLレイテンシが異常に上昇 etc..) • 時間に間に合わない可能性が出たので、failover処理によるRead Replica切り替 え • バッチによるマッチング処理が上記影響で中断され、翌朝のコロシアムが正常に 開催されない • 神魔召喚のレコードが正しく登録されず、神魔が時間通りに発生しない トラブル発生 しくじり事例 (2)
23.
© 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)
24.
© POKELABO, INC.2019/9/5
24 1. 大規模マーケティング時のサーバー増設 2. SINoALICEにおけるAPPサーバーの削減 おまけ
25.
© POKELABO, INC.2019/9/5
25 APPサーバーに関しては、台数を並べて対応 • オートスケーリンググループを利用し、台数を調整 データベースに関しては、スケールアップで対応 • スケールアウト, スケールインは準備がとても大変 • スケールアップでなるべく対応する 複数の施策が重なると、通常の2倍以上に増えるコトも..!! 大規模マーケティング時のサーバー増設
26.
© POKELABO, INC.2019/9/5
26 大規模マーケティング時のサーバー増設 2019年7月 ~ 直近コラボ時のEC2適正台数推移 グラフ
27.
© POKELABO, INC.2019/9/5
27 分析 • New Relicを利用し、効率の悪いAPIを抽出, 改善 最適化 • 24時間を通して細かくオートスケーリンググループを設定し、常に最適な 台数でシステムを運用 • クライアント側の効率化 (ローカルストレージの更なる有効活用) The 当たり前 SINoALICEにおけるAPPサーバーの削減
28.
© POKELABO, INC.2019/9/5
28 SINoALICEにおけるAPPサーバーの削減 2019年8月22日に改善したとあるAPI
29.
© POKELABO, INC.2019/9/5
29 ゲームを運用する上で課題は日々変わって行く (未曾有アクセスからサーバー削減) 課題に対する最適な道を模索, 選択することで、未来に繋がる 今後も色々課題が浮き彫りになって来るだろうが、楽しみながら対応し続け たい 最後に
30.
© POKELABO, INC.2019/9/5
30 CEDEC2019協賛させて頂きました!! ポケロボくん
31.
31© POKELABO, INC.2019/9/5 ご静聴ありがとうございました