アクセルマーク株式会社:「カラーピーソウト(カラピ)」を GKE と Firebase で 106 か国に配信
Google Cloud Japan Gaming Team
アクセルマーク株式会社(東京都中野区本社。以下、アクセルマーク)のゲーム事業ブランドである アクセルゲームエンターテインメントが手がける同社初のパズルゲーム「カラーピーソウト」。ヒロインのリリィが探偵のカルロスとの出会いをきっかけに、ニューヨークを舞台に次々と起こる事件を解き明かす、マッチ 3 パズル × ミステリーアドベンチャーゲームです。多彩なギミックや爽快でポップなパズルと個性あふれるキャラクターが織りなすストーリー展開も人気。日本含む世界 106 の国と地域に向けて配信される「カラーピーソウト」の裏側を支える Google Cloud Platform(GCP) の活用について、SRE マネージャー 渡邊 裕太 さんにお話いただきました。
利用している Google Cloud Platform サービス:Google Kubernetes Engine、Cloud SQL、Cloud Memorystore、Cloud Load Balancing、Cloud Armor、Cloud Source Repositories、Container Registry、Cloud Build、Cloud Pub/Sub、Cloud Dataflow、Cloud Bigtable、BigQuery、Cloud Scheduler、Compute Engine、Cloud Functions、Stackdriver Logging、Cloud KMS、Cloud IAM
バックエンド API の基盤に GKE を採用
アクセルマークでは積極的にクラウドを活用しており、複数のタイトルをクラウド環境で運用しています。従来の環境では、基本的にサーバーは仮想マシンで構築し、CI/CD ツールや Ansible、マネージドサービスを使って自動化しています。デプロイは Blue/Green を採用していますが、仮想マシンのプロビジョニングを含めると完了までに時間を要してしまうことや、インフラのコード管理の限界など課題がありました。
「これら課題への取り組みもありますが、新たな技術へ挑戦したい想いもあり、コンテナ導入に踏み切りました」と話すのは、同社 SRE マネージャーの渡邊さん。
「カラーピーソウトでは golang を採用していてコンテナとの親和性が高いこともあり、コンテナ導入に再度チャレンジすることにしました。コンテナの基盤を選択するうえでの方針は、コンテナ管理のデファクト スタンダードである Kubernetes を利用することと、マネージドサービスを利用すること。これら方針のもと、ドキュメントやブログ等の情報の充実さを加味して、当時取れる選択肢は Google Kubernetes Engine(GKE)一択だったように思います。そして、それを皮切りに多くの機能を GCP のサービスを利用して構築しています。」
アプリケーション開発では Firebase を活用
開発当初から複数の Firebase プロダクトを活用していることも、GCP を選択した理由の一つとのこと。具体的には Authentication, Realtime Database, Analytics, Remote Config, Hosting です。アプリケーション開発においても、マネージドサービスの恩恵により開発コストの削減を実現できていると渡邊さんは語ります。
ユーザーログのデータストアとして BigQuery と Bigtable を活用
Cloud Pub/Sub から Dataflow を経由し、ゲーム運用に必要なユーザーのさまざな行動ログを記録しています。ログデータは大量に溜まっていくため、分析用に BigQuery とユーザー管理ツール向けに Bigtable が活用されています。
今後は規模拡大に向けて Cloud SQL および Realtime Database から Cloud Spanner への移行を予定
現在、サービス規模の拡大に向けて Cloud SQL(MySQL)および Realtime Database から Cloud Spanner へ移行が計画されています。その課題と理由を次のようにお話いただきました。
「カラーピーソウトでは、Cloud SQL と Realtime Database を主にユーザーデータの格納のために利用していますが、規模の拡大を考えたときどちらもスケーラビリティの面で課題があります。
Cloud SQL は、使い慣れた MySQL を GCP 側でマネージしてくれる非常に便利なサービスではありますが、単一インスタンスの性能限界を超えようとすると、シャーディングなどの DB 分割が必要になり、その対応コストやリスクは相応に大きなものになってしまいます。
Realtime Database は同時接続数に一定の制限があり、これも Cloud SQL と同じくサービス拡大とともにインスタンス数を増やさざるを得ないという課題があります。
そこで、負荷に応じて自動的にスケールする Spanner を採用することで、これらの問題を解決できると考えています。
Spanner は見かけ上 RDBMS に見えますが、アーキテクチャーが既存の RDBMS とは異なるため、性能を最大限に引き出すためにテーブル設計には気を遣わなければなりません。特に、オートインクリメントのような辞書的に連続する値をプライマリキーやインデックスにしてしまうと、Spanner の特定のノードやストレージに負荷が偏り(ホットスポット)、性能がスケールしづらくなってしまいます。
カラーピーソウトにおける DB アクセスのほとんどはユーザー ID をキーにして行われるのですが、このユーザー ID は UUID(v4)より生成しているため、ホットスポットの問題は起きづらいのではないか、と。また、他のユーザーのデータを横断的にアクセスするクエリは比較的少ないため、インターリーブ機能を用い、ユーザー毎にデータをまとめることで更に効率の良い設計ができるのではないかと考えています。Cloud Spanner に移行することで、RDB における書き込み性能のスケーラビリティを解決できることを期待しています。」
ゲームの主人公リリィ(写真一番左)とカラピチームメンバー:写真右上が、SRE マネージャー 渡邊 裕太 さん。リリィに続いて手前左から、サーバサイドエンジニア / SRE 長井 昭裕 さん、SRE エンジニア 阿部 暖矢 さん、サーバサイドエンジニア 佐藤 太一 さん。
1994 年 3 月設立。東証マザーズ上場企業(3624)。代表取締役社長は尾下 順治氏。戦略RPG『ワールドクロスサーガ 』(2019年7月終了)や、謎解き× 3 マッチパズルゲーム『COLOR PIECEOUT(カラーピーソウト)』など、自社オリジナル開発のスマートフォン ゲームを複数提供。また、KLab 社との協業制作のスマホゲームでは『幽☆遊☆白書 100%本気(マジ)バトル』がダウンロード数 500 万を超える人気タイトルとなっている。広告配信やグッズ販売、IoT ソリューションなどゲーム以外にも幅広く事業を展開。
その他の導入事例はこちらをご覧ください。