※下の記事は2021年4月13日に放送された Google Cloud INSIDE Games & Apps のセッション内容をもとに作成しています。
ゲームに関する API やその API からアクセスされるデータベースを構築する時は、スケーラビリティを考慮することが重要です。新しくゲームをローンチしたタイミングで大量のユーザーが入ってきたり、毎日のピークタイムにアクティブユーザーが一時的に増えたりアクセスの増減が予想されるからです。また、それに加えて予期しないトラフィック増に備えることも重要です。
Google Cloud がソリューション デザインパターンを公式サイトで公開していますが、その中にはゲームに関するAPI + データベース サーバーの構築パターンもあります。こういった資料を参考にアーキテクチャを考えるのも一つの手法です。
API サーバーをホスティングする際は、GAE(Google App Engine)、Cloud Run、GCE (Google Compute Engine)、GKE(Google Kubernetes Engine)といった複数の選択肢がありますが、grasys では大規模ゲームの運用には GKE を採用することが多いです。今回は、GKE と Cloud Spanner を組み合わせるアーキテクチャについて考えます。
GKE と Cloud Spanner を組み合わせるアーキテクチャの特徴は、システムの可用性です。Cloud Spanner は計画的なメンテナンスがないため、24時間365日計画メンテナンスなしで運用できます。また、システムを停止することなくノード数を増減してユーザー数の増減に対応することができるというのいうのも特徴です。Kubernetes のスケーラビリティが優れている理由として、仮想マシンを増やしていくスピードよりも Pod がスケールしていくスピードの方が速いという点も挙げられます。
Kubernetes は頻繁にアップデートされていくので、そこに追従してどのように調整していくのか事前に計画を練っておくことが重要です。また、Cloud Spanner は設計において注意すべきポイントがいくつかあるので、それらも学んでから構築することが必要です。
© grasys Inc. All Rights Reserved.