ソリューションのアイデア
この記事ではソリューションのアイデアについて説明します。 クラウド アーキテクトはこのガイダンスを使用すると、このアーキテクチャの一般的な実装の主要コンポーネントを視覚化しやすくなります。 ワークロードの特定の要件に適合する、適切に設計されたソリューションを設計するための出発点として、この記事を使用してください。
このゲーム ソリューションのアイデアは、予測できないトラフィックの急増に対応してデータベースを弾力的にスケーリングし、グローバルな規模で低遅延のマルチプレーヤー エクスペリエンスを提供します。
アーキテクチャ
このアーキテクチャの Visio ファイルをダウンロードします。
データフロー
- Azure Traffic Manager によって、Azure App Service、Functions、または Containers でホストされているアプリ、および Azure API ゲートウェイ経由で発行される API にユーザーのゲーム トラフィックがルーティングされます。
- Azure CDN によって、Azure Blob Storage に格納されている静的イメージとゲーム コンテンツがユーザーに提供されます。
- Azure Cosmos DB にユーザーのゲーム状態データが格納されます。
- Azure Databricks によって、ゲーム状態データの関連付け、クレンジング、変換が行われます。
- 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 の一般的なユース ケース
- Azure Cosmos DB の変更フィード
- Azure Cosmos DB の Time to Live (TTL)
- Azure Cosmos DB の整合性レベル
- Azure Cosmos DB の要求ユニット
- Azure Cosmos DB でのパーティション分割と水平スケーリング
製品ドキュメント:
- Azure Traffic Manager とは
- Azure API Management
- Azure App Service の概要
- Azure CDN とは
- Azure Blob Storage とは
- Azure Databricks とは
- Azure Functions の概要
- Azure Notification Hubs とは
関連リソース
次のソリューションのアイデアでは、Azure Cosmos DB が使用されています。