AWS での GameLift のテストに関するガイダンス
概要
仕組み
この技術的詳細には、このソリューションを効果的に使用する方法を示すアーキテクチャ図が掲載されています。アーキテクチャ図は、主要なコンポーネントとその相互作用を示し、アーキテクチャの構造と機能の概要を段階的に示しています。
Well-Architected の柱
上記のアーキテクチャ図は、Well-Architected のベストプラクティスを念頭に置いて作成されたソリューションの例です。完全に Well-Architected であるためには、可能な限り多くの Well-Architected ベストプラクティスに従う必要があります。
ツールキットとサンプルゲームのどちらも Infrastructure as Code で完全にデプロイされているため、手動での作業によるエラー、および変更をデプロイする労力が削減します。
API Gateway 上のサーバーレスウェブコンソール API は、Cognito ユーザープールに対する AWS Identity and Access Management (IAM) ベースの認証で保護されます。
API Gateway 上のサーバーレスサンプルゲームバックエンドは、IAM ベースの認証で保護され、プレイヤーのゲスト ID を安全に検証します。
GameLift 上のゲームサーバーでは、クライアント/サーバー通信に使用するポートへのアクセスのみが許可されます。バックエンド Lambda 関数は必要なサービスにのみアクセスします。
データは DynamoDB テーブルに保存され、オンデマンドの容量割り当てを利用して、需要の変化に応じて自動的にスケールします。
ソリューションバックエンドサービスは、インスタンスを自動的にスケールする Lambda を使用します。
サンプルゲームバックエンドは、需要の変化を処理する GameLift Target ベースの自動スケーリングをサポートしています。
API Gateway、Lambda、DynamoDB、Fargate などのマネージドサーバーレステクノロジーを活用することで、請求は使用したリソースに対してのみ発生するため、ソリューションを管理するために必要な運用上の労力を削減することができます。
このソリューションは任意のリージョンにデプロイ可能で、CloudFront を利用してウェブコンソールのエンドユーザーのレイテンシーを短縮します。
仮想プレイヤータスクを Fargate Spot で起動することで、テストのコストを削減できます。
ウェブコンソールとサンプルゲームバックエンドはサーバーレステクノロジーを利用しているため、請求が発生するのは使用したリソースに対してのみです。
ウェブコンソールバックエンドは Lambda と API Gateway のネイティブスケーリング機能を利用します。DynamoDB テーブルは、オンデマンドの容量割り当てを使用してリソースが需要に一致するようにします。
サンプルゲームバックエンドは、必要なリソースを最小限に抑える GameLift Target ベースの自動スケーリングをサポートします。
このガイダンスはマネージドサービスを幅広く使用しているため、高い平均使用率を維持する責任は AWS にあります。
サンプルゲームバックエンドは、必要なリソースを最小限に抑える GameLift Target ベースの自動スケーリングをサポートします。ゲームセッションを最小数のサーバーインスタンスに配置することで、リソース使用率は一貫して高く保たれます。
マネージドサービスを広く活用することで、ガイダンスは環境への個々の影響を削減します。
ゲームサーバーをスポットフリートで起動し、仮想プレイヤータスクを Fargate Spot で起動することによって、未使用のリソースによる持続可能性の影響をさらに削減できます。
自信をもってデプロイ
デプロイの準備はできていますか? GitHub のサンプルコードで詳細なデプロイ手順を確認し、そのままデプロイするか、またはニーズに合わせてカスタマイズしましょう。