導入事例一覧

導入事例

ZigZaGame、Momento で完全サーバーレス化とコスト削減を実現

ZigZaGame は Momento Cache を導入し、ゲーム内チャット基盤の運用負担を軽減しながら、総所有コストを削減しました。

Momento と ZigZaGame のロゴ

業種:ゲーム

ユースケース:ゲーム内チャット基盤

ソリューションの概要

Evertale、NeoMonster、Tokyo Debunker を手がける ZigZaGame は、世界で事業を展開するゲーム企業です。ゲームの処理負荷は急増することが多く、余分なリソースの確保にかかる費用や運用負担が課題になります。この負担を減らすため、私たちはサーバーレスアーキテクチャへの移行を決めました。その実現には、予測できないピーク時にもゲーム内チャットを支えられる、スケーラブルなキャッシュが必要でした。

余裕を持ってリソースを確保していたにもかかわらず、Redis サーバーは負荷の急増に対応しきれませんでした。AWS Lambda への移行が進むと、Redis ノードが処理すべき同時ネットワーク接続が増えすぎ、状況はさらに厳しくなりました。Amazon ElastiCache Redis の VPC 要件も、サーバーレス構成を複雑にしていました。運用の複雑さと費用を減らし、全体の可用性と性能を高めるには、スケーラブルなサーバーレスのキャッシュが必要でした。

Momento Cache は、開発者にとって使いやすいサービスです。数週間で導入でき、総所有コストの削減と、サーバーレス構成全体の性能向上を実現しました。

Momento Cache による ZigZaGame のゲーム内チャット基盤の改善
ZigZaGame の導入成果:過剰に確保していた Redis クラスターが不要になり、総所有コストを 30% 超削減。3 週間で完全サーバーレス構成に移行しました。

Momento の導入前は、接続の急増に加え、Redis に起因するコールドスタート時間が課題でした。これがゲーム内チャット基盤のサーバーレス化を妨げていましたが、Momento Cache が解決してくれました。この用途で非常に良い結果が得られたため、2023 年にはほかのキャッシュ関連プロジェクトにも採用する予定です。

ZigZaGame について

ZigZaGame Inc. は、実績あるモバイルゲーム企業です。当時の最新作 Evertale は、122 か国以上のモバイルアプリストアでロールプレイングゲーム(RPG)部門の 1 位を獲得し、ダウンロード数は 1,000 万を超えています。ゲーム制作、マーケティング、データ分析の社内ノウハウを統合し、ゲームを総合的に捉えることで、世界中のユーザーに質の高いエンターテインメントを届けています。

導入前の状況

従来のメッセージング基盤は、AWS ElasticBeanstalk のジョブから固定規模の Amazon ElastiCache Redis クラスターにデータを送る構成でした。ユーザーが急増する中、キャッシュに関する次の三つの課題を解決するため、サーバーレスへの刷新が必要になりました。

  1. 固定規模の Redis クラスターには伸縮性がなく、コストが高くなっていました。深夜は利用が少ない一方、夕方などの混雑時には数十万人が同時にプレイするなど、トラフィックは大きく変動します。柔軟に伸縮できないため、ピーク負荷に合わせた Redis クラスターを 24 時間 365 日稼働させる必要がありました。一日の大半で、料金を支払っている CPU、メモリ、ネットワーク容量を使い切っていなかったのです。
  2. 新規ユーザーが一斉に参加すると、数千の AWS Lambda が起動し、数千の接続が発生します。Amazon ElastiCache Redis クラスターはその負荷に対応できず、すべての AWS Lambda 接続を処理できませんでした。これがサーバーレス化の障壁になっていました。
  3. 少人数のバックエンド開発チームは、すでに多くの重要な業務を抱えていました。Redis クラスターの管理作業が、開発に集中するうえで大きな負担となっていました。

Momento との出会い

完全サーバーレス化に向けて、Momento Cache の利用を始めました。オンデマンドの料金体系と即時に伸縮する能力により、総所有コストを大きく削減できる可能性がありました。また、Momento のスケーラビリティによって、数千の AWS Lambda の同時接続に対応できます。サーバーレスの運用モデルが、容量のスケーリング、キャッシュヒット率、テールレイテンシ、ホットキーへの対応を自動的に担います。これにより、バックエンドエンジニアの生産性が向上し、キャッシュの運用を全面的に任せられるようになりました。

導入

AWS API Gateway と AWS Lambda を基盤とするアーキテクチャに Momento を迅速かつ容易に組み込み、わずか数週間で移行を完了しました。Momento によって完全サーバーレス化を実現できました。数千の Lambda の同時実行に対応できるようになり、複雑な VPC 設定も不要になりました。

Momento Cache 導入前のアーキテクチャ

Momento 導入前のアーキテクチャ
導入前:クライアント A・B からロードバランサーを経由し、アベイラビリティーゾーン A・B の ElasticBeanstalk アプリケーションサーバーに接続します。サーバーは Redis レプリケーショングループのプライマリーノードと読み取りレプリカを利用します。

Momento Cache 導入後のアーキテクチャ

Momento Cache を使用したアーキテクチャ
導入後:クライアントは API Gateway の WebSocket API に接続します。$connect と sendmessage の各ルートを処理する Lambda 関数が Momento Cache とデータをやり取りします。

ZigZaGame では Momento .NET クライアントを使用し、dictionary、list、set とカウンターの API を活用しています。AWS Marketplace を通じて、Momento をオンデマンドで導入しています。

Momento は簡単に実装でき、チームとの連携もとても円滑でした。API は使いやすく、期待どおりに動作しました。さらに、私たちの要望に応じて ListTruncate 機能も追加してくれたため、アーキテクチャを大幅に簡素化できました。

成果と今後の展望

Momento Cache によって AWS Lambda を使ったサーバーレスアーキテクチャの利点を引き出し、チャット基盤のインメモリデータストアの総所有コストを 30% 削減できました。バックエンド開発チームがキャッシュ基盤の管理に費やす時間は、ほぼなくなりました。今後ゲームのユーザーが増えても、可用性とコスト効率の両面で対応しやすくなっています。

  • ZigZaGame が最新作 Tokyo Debunker で、WebSockets を使わずに低レイテンシのメッセージングを実現した方法をご紹介します。導入事例を読む。
  • ゲーム内メッセージングやランキングを高速化し、コストを削減したいゲーム開発者の方は、Momento をお試しください。