creative mode

映像とwebが好きです

読書メモ:ゲーム開発が変わる!Google Cloud Platform 実践インフラ構築

目的

ゲームにおけるクラウドアーキテクチャの実例を知り業務に活かす。

感想

書籍としてまとまっている情報はなかなかないため、ゲームインフラの全体像を掴むのには良いと思いました。 ゲームと言っても、事例は一番クラウドサービスと相性が良いモバイルゲームが中心です。 実例を知るという目的は達成できたと思います。ただ、事例紹介とGCPの機能紹介が大半で内容は薄いかなと思いました。

GCPの概要や他のクラウドサービスとの比較が手厚く書かれているので、GCPを検討している人は参考になると思います。 逆に業務で既に使っている人は新しい知見を得られにくいかもしれないです。

また、2016年の本なので内容は古いです。今はいろんなゲームの実例が資料として公開されているので、補完すると良いと思います。

メモ

ゲームインフラに求められる要件

前提として以下の要件を満たす構成が必要になります。ポイントは柔軟性。 - サーバーに求められる性能が高い - 大規模なゲームだと数百台のサーバ - サーバ管理の仕組みづくりとインフラのコストをいかに抑えるか - ピーク時と平常時に求められる性能の差が大きい - イベント更新時にアクセス数が跳ね上がる - インフラリソースの稼働率を最適化する必要がある - 流行り廃りに応じて規模を変更する必要がある - 爆発的にアクセス数が伸びることがある - ユーザーに飽きられ、縮退していく時もサーバリソースを無駄にしない - 性能の需要予測が難しい - 熟練のエンジニアでもサーバーリソースの予測は難しい - サーバー増減は柔軟にできるように

GCPが他のクラウドサービスに比べて有利な点

一般的なゲーム用途では以下のメリットを得られる場合が多いようです。 特に、料金体系がゲームインフラに合っているのが良いですね。

  • Google専用の通信網
    • GCPの根幹をなすものであり、一番大きなメリット
    • リージョンを越えたプライベートネットワーク
    • 高速かつ安定
  • ロードバランサ
    • 事前準備やウォーミングアップなしで秒間100万リクエスト以上処理可能
    • IPベースのグローバルロードバランシング
  • VM
  • ライブマイグレーション
    • メンテナンスが発生した際にインスタンスを稼働させたまま、同一ゾーン内の別サーバへ自動的に移動してくれる
  • 料金
    • 柔軟に増減させる場合はコストが優位になりやすい
  • ユーザビリティ
    • ユーザ管理にGoogleアカウントを使用するため管理が楽
    • gcloudコマンド、Google Cloud Shell、メタタグなど使いやすいツールが揃っている

GCPのゲームインフラユースケース

数あるサービスの中で特にゲームインフラに使われているサービス達

  • 実行環境
    • Google Compute Engine(GCE): 一般的に使われるIaaS。ベンダロックインもそんなに心配しなくて良い。
    • Google App Engine(GAE): HTTP(S)通信をベースとしたゲームに使う。リアルタイム性が強い通信以外で使う。
    • Google Kubernetes Engine(GKE): まだ普及していないと書かれているが、現在は主流になりつつあるか。
    • 本書には書かれてないが、小規模なゲームならFirebaseやCloud Functionも候補になるか
  • ストレージサービス
    • Cloud SQL: MySQLと互換性のあるマネージドRDBMS。マスタデータはこれで良さそう。
    • Google Cloud Storage(GCS): 静的コンテンツの配信
    • Google Cloud Strage Nearline: リソースやデータのバックアップ
    • Cloud Datastore、Bigtable: スケーラビリティの高い、NoSQLのマネージドサービス。性能で使い分ける。今だとここにSpannerも入るか
  • ネットワーク
    • ロードバランサ
      • HTTP(S) Load Balancing(HLB):L7でのロードバランシング
      • Network Load Balancing(NLB):L4でのロードバランシング
    • キャッシュサービス
      • HLB(Cloud CDN)やGCS、GAEでエッジキャッシュを利用できる
      • エッジキャッシュは細やかな制御ができないためCDNを100%置き換えるのは難しい
      • GoogleCDNベンダが協業しているため、品質の向上やコストの割引が見込める
  • データ分析
    • BigQuery: ユーザーのログ分析。Treasure Data、Amazon Redshiftが類似品
    • Cloud Pub/Sub:メッセージングサービス。fluentd、Amazon KinesisApache Kafkaが類似品
    • Stackdriver Logging: ログデータの分析やモニタリング
    • Dataflow:大規模データ処理。Hadoop、Sparkが類似品

その他のゲーム事例

最近は色々なゲームインフラ事例が公開されているので、参考になります。