View a markdown version of this page

コンテナベースのゲームバックエンドアーキテクチャ - ゲーム業界レンズ

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

コンテナベースのゲームバックエンドアーキテクチャ

このセクションでは、コンテナベースのゲームバックエンドアーキテクチャの概要を説明します。

コンテナを使用したゲームバックエンドのホスティング

コンテナを使用したゲームバックエンドのホスティング

  • プレイヤーはゲームクライアントソフトウェアを使用してゲームにアクセスします。このソフトウェアは、ゲームシステム、デジタルストアフロント、または Amazon CloudFront などのコンテンツ配信ネットワーク (CDN) からの直接ダウンロードを通じて配布できます。CDNs はエッジロケーションでキャッシュを提供し、コンテンツをダウンロードするユーザーのパフォーマンスを向上させます。例えば、CloudFront を使用してゲームクライアントソフトウェアをプレイヤーだけでなく、ゲームアセットやその他のコンテンツに配信できます。

  • AWS Global Accelerator は、マルチリージョンおよびフェイルオーバーの目的で、プレイヤーゲームクライアントからロードバランサーにトラフィックをルーティングしたり、リージョン間でトラフィックをルーティングしたりするためのトラフィックアクセラレーションとカスタマイズ可能なコントロールを提供します。ゲームバックエンド REST APIs のカスタムドメイン名は、Global Accelerator エンドポイントにトラフィックをルーティングするように Amazon Route 53 で設定されます。図に示されていないように、AWS Shield Advanced はアクセラレーターとゲームバックエンドに追加の DDoS 緩和を提供できます。

  • NAT Gateway と Application Load Balancer は、リージョンで高可用性を提供するために、ゲームバックエンドで使用される各アベイラビリティーゾーンのパブリックサブネットにデプロイされます。AWS WAF はApplication Load Balancer にデプロイされ、レイヤー 7 ウェブトラフィックフィルタリングを提供します。

  • ゲームバックエンドは、回復性のためにアベイラビリティーゾーンにまたがるプライベートサブネットの Amazon EKS クラスターにデプロイされた個々のコンテナベースのマイクロサービスのコレクションとしてホストされます。自動スケーリングは、通常プレイヤーの需要と相関するリソース使用率に基づいて、サービスとクラスターノードの容量を動的に調整します。Cluster Autoscaler はクラスター内のノード数を自動的に調整しますが、Horizontal Pod Autoscaler はクラスターにデプロイされたポッドを自動的にスケーリングします。

  • ゲームとプレイヤーのデータはバックエンドデータベースに保存され、キャッシュはアベイラビリティーゾーン間でプライベートサブネットにデプロイされ、プライマリノードとレプリカノード間でレプリケーションされます。Amazon Aurora は、プレイヤープロファイル、使用権限、ゲーム内購入などのユースケースによく使用される選択肢であり、クエリ要件がより複雑になり、MySQL と PostgreSQL のリレーショナルデータモデリング機能の利点が得られる可能性があります。Amazon ElastiCache は、高パフォーマンスのリーダーボード、pub/sub メッセージングの構築、データベースのレイテンシーと負荷を減らすために頻繁にアクセスされるデータのキャッシュに役立ちます。Amazon DynamoDB はフルマネージド型の NoSQL データストアであり、プレイヤーとゲームの状態データ、セッションデータ、インベントリとアイテムストアなどのユースケース、または最小限のオーバーヘッドでグローバルデータベースを必要とするユースケースで、予測不可能なアクセスパターンと実質無制限のスループットにスケールする機能に最適です。

  • リーダーボードの更新や友人リクエストの送信など、バックグラウンドで実行できる作業を実行するには、非同期処理ワークフローを使用する必要があります。このタイプの作業を Amazon SQS キューにプッシュするようにゲームバックエンドを設定するか、Amazon SNS トピックを使用して並列処理のために多くのコンシューマーアプリケーションキューに作業を分散することを検討してください。Lambda AWS関数 を使用してイベント駆動型の方法で処理を実行し、コンピューティングインフラストラクチャのコストと管理オーバーヘッドを削減します。存続期間が長いワークフローや、複数のステップによるタスクの調整が必要なワークフローの場合は、 を使用してワークフロー全体をオーケストレーションすることを検討してくださいAWS Step Functions。Amazon EventBridge を使用して、 AWS サービスおよびカスタムアプリケーションイベントに応答する関数を開始できます。