BaaSでゲームサーバを作る話

33 %
67 %
Information about BaaSでゲームサーバを作る話

Published on July 12, 2016

Author: tomotochi

Source: slideshare.net

1. BaaSでゲームサーバを作る話 1

2. この講演について 目次 この講演について BaaSとは BaaSの予算 BaaSの導入 GameSparksについて © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 2

3. この講演について 自己紹介 遠地 等一(とおち ともかず) SQUARE ENIX © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 3

4. この講演について 目的 ゲームサーバをBaaSで作ることの紹介 得られるもの BaaSについての理解 対象 サーバ/インフラエンジニア プロジェクトマネジャー © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 4

5. この講演について 用語 © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 5 IaaS BaaS イアース。アイアース。 Infrastructure-as-a-Service インフラを、インターネット 上のサービスとして遠隔から 利用できるようにしたもの。 バース。 Backend-as-a-Service モバイルアプリサービスの運用 に必要な汎用的なサーバ機能を 提供するクラウドサービス。

6. BaaSとは BaaSとは © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 6

7. BaaSとは いつも同じものを作っていませんか? © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 7

8. BaaSとは モバイルゲームに必要なサーバ機能はいつも似ている 新規ユーザ登録 セーブデータ管理 アセットデータダウンロード アプリ内課金 フレンド・ギルド ランキング マルチプレイ プッシュ通知 オートスケール KPI集計・ログ解析 管理ツール © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 8

9. BaaSとは いつも似たサーバ障害が 起きていませんか? © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 9

10. BaaSとは モバイルゲームに起こるサーバ障害もいつも似ている 一時的な大量流入によるログインゲーム CPU・メモリ不足 DBスペック不足 ディスク容量不足 マルチプレイ不全 課金トラブル KPI取得ミス 監視漏れ 脆弱性・セキュリティ脅威 データ流出 © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 10

11. BaaSとは なぜ同じ機能の再発明や 似た障害の再現が起こるのか? © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 11

12. BaaSとは IaaSは自分でやることや、不確定要素が多いため。 IaaS BaaS インフラ設計 仕様によって変化 設計済み サーバアプリ開発 担当者のスキルによる フレームワークあり インフラ構築 担当者のスキルによる 必要なし 負荷テスト 担当者のスキルによる 限定的 セキュリティ対策 担当者のスキルによる 対策済み インフラ保守 設計と負荷によって変化 必要なし © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 12

13. BaaSとは BaaSはよく使う機能をフレームワークで提供 提供機能 ソフトウェア SaaS Office 365 など プログラム BaaS スケールアウト PaaS Google App Engine Heroku など OS/ミドルウェア スケールアップ IaaS Amazon Web Services など ハードウェア ホスティング ネットワーク ハウジング よく使う機能を フレームワーク化 © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 13

14. BaaSとは BaaSとは 既存の機能を利用して工数を圧縮 安定した品質のゲームサーバを構築 することが可能なサービス。 © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 14

15. BaaSとは F2Pゲームでは、やることがいっぱいある © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 15 端末/プラットフォーム/ゲームエンジン/サーバ ゲームデザイン/プレイサイクル/ソーシャル 手触り/テンポ/演出/世界観 集客/継続率/更新 マネタイズ/コミュニティ/IP収益・IP 運営 体験 メカニクス 基盤技術 工数の圧縮 品質の安定

16. BaaSとは 実際にあった例 とあるモバイルゲームが 世界各国で同時期にフィーチャーされた。 © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 16

17. BaaSとは 新規流入の様子 © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 17 Made with Natural Earth. Free vector and raster map data @ naturalearthdata.com.

18. BaaSとは 新規流入の様子 ものすごい数の新規ユーザが来た。 © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 18

19. BaaSとは まったく何もする必要がなかった。 BaaSは保守要らず。 開発者はゲームサーバの設計・チューニング・保守に 悩まされることなく、ゲーム開発に集中できる。 © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 19

20. BaaSの予算 BaaSの予算 © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 20

21. BaaSの予算 料金体系の例 © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 21 IaaS BaaS スペック×時間ベース オペレーション数ベース サポート有償 MAUベース オペレーション数ベース サポート/アドオン有償

22. BaaSの予算 MAUベースの料金体系の場合、 ゲームBaaSの相場は1MAUあたり1~2円。 これは、安いか、高いか? © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 22

23. BaaSの予算 とっても安い! アクティブなプレイヤー1人あたり、 平均して2円/月以上の利益が出れば、 最低限やっていける。 (ARPU ≥ 2.86円) © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 23

24. BaaSの予算 MAUベースの料金体系という考え方 企業でF2Pゲームを運営する場合、 通常は月単位の収支を指標にするので、 MAUベース料金だと予算を見積もりやすい。 © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 24

25. BaaSの予算 こんなゲームがあったとして ARPU = 100円/月 固定費(運営費)= 1000万円/月 サーバ費用 = 2円/MAU MAUが何人なら、単月黒字化できるか? © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 25

26. BaaSの予算 損益分岐点を計算 売上 = MAU ∙ ARPU 変動費 = 回収代行手数料 + サーバ費用 限界利益率 = 売上−変動費 売上 = 売上−(回収代行手数料+サーバ費用) 売上 = MAU∙ARPU−(0.3∙MAU∙ARPU+2∙MAU) MAU∙ARPU = 0.7 − 2 ARPU ARPU = 100円なので、 限界利益率 = 0.7 − 2 100 = 0.68 損益分岐点 = 固定費 限界利益率 = 1000万円 0.68 ≒ 1470万円 ≒ 14.7万MAU © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 26 売上と変動費がMAUベースなので シンプルな数式になる

27. BaaSの予算 © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 27 限界利益率 = 0.7 − 2 ARPU 損益分岐点 1470万円 14.7万MAU 売上 貢献 利益 固定費 貢献利益 MAUが限界利益率に影響しない つまり、単純に集客できれば 単月黒字化できる

28. BaaSの予算 損益分岐グラフから読み取れること MAUが限界利益率に影響しない 単純に集客できれば単月黒字化できるため、 集客に集中できる。 限界利益率の高さ ARPUが高ければ、 限界利益率 ≒ 0.7=1−手数料率 © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 28

29. BaaSの導入 BaaSの導入 © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 29

30. BaaSの導入 とあるモバイルゲームでBaaSを使ってみた GameSparksとは カジュアルゲーム分野においてリードする バックエンドサービス。 アイルランドに本社。 © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 30

31. BaaSの導入 GameSparks提供資料からの抜粋 © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 31

32. BaaSの導入 GameSparksのポータル(開発者画面) © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 32

33. BaaSの導入 GameSparksにおけるワークフロー 1. ポータルでGameSparksアカウントを作成 2. ゲームを作成 3. ゲームのAPIキー・シークレットキーをSDKに組み込み 4. プレビュー環境で開発  スキーマレスなセーブデータDBが作成済み。  既存のAPIを使うか、自分でイベントを定義し、クラウドコードを書く。 5. ライブ環境にパブリッシュ © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 33

34. BaaSの導入 GameSparksにおけるよくある機能マッピング 機能 API名 デバイスとセーブデータ紐付け *AuthenticationRequest カスタムAPI LogEventRequest 課金 *BuyGoodsRequest 消費 BuyVirtualGoodsRequest DLC GetDownloadableRequest ランキング LeaderboardsEntriesRequest アナリティクス AnalyticsRequest 実績解除報酬 AchievementEarnedMessage プッシュ通知 PushRegistrationRequest ソーシャルメッセージ SendFriendMessageRequest ギルド/クラン/チーム CreateTeamRequest サードパーティ連携 *ConnectRequest マルチプレイマッチング MatchmakingRequest © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 34

35. BaaSの導入 GameSparksの仕様・構成 項目 内容 クラウドサービス Amazon Web Services Microsoft Azure Google Cloud Platform (サービス非依存の作り) データセンター 欧州・米国・アジア・オセアニア・アフリカ・中国 サポート GameSparks(英語)/コミュニティフォーラム オートスケール メトリクス監視しオートスケール サーバクローン メタデータコピー機能あり。 DBコピーはサポートチケット経由で依頼できる。 スナップショット ロジックはzipで、メタデータはJSONでエクスポート可能。 DBダンプはREST APIか、サポートチケット経由で取得。 OS Ubuntu LTS release (14.04 64-bit) © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 35

36. BaaSの導入 GameSparksの仕様・構成の詳細 項目 内容 ロードバランシング 地理的に分散された軽量なノードに問い合わせ、 接続APIサーバを決定 スケールアウト APIサーバは水平自動スケールし、新しいノードは5分以内 に運用可能な状態となる。 MongoDBは垂直・水平(シャーディング)スケールも可能。 Redisは垂直・水平スケール可能。 要望があれば、専用のクラスターを用意可能。 負荷テスト クラスタは12万同時接続、6000qpsまで負荷テスト済み。 これはMAU換算で言うと3000万。 これがクラスタの性能の上限というわけではなく、 あくまで負荷テストをこのポイントまで行ったという結果。 アクセス制御 PortalでアカウントごとにRead/Write権限を設定。 ゲーム設定/アナリティクス/課金/管理ツール画面、など。 障害復旧 MongoDBを12時間毎、Redisを1時間毎にバックアップ バックアップは7日間保持 定期的にバックアップ&リカバリーのプロセスをテスト。 ゲームをクラスタ間で5分以内にマイグレーション可能。 © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 36

37. BaaSの導入 GameSparksの内部仕様1 項目 内容 利用コンポーネント Linux WebSocket Java & Jetty MongoDB Redis Elasticsearch デプロイメント AWSとAzureのAPIを使い倒している。 Puppetで全てのサーバを設定している。 ゼロダウンタイム更新 APIサーバは自動テストをフルで走らせたものをリリースし、 クライアントは徐々に新APIサーバに移行。旧APIサーバは ロールバックに備えある程度残された後、削除される。 モニタリング 毎分3万項目の独立したメトリクスを監視。 APIとPortalのトランザクションを、 5分毎に各拠点において監視。 © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 37

38. BaaSの導入 GameSparksの内部仕様2 項目 内容 マルチテナント マルチテナント環境のサービスではあるが、 要望に応じてシングルテナント環境を提供可能。 他のテナントの影響は最小限で、オーバーコミットなし。 セキュリティ 通信はTLS。 暗号化とハッシュ値による改ざん検知。 法的解析に使えるように、全てのアクセスはログされる。 あやしいアクセスパターンを、検知できるように設定できる。 © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 38

39. BaaSの導入 GameSparksのデメリット サービスへの依存性が発生。 GameSparksのサービスが終了したら、 必然的にゲームのサービスもできなくなる。 ドキュメントが英語。 (日本の代理店候補はある) Portalのレスポンスがもっさりしている時がある。 (時間帯による。APIのレスポンスは問題なし) © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 39

40. BaaSの導入 BaaSの導入検討にあたり気を付けるべきこと 単純に費用で比較せず、さまざまな角度から検討。 スキーマレス/トランザクションレスDBの扱いに不慣れな人は、 慣れてから。 JavaScriptを有効活用できるかどうか検討。 リセマラ/Bot対策が必要。 低課金率地域への展開時に気を付ける。 © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 40

41. BaaSの導入 © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 41 BaaS 便利な機能があり 開発・保守コスト が安いが、 サービスへの依存 性が発生する IaaS 自由度が高く 何でも作れるが、 開発・保守コスト がかかる

42. BaaSの導入 BaaSリスト © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 42 GameSparks http://www.gamesparks.com/ ShepHertz http://www.shephertz.com/jp/ HeroicLabs https://heroiclabs.com/ brainCloud http://getbraincloud.com/ PlayFab https://playfab.com/ Gamedonia http://www.gamedonia.com/backend Flox http://gamua.com/flox/ Clan of the Cloud http://www.clanofthecloud.com/

43. ご質問? © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 43

44. ご清聴ありがとうございました。 © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 44

45. 奥付 Amazon Web ServicesはAmazon.com社の商標または登録商標です。 Google App EngineはGoogle社の商標または登録商標です。 Microsoft AzureはMicrosoft社の商標または登録商標です。 HerokuはSalesforce.com社の商標または登録商標です。 Office 365はMicrosoft社の商標または登録商標です。 その他掲載されている会社名、商品名は、各社の商標または登録商標です。 © 2016 SQUARE ENIX CO., LTD. All Rights Reserved. 45

Add a comment

Related pages

BaaSでゲームサーバを作る話 - embedslide.net

Embed slide. Repository for embed slide from slideshare, speakerdeck or using HTML framework like reveal.js, desk.js, ... We are not responsible ...
Read more

第1回 Gaming Tech Night(AWSの主催するゲーム勉強会です。開発エンジンとリアルタイム通信について ...

第1回 Gaming Tech Night(AWSの主催するゲーム勉強会です。開発エンジンとリアルタイム通信についてセッション、LTを ...
Read more

第1回 Gaming Tech Night - dots. [ドッツ]

BaaSでゲームサーバを作る話 (仮 ...
Read more

第1回 Gaming Tech Night - connpass

7月. 7. 第1回 Gaming Tech Night 夏の夜のゲーム開発祭り!開発エンジンとリアルタイム通信をテーマに、セッション、LT ...
Read more

500’s Demo Day Batch 16 >> Mars Reel

BaaSでゲームサーバを作る話. By: slideshare . New DNS Traffic Analysis Techniques to Identify Global Internet Threats. By: ...
Read more