クラウドベースのテスト環境を構築する - Amazon GameLift Servers

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

クラウドベースのテスト環境を構築する

注記

このトピックでは、Amazon GameLift Servers バージョン 5.x 用のサーバー SDK と統合されたゲームの反復テストについて説明します。ゲームでサーバー SDK バージョン 4.x 以前を使用している場合は、「Amazon GameLift Servers Local を使用して統合をテストする」を参照してください。

Amazon GameLift Servers Anywhere フリートを使用して、クラウドベースのホスト環境でゲームコンポーネントを繰り返し構築およびテストします。ホスティングリソースと Amazon GameLift Servers サービスへの接続を使用して Anywhere フリートを作成し、それらの上でゲームサーバーを実行し、必要に応じてゲーム機能をテストします。

Amazon GameLift Servers エージェントを使用して Anywhere フリートをデプロイする

ゲームサーバービルドが Amazon GameLift Servers SDK 5.x 以降と統合されている場合は、Amazon GameLift Servers エージェントを使用してクラウドベースの Anywhere フリートにデプロイできます。エージェントは、フリート内の各コンピューティングのゲームサーバーのライフサイクルやその他のタスクを管理するバックグラウンドプロセスです。これらのタスクには、Anywhere フリートへのコンピューティングの登録、認証トークンの取得、一連の手順に基づくゲームサーバープロセスの起動/停止が含まれます。エージェントは、フリートのランタイム設定によって制御されます。この設定は、フリートの有効期間中いつでも更新できます。(エージェントはマネージド EC2 フリートに自動的にデプロイされます。) 詳細とエージェントのダウンロード方法については、「Amazon GameLift Servers GitHub リポジトリ」を参照してください。

Amazon EC2 で反復テストを設定する

この Amazon GameLift Servers ツールキットソリューションのガイド付きワークフローを使用して、Amazon GameLift Servers でのマネージドホスティングエクスペリエンスを反映するクラウドベースのホスティング環境を設定します。

GitHub リポジトリには、Amazon GameLift Servers Anywhere と Amazon GameLift Servers エージェントを使用してテスト環境をセットアップするためのほとんどのプロセスを自動化するスクリプト一式が用意されています。また、新しいゲームサーバービルドをテストするたびに環境を更新するためのガイダンスも提供します。サンプルゲームサーバービルドを使用してテスト環境をデプロイする単一のスクリプトを実行することも、各手順を実行して独自のゲームサーバービルドでセットアップすることもできます。

このワークフローでは、 を使用してスクリプトを実行し AWS マネジメントコンソール、コマンドラインタスクを完了 AWS CloudShell することで、 で完全に作業します。

注記

このチュートリアルのタスクでは、、、Amazon S3Amazon GameLift Servers AWS CloudShell、、Amazon EC2 AWS Systems Manager、および のサービスに対するアクセス許可を持つ AWS アカウントユーザーが必要です AWS Identity and Access Management。 Amazon S3 AWS アカウントへの管理者レベルのアクセス権を持つユーザーには、必要なアクセス許可が既に付与されています。

ワークフローでは、次のタスクについて説明します。

  • Amazon GameLift Servers のゲームサーバービルドをパッケージ化します。このワークフローには、サンプル C++ ゲームサーバーを構築するためのスクリプトが用意されています。このゲームサーバーは、サーバー SDK for Amazon GameLift Servers バージョン 5.x と既に統合されており、ホスティングの準備ができています。または、統合が完了したら、独自のゲームプロジェクトで作業することもできます。

  • ゲームサーバーのビルドと依存関係を保存する Amazon Simple Storage Service バケットを設定します。ゲームビルドの新しいバージョンを作成すると、それらを S3 に保存し、スクリプトを使用してゲームテスト用の Anywhere フリートを更新できます。

  • Amazon GameLift Servers エージェントを取得してビルドします。エージェントは、設定に基づいてホスティングリソースのゲームサーバープロセスを管理します。これは、同じロジックを使用し、Amazon GameLift Servers マネージド EC2 ホスティングと同じように動作します。

  • ホスティングリソースの Anywhere フリートを設定します。Anywhere フリートの場合、Amazon GameLift Servers サービスを使用して、Amazon GameLift Servers が管理していないリソースをホスティングできます。この手順では、ランタイム設定も設定します。ランタイム設定では、ゲームサーバープロセスを開始するタイミングと方法を Amazon GameLift Servers エージェントに指示します。

  • Amazon EC2 インスタンスをセットアップします。これは反復テスト用のテスト環境です。(本番稼働レベルの使用状況に合わせて最適化された) フルマネージド Amazon GameLift Servers インスタンスの代わりに、標準の EC2 インスタンスを使用する方がはるかに高速です。標準の EC2 インスタンスを使用すると、必要に応じてゲームサーバーをすばやく継続的に更新できます。

  • ゲームサーバービルドと Amazon GameLift Servers エージェントを Amazon EC2 インスタンスにデプロイします。ワークフローには、ゲームビルドの最新バージョンとすべての依存関係を取得し、EC2 インスタンスにインストールするスクリプトが用意されています。このワークフローでは、依存関係には Amazon GameLift Servers エージェントと CloudWatch エージェントが含まれます。

  • Amazon GameLift Servers エージェントを開始します。インストールされると、エージェントが自動的に開始され、手順を実行します。具体的には次のとおりです。

    • Amazon GameLift Servers Anywhere フリートで EC2 インスタンスをコンピューティングとして登録します。

    • WebSocket と Amazon GameLift Servers サービス間の接続を確立し、最新のランタイム設定を取得します。

    • ランタイム設定の手順に基づいて、ゲームサーバープロセスを起動します。このワークフローでは、エージェントはゲームサーバー実行可能ファイルの単一のプロセスを開始するように指示されます。

  • ゲームシナリオをテストします。テスト環境をセットアップし、最新のゲームサーバービルドをインストールしたら、テストを開始できます。このワークフローでは、ゲームセッションの開始など、テストに関するいくつかの手順について説明します。CloudWatch ゲームサーバーログにアクセスして、ゲームセッションの起動とプレイヤーの受け入れ準備ができたときの進行状況を追跡します。

    ゲームクライアントやクライアント側のバックエンドサービスなど、ゲームコンポーネントを開発する際に、これらをテストシナリオに含めることができます。ゲームクライアントを使用してゲームセッションをリクエストし、Amazon GameLift Servers サービスから接続情報を取得し、ゲームセッションに直接接続します。

  • 新しいゲームサーバーのビルドと繰り返しテストをデプロイします。ゲームの開発時に、新しいゲームサーバービルドを生成すると、テストを実行する EC2 テスト環境にすばやくデプロイできます。これらを Amazon S3 バケットにアップロードし、ワークフロースクリプトを使用してテスト環境を更新します。

ゲームを Amazon GameLift Servers マネージドフリートに移行する

開発テストを完了し、起動の準備が整ったら、Amazon GameLift Servers マネージドフリートに切り替える良いタイミングとなります。マネージドフリートを使用して、ゲームホスティングリソースをファインチューニングおよびテストします。ゲームセッションの配置ソリューション (キューとマッチメーカー) を実装し、最適なホスティングハードウェア (スポットフリートを含む) と場所を選択し、容量のスケーリング戦略を選択します。また、フリート、キュー、マッチメーカーなど、すべてのゲームホスティングリソースのライフサイクルをより効率的に管理 AWS CloudFormation するために、 の使用を開始することもできます。

これにより、クラウドベースの Anywhere テストフリートから Amazon GameLift Servers マネージドフリートへの移行に対する工数は最小限に抑えられます。ゲームコードを変更する必要はありません。同じキューとマッチメーカーを再利用できます。次のいずれかのタスクを実行します。

  • Amazon GameLift Servers ビルドリソースを作成します。Anywhere テストフリートでは、ゲームサーバーのビルドと依存関係を各フリートコンピューティングに手動でデプロイする必要があります。マネージドフリートでは、ゲームビルドパッケージを Amazon GameLift Servers にアップロードします。これにより、すべてのフリートコンピューティングに自動的にデプロイされます。ゲームビルドファイルのパッケージ化と、Amazon S3 バケット内のファイルを使用したビルドリソース作成の詳細については、「Amazon GameLift Servers のゲームサーバービルドを作成する」を参照してください。

  • マネージドフリートを作成します。コンソールまたは AWS CLI を使用し、EC2 マネージドフリートを指定してフリートを作成します。このタイプのフリートには、ビルドリソースとインスタンスタイプの指定など、追加の設定が必要です。同じランタイム設定を使用すると、各フリートコンピューティングのゲームサーバーライフサイクルを管理できます。マネージドフリートの作成の詳細については、「Amazon GameLift Servers マネージド EC2 フリートを作成する」を参照してください。

  • フリートエイリアスをリダイレクトします (オプション)。Anywhere フリートで使用するエイリアスを設定すると、マネージドフリートに同じエイリアスを再利用できます。エイリアスの作成または更新の詳細については、「Amazon GameLift Servers エイリアスの作成」を参照してください。