株式会社コロプラの導入事例:Google Cloud Platform への移行によって、難度の高いモバイルゲーム サービス運用を徹底的に効率化・低コスト化
Google Cloud Japan Team
2018 年 10 月で 10 周年を迎えた、国内モバイルゲーム サービスの雄、コロプラ。現在、137 タイトルほどのゲームを提供しているという同社が、昨年夏からサービスのバックエンドを Google Cloud Platform(GCP)に移行しています。そこにはどのような狙いがあるのでしょうか。Kubernetes Engine(GKE)や、Cloud Spanner などの活用法についてもお伺いしてきました。
利用している Google Cloud Platform サービス
写真左から
- 取締役 CCO クリエイティブ本部長 菅井 健太氏
- クリエイティブ本部 第1エンジニアリング部 第4グループ 粟田 大樹氏
- 業務推進部 インフラグループ 第2チーム リーダー 邵 正氏
- 業務推進部 インフラグループ マネージャー 實方 和幸氏
- 業務推進部 インフラグループ 第2チーム 奥村 開里氏
既存ゲームタイトルすべてを GCP へ移行させ、2~3 割のコスト減に成功
ゲームに限らず、多くのウェブ サービスにおいて、クラウド プラットフォームの移行(乗り換え)には絶大な負担がかかります。24 時間絶え間なく、大量のアクセスを高速にさばかねばならないモバイルゲーム サービスではなおさらです。そのため、多くの場合、既存タイトルはそのままにしておき、新規タイトルから新しいプラットフォームを採用していくというのが "無難" なやり方とされてきました。しかし、そんな中、コロプラはあえて、既存タイトルすべての GCP 移行を決定。その理由について、同社インフラグループ マネージャーの實方(じつかた)さんは次のように説明してくださいました。
「移行した最大の理由はコストです。それまで使っていたパブリック クラウドから、サービスを GCP に移管するだけで、標準料金ベースで 2~3 割のコスト減が期待できたため、すべてのタイトルを GCP に移行させることにしました。2017 年 9 月から切り替えを開始し、2018 年 11 月時点で、すべてのタイトルの移行が完了しています。もちろん、大変な作業だとは分かっていたのですが、実はその数年前にオンプレミス環境からパブリック クラウドへの大規模移行を経験していたこと、普段からデータベースの切り替えなどをカジュアルにやっていたことなどもあり、一応の手法は確立していました。インフラ エンジニアもサーバー エンジニアも勘所を掴んでいて、社内にナレッジが蓄積していたんです。」(實方さん)
「実は数年前に、既存クラウド サービスと GCP のマルチ クラウド化を検討したことがありました。分散させることで可用性を高めようという狙いがあったのですが、オペレーションコスト、管理コストなどを考えると分散させる方がリスクが大きく、我々に合わないという結論に達しています。今回、GCP に一気に寄せてしまおうと考えたのもそれが理由の一つですね。」(菅井さん)
特筆すべきは、この移行作業を、ゲームサーバーを止めることなく行ったこと。システムの大規模改変では珍しくない長時間メンテナンスどころか、サービスの瞬断すらなかったというのだから驚かされます。
「コロプラは、ユーザーさまがいつでも好きなときにゲームを楽しめるよう、ノーメンテナンスを運用ポリシーとして掲げています。今回も、そこで培ったノウハウが役立ちました。」(菅井さん)
なお、移行に際しては、事前に GCP 上にテスト環境を構築してパフォーマンス テストを実施し、その処理能力などまったく問題ないことが判明。安心して進めることができ、また 2016 年に GCP 東京リージョンができていたことも決定を後押ししたそうです。
「移行開始から 1 年以上が経過しましたが、全体的に見て、コストは想定通りに削減できていると評価しています。また、移行開始後にスタートした新タイトルでは、Google 自慢のマネージド サービスを積極的に利用。より一層のコスト減ができました。」(實方さん)
「今後はさらにコストを削減していきたいですね。」(菅井さん)
GKE と Cloud Spanner が、モバイルゲーム サービス運用を「革命的」に改善
既存タイトルの GCP 移行は、コロプラの GCP 活用において、言わば序章にすぎません。それが無事完了した現在は、さらなる GCP 活用を企図した第 2 章がスタートしています。ここでは主に、2018 年の夏以降にスタートした新規タイトルへ GKE と Cloud Spanner を活用しているそうです。「コロプラでは少ない人数で運用を行っており、一人ひとりが複数のシステムをメンテナンスしていました。実はここに限界が見えてきていて……今回の GCP 移行では、そこも解決したいという考えがありました。具体的には Kubernetes の導入ですね。監視とか、オートスケールとか、セルフヒール(自動修復)といった機能を活用することで、運用コスト、サーバーコストを減らすことができるだろう、と。そして、Kubernetes と言えば、Google がリードしているプロダクト。GKE なら、マスターノードがマネージドで利用することができます。」(邵さん)
こうした見積りのもと、2018 年 10 月にスタートした新作『バクレツモンスター』は当初より GCP 上でサービスを提供。「GKE のおかげで、サーバーコストは 2~3 割、人的コストは半分くらいになっていると実感しています。」(奥村さん)とのことです。
「『バクレツモンスター』では、 PvP(Player versus Player:対戦プレイ)サーバー運用にも GKE を活用しています。これまでは、アクセスするユーザーさまが増えると新しいサーバーを追加し、都度 IP を手動で登録・管理していたのですが、GKE 導入後は、完全に自動増減できるようになりました。また、そのおかげで過剰な準備をしておく必要がなくなり、さらなる費用減にも繋がっています。」(邵さん)
そして、Cloud Spanner もインフラチームの負荷を下げることに大きな貢献を果たしているそうです。
「スマートフォン ゲームでは堅牢なデータベース サービスが必要不可欠です。従来は、自分たちでサーバーを立ち上げ、そこにデータベース ソフトをインストールして……ということをやっていたのですが、そのやり方だと、サーバー自体に障害が発生した時にデータベースも落ちて、ユーザーさまがゲームを遊べなくなってしまい、深夜でも緊急対応が必要になるといった問題がありました。Cloud Spanner の導入でそういった問題はほぼなくなっています。少なくとも、Cloud Spanner が落ちたことは今まで一度もありません。」(粟田さん)
Cloud Spanner は 2018 年 8 月にリリースされた女性向けゲーム『DREAM!ing』で初採用。もちろん、同年 10 月リリースの『バクレツモンスター』でも利用されています。
「基本的には、今後のすべてのサービスに Cloud Spanner を導入していきたいですね。Cloud Spanner の最も魅力的な特性は性能を簡単に上下できること。従来方式のデータベース環境は規模を大きくするのも小さくするのも大変で、都度、インフラ エンジニアが集まって対応せねばならないなどといった問題がありました。結果、規模を見誤ると、リリース時や大型イベント時のアクセスをさばききれないという事故の原因になっていました。その点、Cloud Spanner ではゲームを止めることなく、オンラインで性能を調整可能。これは、革命的なことだと考えています。」(粟田さん)
「コロプラでは不測の事態に備えて、いざという時のデータベース環境を別途用意しておき、問題が起きた際は、サービスを一時停止させることなく、そちらに切り替えていくという備えをしているのですが、Cloud Spanner 導入後はそうした準備が不用に。これによってサーバーコストはおよそ半分に。人的コストもほとんどゼロになりました。」(實方さん)
「Cloud Spanner なら、サービス開始時のピークが過ぎたら、半分とか 3 分の 1 とかのインスタンス数に変更できます。これは非常にありがたいですね。」(奥村さん)
また、こうした取り組みによって、お客さまの満足度も向上。ある作品では GCP への切り替え後、そうとは知らないユーザーから「レスポンスが速くなったのではないか」という声が上がっているそうです。
「今後は、Google App Engineや、Cloud Functions などを駆使して、さらにマネージド化を進めていきたいですね。そうすることによってエンジニアがゲーム開発に集中できるようにしていきたいと考えています。」(奥村さん)
その他の導入事例はこちらをご覧ください。