株式会社WFS:スマートフォン向けゲームタイトルの開発に Cloud Spanner を採用し、無停止でスケール可能なゲームシステムを構築
Google Cloud Japan Team
利用しているサービス:
Cloud Spanner, Google Kubernetes Engine, Cloud Load Balancing, Cloud Armor, Cloud Storage, BigQuery
利用しているソリューション:
Cloud Spanner の採用でゲームサービスならではの急激なトラフィックの変化に対応
WFS では、スマートフォン向けにリリースした『転生したらスライムだった件 魔王と竜の建国譚(配信:株式会社バンダイナムコエンターテインメント)』、『聖剣伝説 ECHOES of MANA(配信:株式会社スクウェア・エニックス)』、そして『ヘブンバーンズレッド(配信:株式会社WFS)』の 3 つのゲームタイトルにおいて、バックエンド システムのプラットフォームに Google Cloud を採用しました。いずれも安定したリリースを実現し、『ヘブンバーンズレッド』では、配信開始から 3 日間で 100 万ダウンロードを達成するなど大きな成功を収めています。当時シニアマネージャーとして参画した吉田氏は、ゲームサービスのプラットフォームに求められる要件について次のように説明します。
「我々が提供しているゲームサービスの最大の特徴として、時期や時間帯によって頻繁にトラフィックが変化することが挙げられます。そのため、スケーラビリティの確保は必須の要件です。また、ユーザー体験を向上させるために、ネットワークのレイテンシを一定以下に保つことや、ダウンタイムを発生させないことなども重要です。」
上記に加えて、開発効率を上げていくための仕組みを整えることも重要なポイントだと吉田氏は続けます。
「ゲームサービスの場合、リリース後にはどうしても運用と新機能の開発を同時並行で行っていくことになる上に、更新の頻度が高いという性質があります。そのため、開発の効率を上げるには、開発環境と本番環境との差異をできるだけ小さくして、シームレスに切り替えができる仕組みを構築する必要があります。」
これらの要件をクリアできるプラットフォームの構築を目指して、WFS では新規タイトルの開発に Google Cloud の採用を決定しました。採用を検討するにあたっては、データベースのスケーラビリティが重要だったと吉田氏は言います。
「これまでのシステムではデータベースとして主に MySQL を使用していました。しかし従来型のリレーショナル データベースである MySQL では、トラフィックの急激な変化に対してスペック コントロールが難しいという課題がありました。たとえばトラフィックが増えてインスタンスのサイズを大きくしたいといった場合には、移行用のインスタンスを用意した上でマスタの切り替えを行うか、または一時的にゲームを止めてスペックを上げるか、いずれかの対処が必要です。マスタ切り替えはオペレーション コストが高いですし、ゲームを止めるというのは事業を止めることを意味するので高いリスクを伴います。また、弊社ではデータベースのスケールアウトの際にテーブルを水平分割する手法を採用してたのですが、その場合スケールインのための作業が煩雑になり、無停止のまま行うのは難しいという問題もありました。」
この課題を解決するために採用したのが Cloud Spanner です。Cloud Spanner であれば、無停止のままでスケールアウトやスケールインが可能なため、メンテナンスのためにゲームを止める必要がなく、トラフィックの変化に対して柔軟かつ迅速に対応することができます。また自動シャーディング機能によって、ノード数と負荷状況に応じてテーブル内のデータが自動的にシャーディングされるので、スケールアウトやスケールインの際にテーブルの分割について意識する必要がなく、簡単にノード数の調整を行えるという強みもあります。シニアリードエンジニアである藤田氏は、Cloud Spanner が使えることが、プラットフォームとして Google Cloud を採用する大きな動機にもなったと語ります。
「我々が最優先で必要としていたのは Cloud Spanner でした。事前に負荷検証を行い、弊社のゲーム基盤としての運用に耐えられると判断できたので、Google Cloud および Cloud Spanner の採用を決定しました。採用にあたっては他のデータベース システムとの比較も行いましたが、弊社が重視していたスケールのしやすさという点で Cloud Spanner が最も優れていると判断しました。」
リードエンジニアとしてアーキテクト含め開発をリードした伊藤氏は、Cloud Spanner を採用したことによって開発の効率が大幅に向上したと話します。
「Cloud Spanner では、Google Cloud のコンソール上で新しいデータベースを作ったりデータを編集したりといった操作が行えるので、データベースのメンテナンスが格段にやりやすくなりました。カラム変更などもオンラインでできるので、開発や運用に入ってからサービスを止める瞬間が無くなり、その点がゲーム プラットフォームとしてかなり優位に働いています。また、データベースのバージョンアップなどによる強制メンテナンスが無いというのも Cloud Spanner の大きな魅力だと感じています。」