株式会社エイチーム:GKE と Cloud Spanner の採用で、グローバル展開のゲーム開発、運用のニーズに対応
Google Cloud Japan Team
エンターテインメント事業やライフスタイルサポート事業、EC 事業を展開する総合 IT 企業である株式会社エイチーム(以下、エイチーム)。エンターテインメント事業では、「IP ・ グローバル ・ マルチデバイス」の展開を視野に、世界中の人々に娯楽を提供。2020 年 6 月に配信が開始された『初音ミク -TAP WONDER-(ミクたぷ)』では、開発、運用のプラットフォームとして Google Cloud を採用。このプロジェクトについて、エンターテインメント事業本部のご担当者 3 名に話を伺いました。
利用している Google Cloud サービス:Google Kubernetes Engine(GKE)、Cloud Build、Container Registry、Cloud Spanner、BigQuery、Cloud Load Balancing、Cloud Storage、Dataflow、Cloud Logging など
Google Cloud 採用の背景は Cloud Spanner と GKE の存在
『初音ミク -TAP WONDER-(ミクたぷ)』は、画面をタップして初音ミクのライブを盛り上げるタップ & LIVE ゲームです。仲間やコスチュームを増やしながら、世界中をめぐる初音ミクのライブを応援します。オリジナル衣装や、ここでしか見れない描き下ろしイラストも続々登場しています。
エンターテインメント事業本部のリードプログラマーは、「最大の特長は、グローバル ワンビルドで開発されていることです。世界中のユーザーが、11 か国語から言語を選択し、同じゲームをプレイすることができます。イベントやコンテンツの更新なども、全世界同時に実施されています」と語ります。
『ミクたぷ』の開発、および運用プラットフォームには、Google Cloud が採用されていますが、その背景についても次のように語ります。「過去にほかのゲーム開発でも Google Cloud を利用していましたが、あらためてのきっかけは、グローバル ネットワークと低レイテンシーです。グローバル展開するゲームタイトルにおいて、この 2 つは大きなメリットでした。」
その手軽さの面から、ここ 4〜5 年は多くのプロジェクトの開発環境で Google Cloud を利用し続けていたという エイチーム、「いずれは、本番環境にも Google Cloud を採用することになるだろうと考えていました。」(リードプログラマー)
また、開発、運用の面からは Cloud Spanner の存在も大きかったと、インフラ担当のエンジニアは話します。 「以前より、データベースを水平分割(シャーディング)して運用してきましたが、運用保守面で手間がかかることが課題になっていました。Cloud Spanner はフルマネージドで提供されていて、さらに運用担当者がシャーディングを意識することなく利用できるデータベースとして、以前から興味を持っていました。更新系の操作を SQL で実行できるようになったことも背中を押しました。」
さらに、開発担当のエンジニアは、 GKE について次のように加えます。「開発環境でコンテナを利用するケースが増えていましたが、Kubernetes をオンプレミスで利用するのは運用面で効率的ではないと考え、マネージド サービスである GKE であれば運用できるのではないかと考えました。」
GKE と Cloud Spanner で運用負荷とコストを大幅に低減
『ミクたぷ』の開発は、2019 年 6 月初旬より検討を開始、中旬には Google Cloud の採用を決定。2020 年 1 月中旬よりシステムの構築を開始して、6 月末に本番稼働しています。ゲームサーバーは、GKE をベースに構築。Cloud Build や Container Registry など、GKE にデプロイするための仕組みも利用しています。
Kubernetes の利用においては、外部からのリクエストを受け付けるために Cloud Load Balancing を利用しています。「Cloud Load Balancing は、Ingress の定義を行うだけで簡単にデプロイできるのでとても魅力的です。」(インフラエンジニア)
GKE のログは、Cloud Logging で受け取り、Cloud Storage にエクスポートしています。BigQuery へのエクスポート機能も備わっており、用途に応じてエクスポート先を切り替えて活用しているほか、Cloud Spanner からのデータのエクスポートには Dataflow も利用しています。
GKE を利用するメリットについては、「Kubernetes を利用する場合、マスターノードやワーカーノードの管理など、運用の負荷やコストが増大しがちです。GKE を利用することで、管理の手間が省力化され、運用コストも低減できたことは非常に大きなメリットでした。」
「gcloud コマンドライン ツールと GKE を組み合わせることで、インフラ構築時のサーバー構成などをコードベースで残すことができるので、再構築の時間を短縮することができます。結果的に、開発環境も、追加、削除などを簡単に行えるようになりました。これまでもツールを使って、追加、削除を行っていましたが、一部に手作業が残っていました。」(開発エンジニア)
クラスタのオートスケールも GKE を利用するメリットの 1 つ。「『ミクたぷ』は、スタート時にどのくらいの規模で利用者を迎えるべきか難しいタイトルでした。様々な調査結果を元に判断することになり柔軟なサーバーの増減が求められましたが、それでも短時間で対応できたのは非常に助かりました。」(リードプログラマー)
さらに、Cloud Spanner を利用したことで、データベースの運用負荷とコストが低減しています。以前は、物理サーバーでデータベースを運用していたので、データベース サーバーの増減時には、データの移行やプログラムの設定の切り替えなどの作業が必要でしたが、Cloud Spanner は、Google Cloud のコンソールから設定するだけでノード数を簡単に変更することができます。
「ゲームのリリース後にどれだけの負荷がかかるかの予測は難しく、以前の物理サーバーによる運用では、事前にどれだけサーバーを準備しておくか悩ましい問題でした。Cloud Spanner を利用することで、必要なリソースを最小限の期間だけ利用できるので、かなりのコストメリットを実現できました。」(インフラエンジニア)
『ミクたぷ』への Google Cloud 導入を振り返り、インフラ担当エンジニアは次のように話します。「GKE や Cloud Spanner など、利用実績のないサービスを導入する場合、ノウハウがないため調査や検証に多くの時間がかかります。Google Cloud の担当者からは、具体的なノウハウや他社の事例などを共有してもらえたのでスムーズに調査、検証ができました。また、自分たちが考えた構成が本当に正しいのかをレビューもしてもらい、改善策の提案などももらえたことはとても助かりました。」
最後に、今後の取り組みについても伺いました。「『ミクたぷ』は、現在はリアルタイム性の強いマルチプレイ機能がありませんが、ほかの多くのタイトルでマルチプレイは必須の機能となっています。今後マルチプレイのゲームサーバーに Kubernetes を使用する際には Agones も検討したいと思っています。また、 Agones のフルマネージド サービスでもある Google Cloud Game Servers も非常に興味があるサービスなので、併せて検討を進めていきたいと思います。」
「近年では、機械学習を組み込んだゲームも増えており、機械学習に関しても Google Cloud の活用を検討しています。定期的なアップデートの共有から、ベストプラクティスの提供、開発中のシステムへのリアルタイムの相談やアドバイスなど、これまでと変わらない Google Cloud のサポートを今後も期待しています。」(リードプログラマー)
2000 年 2 月設立。人生のイベントや日常生活に密着した様々なウェブサービスを提供する「ライフスタイルサポート事業」、スマートデバイス向けゲーム・ツールアプリを提供する「エンターテインメント事業」、自転車専門通販サイトを運営する「EC事業」の 3 つの軸で事業を展開する総合IT企業。
その他の導入事例はこちらをご覧ください。