Azure Cosmos DB を使用したゲーム

Azure App Service
Azure Cosmos DB

ソリューションのアイデア

このアーティクルはソリューションのアイデアです。 このコンテンツにさらに多くの情報 (想定されるユース ケース、代替サービス、実装に関する考慮事項、価格ガイダンスなど) の掲載をご希望の方は、GitHub のフィードバックでお知らせください。

このゲーム ソリューションのアイデアは、予測できないトラフィックの急増に対応してデータベースを弾力的にスケーリングし、グローバルな規模で低遅延のマルチプレーヤー エクスペリエンスを提供します。

Architecture

Architecture diagram that shows a gaming solution idea that uses Azure Cosmos DB.

このアーキテクチャの Visio ファイルをダウンロードします。

データフロー

  1. Azure Traffic Manager によって、Azure App Service、Functions、または Containers でホストされているアプリ、および Azure API ゲートウェイ経由で発行される API にユーザーのゲーム トラフィックがルーティングされます。
  2. Azure CDN によって、Azure Blob Storage に格納されている静的イメージとゲーム コンテンツがユーザーに提供されます。
  3. Azure Cosmos DB にユーザーのゲーム状態データが格納されます。
  4. Azure Databricks によって、ゲーム状態データの関連付け、クレンジング、変換が行われます。
  5. Azure Functions によって、Azure Databricks から派生した分析情報が処理され、Azure Notification Hubs を使用してモバイル デバイスに通知がプッシュされます。

コンポーネント

このアーキテクチャには次のコンポーネントがあります。

  • Azure Traffic Manager は、さまざまな Azure リージョンでサービス エンドポイントのユーザー トラフィックの分散を制御する、DNS ベースのロード バランサーです。 通常の運用中は、プライマリ リージョンに要求をルーティングします。 そのリージョンが使用できなくなった場合、必要に応じて Traffic Manager によってセカンダリ リージョンにフェールオーバーできます。

  • Azure API Management では、ゲーム API の前に配置される API ゲートウェイが提供されます。 API Management を使って、次のような機能を実装することもできます。

    • 使用量クォータとレート制限の強制
    • 認証用の OAuth トークンの検証
    • クロス オリジン要求 (CORS) の有効化
    • 応答のキャッシュ
    • 要求の監視とログ記録
  • Azure App Service により API アプリケーションがホストされ、自動スケーリングと高可用性が可能になります。インフラストラクチャの管理は不要です。

  • Azure CDN が、待機時間を減らすために、ユーザーに近い場所から、キャッシュされた静的なコンテンツを提供します。

  • Azure Blob Storage は、静的ゲーム メディアなど、大量の非構造化データを格納するために最適化されています。

  • Azure Cosmos DB は、スケーラブルでハイ パフォーマンスのアプリケーションを構築および最新化するためのフル マネージド NoSQL データベース サービスです。

  • Azure Databricks は、Microsoft Azure クラウド サービス プラットフォーム用に最適化された Apache Spark ベースの分析プラットフォームです。

  • Azure Functions は、インフラストラクチャを管理せずに、アプリケーションをオンデマンドで実行できるようにするサーバーレス コンピューティング オプションです。

  • Azure Notification Hubs は、さまざまなモバイル デバイスとプラットフォームに通知を迅速に送信するための非常にスケーラブルなプッシュ通知エンジンです。

シナリオの詳細

考えられるユース ケース

この特定のシナリオは、ゲーム開発業界向けのゲームのシナリオに基づいています。 設計パターンは、トラフィックの多い Web 呼び出しや API 要求 (eコマースや小売アプリケーション) を処理する必要のある多くの業界に関係します。

次のステップ

Azure Cosmos DB に関する次の記事を参照してください。

製品ドキュメント:

次のソリューションのアイデアでは、Azure Cosmos DB が使用されています。