クラウドベースのテスト環境を構築する
注記
このトピックでは、Amazon GameLift サーバー SDK バージョン 5.x と統合されたゲームの反復テストについて説明します。ゲームでサーバー SDK バージョン 4.x 以前を使用している場合は、「Amazon GameLift Local を使用して統合をテストする」を参照してください。
Amazon GameLift Anywhere フリートを使用して、クラウドベースのホスト環境でゲームコンポーネントを繰り返し構築およびテストします。ホスティングリソースと Amazon GameLift サービスへの接続を使用して Anywhere フリートを作成し、それらの上でゲームサーバーを実行し、必要に応じてゲーム機能をテストします。
Amazon GameLift エージェントを使用して Anywhere フリートをデプロイする
ゲームサーバービルドが Amazon GameLift SDK 5.x 以降と統合されている場合は、Amazon GameLift エージェントを使用してクラウドベース Anywhere フリートにデプロイできます。エージェントは、フリート内の各コンピューティングのゲームサーバーのライフサイクルやその他のタスクを管理するバックグラウンドプロセスです。これらのタスクには、Anywhere フリートへのコンピューティングの登録、認証トークンの取得、一連の手順に基づくゲームサーバープロセスの起動/停止が含まれます。エージェントは、フリートのランタイム設定によって制御されます。この設定は、フリートの有効期間中いつでも更新できます (エージェントはマネージド EC2 フリートに自動的にデプロイされます)。詳細とエージェントのダウンロード方法については、「Amazon GameLift GitHub リポジトリ
Amazon EC2 で反復テストを設定する
この Amazon GameLift ツールキットソリューション
GitHub リポジトリには、Amazon GameLift Anywhere と Amazon GameLift エージェントを使用してテスト環境をセットアップするためのほとんどのプロセスを自動化するスクリプト一式が用意されています。また、新しいゲームサーバービルドをテストするたびに環境を更新するためのガイダンスも提供します。サンプルゲームサーバービルドを使用してテスト環境をデプロイする単一のスクリプトを実行することも、各手順を実行して独自のゲームサーバービルドでセットアップすることもできます。
このワークフローでは、AWS CloudShell を使用してスクリプトを実行し、コマンドラインタスクを完了して、AWS Management Console で完全に作業します。
注記
このチュートリアルのタスクには、Amazon GameLift、AWS CloudShell、Amazon S3、AWS Systems Manager、Amazon EC2、および AWS Identity and Access Management のサービスへのアクセス許可が付与されている AWS アカウントユーザーが必要です。AWS アカウントへの管理者レベルのアクセス権を持つユーザーには、必要なアクセス許可が既に付与されています。
ワークフローでは、次のタスクについて説明します。
-
Amazon GameLift のゲームサーバービルドをパッケージ化します。 このワークフローには、サンプル C++ ゲームサーバーを構築するためのスクリプトが用意されています。このゲームサーバーは、Amazon GameLift サーバー SDK 5.x と既に統合されており、ホストする準備ができています。または、統合が完了したら、独自のゲームプロジェクトで作業することもできます。
-
ゲームサーバーのビルドと依存関係を保存する Amazon Simple Storage Service バケットを設定します。ゲームビルドの新しいバージョンを作成すると、それらを S3 に保存し、スクリプトを使用してゲームテスト用のAnywhere フリートを更新できます。
Amazon GameLift エージェントを取得して構築します。エージェントは、設定に基づいてホスティングリソースのゲームサーバープロセスを管理します。これは、同じロジックを使用し、Amazon GameLift マネージド EC2 ホスティングと同じように動作します。
ホスティングリソースの Anywhere フリートを設定します。Anywhere フリートの場合、Amazon GameLift サービスを使用して、Amazon GameLift が管理していないリソースをホストできます。この手順では、ランタイム設定も設定します。ランタイム設定では、ゲームサーバープロセスを開始するタイミングと方法を Amazon GameLift エージェントに指示します。
Amazon EC2 インスタンスをセットアップします。これは反復テスト用のテスト環境です。(本番稼働レベルの使用状況に合わせて最適化された) フルマネージド Amazon GameLift インスタンスの代わりに、標準の EC2 インスタンスを使用する方がはるかに高速です。標準の EC2 インスタンスを使用すると、必要に応じてゲームサーバーをすばやく継続的に更新できます。
-
ゲームサーバービルドと Amazon GameLift エージェントを Amazon EC2 インスタンスにデプロイします。ワークフローには、ゲームビルドの最新バージョンとすべての依存関係を取得し、EC2 インスタンスにインストールするスクリプトが用意されています。このワークフローでは、依存関係には Amazon GameLift エージェントと CloudWatch エージェントが含まれます。
-
Amazon GameLift エージェントを起動します。インストールされると、エージェントが自動的に開始され、手順を実行します。具体的には次のとおりです。
-
Amazon GameLift Anywhere フリートで EC2 インスタンスをコンピューティングとして登録します。
-
WebSocket と Amazon GameLift サービス間の接続を確立し、最新のランタイム設定を取得します。
-
ランタイム設定の手順に基づいて、ゲームサーバープロセスを起動します。このワークフローでは、エージェントはゲームサーバー実行可能ファイルの単一のプロセスを開始するように指示されます。
-
-
ゲームシナリオをテストします。テスト環境をセットアップし、最新のゲームサーバービルドをインストールしたら、テストを開始できます。このワークフローでは、ゲームセッションの開始など、テストに関するいくつかの手順について説明します。CloudWatch ゲームサーバーログにアクセスして、ゲームセッションの起動とプレイヤーの受け入れ準備ができたときの進行状況を追跡します。
ゲームクライアントやクライアント側のバックエンドサービスなど、ゲームコンポーネントを開発する際に、これらをテストシナリオに含めることができます。ゲームクライアントを使用してゲームセッションをリクエストし、Amazon GameLift サービスから接続情報を取得し、ゲームセッションに直接接続します。
新しいゲームサーバーのビルドと繰り返しテストをデプロイします。ゲームの開発時に、新しいゲームサーバービルドを生成すると、テストを実行する EC2 テスト環境にすばやくデプロイできます。これらを Amazon S3 バケットにアップロードし、ワークフロースクリプトを使用してテスト環境を更新します。
ゲームを Amazon GameLift マネージドフリートに移行する
開発テストを完了し、起動の準備が整ったら、Amazon GameLift マネージドフリートに切り替える良いタイミングとなります。マネージドフリートを使用して、ゲームホスティングリソースをファインチューニングおよびテストします。ゲームセッションの配置ソリューション (キューとマッチメーカー) を実装し、最適なホスティングハードウェア (スポットフリートを含む) と場所を選択し、キャパシティのスケーリング戦略を選択します。また、フリート、キュー、マッチメーカーなど、すべてのゲームホスティングリソースのライフサイクルをより効率的に管理するために、AWS CloudFormation の使用を開始することもできます。
これにより、クラウドベースの Anywhere テストフリートから Amazon GameLift マネージドフリートへの移行に対する工数は最小限に抑えられます。ゲームコードを変更する必要はありません。同じキューとマッチメーカーを再利用できます。次のいずれかのタスクを実行します。
-
Amazon GameLift ビルドリソースを作成します。Anywhere テストフリートでは、ゲームサーバーのビルドと依存関係を各フリートコンピューティングに手動でデプロイする必要があります。マネージドフリートでは、ゲームビルドパッケージを Amazon GameLift にアップロードします。これにより、すべてのフリートコンピューティングに自動的にデプロイされます。ゲームビルドファイルのパッケージ化と、Amazon S3 バケット内のファイルを使用したビルドリソース作成の詳細については、「Amazon GameLift ホスティング用のカスタムサーバービルドをデプロイする」を参照してください。
マネージドフリートを作成します。コンソールまたは AWS CLI を使用し、EC2 マネージドフリートを指定してフリートを作成します。このタイプのフリートには、ビルドリソースとインスタンスタイプの指定など、追加の設定が必要です。同じランタイム設定を使用すると、各フリートコンピューティングのゲームサーバーライフサイクルを管理できます。マネージドフリートの作成の詳細については、「Amazon GameLift マネージド EC2 フリートを作成する」を参照してください。
フリートエイリアスをリダイレクトします (オプション)。Anywhere フリートで使用するエイリアスを設定すると、マネージドフリートに同じエイリアスを再利用できます。エイリアスの作成または更新の詳細については、「Amazon GameLift エイリアスを作成する」を参照してください。