

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

# Amazon GameLift Servers Anywhereでローカルテストを設定する
<a name="integration-testing"></a>

**注記**  
このトピックでは、サーバー SDK for Amazon GameLift Servers バージョン 5.x 用サーバー SDK と統合されたゲームのローカルテストについて説明します。ゲームでサーバー SDK バージョン 4.x 以前を使用している場合は、「[Amazon GameLift Servers Local を使用して統合をテストする](integration-testing-local.md)」を参照してください。

Amazon GameLift Servers Anywhere フリートと独自のハードウェアを使用して、シミュレートされたホスト環境でゲームコンポーネントを繰り返し構築およびテストします。フリートを設定し、ローカルデバイスを登録して、Amazon GameLift Servers サービスへの接続を確立します。ゲームサーバービルドをデバイスにインストールし、ゲームサーバープロセスを開始し、必要に応じてゲーム機能をテストします。ゲームサーバービルドは、新しいビルドのイテレーションをテストするために、必要な回数だけ更新できます。

Anywhere フリートでは、CLI AWS またはテストスクリプトを使用してテストできます。ゲームクライアントを Amazon GameLift Servers と統合した場合は、同じローカルデバイスまたは別のデバイスでクライアントを実行できます。

フリートによるローカルテストは、Amazon GameLift Servers とのゲームサーバー統合をテストするために特に役立ちます。ローカルマシンのすべてのホスティングアクティビティと、イベントとログデータを完全に可視化できます。

**注記**  
Unreal Engine または Unity にAmazon GameLift Servers プラグインを使用していますか? これらのツールには、Anywhere フリートでローカルテストを設定するためのガイド付きワークフローが含まれています。[Unity 用プラグイン: Amazon GameLift Servers Anywhere を使用してローカルテストを設定する](unity-plug-in-anywhere.md) または [Unreal 用プラグイン: Amazon GameLift Servers Anywhere でゲームをローカルでホストする](unreal-plugin-anywhere.md) のドキュメントに従います。

**Topics**
+ [ローカルの Anywhere フリートを設定する](#integration-testing-anywhere-fleet)
+ [ゲームサーバーを更新してインストールする](#integration-testing-dev)
+ [ゲームセッションアクティビティをテストする](#integration-testing-test)
+ [ゲームサーバーでのイテレーション](#fleet-anywhere-iteration)
+ [ゲームを Amazon GameLift Servers マネージドフリートに移行する](#fleet-anywhere-transition)

## ローカルの Anywhere フリートを設定する
<a name="integration-testing-anywhere-fleet"></a>

ローカルワークステーションの Anywhere フリートを作成するには、次の手順を実行します。 AWS CLI または AWS マネジメントコンソール の を使用する詳細な手順についてはAmazon GameLift Servers、「」を参照してください[Amazon GameLift Servers Anywhere フリートを作成する](fleets-creating-anywhere.md)。

**Anywhere フリートを作成するには**

1. **ワークステーション用のカスタムロケーションを作成します。(AWS CLI またはコンソール）。**カスタムロケーションは、Anywhere フリートに含める予定のコンピューティングリソースのラベルにすぎません。カスタムロケーション名は `custom-` で始まる必要があります。例: `custom-my_laptop`。「[カスタムロケーションを作成する](fleets-creating-anywhere.md#fleet-anywhere-location)」を参照してください。

1. **Anywhere フリート (AWS CLI またはコンソール) を作成します。**この手順では、ローカルワークステーションのカスタムロケーションを使用してフリートリソースを作成します。「[Anywhere フリートを作成する](fleets-creating-anywhere.md#fleet-anywhere-create)」を参照してください。

   新しいフリートの ID または ARN 値をメモします。この値は次のステップで必要になります。

1. **ローカルワークステーションをフリートコンピューティングとして登録します (AWS CLI のみ）。**ゲームサーバーをホストするには、Anywhere フリートに少なくとも 1 つのコンピューティングリソースが必要です。「[フリートにコンピューティングを追加する](fleets-creating-anywhere.md#fleet-anywhere-compute)」を参照してください。フリートにコンピューティングを追加するには、次の情報が必要です。
   + コンピューティング名。フリート内の各コンピューティングには、一意の名前が必要です。
   + Anywhere フリート識別子。`FleetID` または `FleetArn` のいずれかを使用できます。
   + コンピューティングの接続情報。`IpAddress` または `DnsName` のいずれかを指定します。これは、Amazon GameLift Servers とゲームクライアントがゲームサーバーに接続する方法です。
   + Anywhere フリート内のカスタムロケーション。

   `GameLiftServiceSdkEndpoint` の戻り値をメモします。Anywhere フリートで実行するようにゲームサーバーを更新するときは、この値が必要です。

## ゲームサーバーを更新してインストールする
<a name="integration-testing-dev"></a>

このタスクは、ゲームサーバービルドを Amazon GameLift Servers サーバー SDK 5.x と既に統合していることを前提としています。統合プロセスでは、Amazon GameLift Servers サービスとやり取りしてゲームセッションを開始および管理できるように、ゲームサーバーにコードを追加します。

Anywhere フリートの場合、特定のゲームサーバー設定を手動で設定する必要があります。Amazon GameLift Servers マネージドフリートでは、これらの設定は自動的に設定されます。

**Anywhere フリート用にゲームサーバーを準備する**

1. **認証トークンを取得します。**ゲームサーバーには、 Amazon GameLift Serversサービスとのすべての通信に認証トークンを含める必要があります。Amazon GameLift Servers認証トークンは有効期間が短く、定期的に更新する必要があります。

   ベストプラクティスとして、スクリプトを作成して次のタスクを完了します。
   + CLI AWS アクション を呼び出します`get-compute-auth-token`。
   + ローカルコンピューティングの環境変数など、ゲームサーバープロセスが取得できるトークンの戻り値を保存します。

   ゲームサーバーと一緒にスクリプトをコンピューティングにインストールします。最初のゲームサーバープロセスを開始する前に、実行するスクリプトを設定します。ゲームサーバープロセスがアクティブな間は、スクリプトを定期的に実行して有効な認証トークンを維持します。コンピューティング上のすべてのゲームサーバープロセスは、同じ認証トークンを使用できます。

1. **Amazon GameLift Servers ゲームサーバーコードを更新します。**ゲームサーバーコードをサーバー SDK for Amazon GameLift Servers と統合すると、アクション `InitSdk()` への呼び出しが追加されます。ゲームサーバーを Anywhere フリートで実行する場合、この呼び出しには、追加のサーバーパラメータが必要です。詳細については、開発言語に該当する「[サーバープロセスを初期化する](gamelift-sdk-server-api.md#gamelift-sdk-server-initialize)」および「[サーバー SDK 5.x for Amazon GameLift Servers](reference-serversdk.md)」を参照してください。サーバーパラメータは次のとおりです。
   + `webSocketUrl` – このパラメータを、フリートにコンピューティングを登録したときに返される `GameLiftServiceSdkEndpoint` 値に設定します。
   + `hostId` – Anywhere フリートにコンピューティングを登録するときに指定するコンピューティング名にこのパラメータを設定します。
   + `fleetId` – このパラメータを Anywhere フリートの ID に設定します。
   + `authToken` – このパラメータを、コンピューティングの認証トークンを取得するリクエストに応答して返されるトークンに設定します。
   + `processId` – このパラメータを設定して、ローカルコンピューティングで実行されているゲームサーバープロセスを特定します。同時ゲームサーバープロセスごとに一意のプロセス ID が必要です。

   各ゲームサーバープロセスが使用するサーバーパラメータ値は、プロセスが実行されている Anywhere フリートコンピューティングに固有である必要があります。コンピューティングに適切な値を取得する方法の詳細については、「[フリートにコンピューティングを追加する](fleets-creating-anywhere.md#fleet-anywhere-compute)」を参照してください。ベストプラクティスとして、`webSocketUrl`、`hostId`、`fleetId`、および `authToken` をローカルコンピューティングの環境変数として設定します。コンピューティングで実行されるすべてのサーバープロセスは、これらの値を使用します。

1. ローカルコンピューティングにゲームサーバービルドをインストールします。ゲームサーバーの実行に必要なすべての依存関係を含めます。

1. ローカルコンピューティングで実行されている 1 つ以上のゲームサーバープロセスを開始します。ゲームサーバープロセスがサーバー SDK アクション `ProcessReady()` を呼び出すと、プロセスはゲームセッションをホストする準備が整います。

## ゲームセッションアクティビティをテストする
<a name="integration-testing-test"></a>

ゲームセッションを使用して、ゲームサーバーの統合をテストします。Amazon GameLift Servers機能と統合されたゲームクライアントがない場合は、 AWS CLI を使用するとゲームセッションを開始できます。次のシナリオを試行します。
+ **ゲームセッションの作成。**[create-game-session ](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/gamelift/create-game-session.html) コマンド (または [CreateGameSession](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_CreateGameSession.html) API オペレーション) を呼び出します。 Anywhereフリートの ID とカスタムロケーションを指定します。この呼び出しは、新しいゲームセッションの一意の識別子を返します。
+ **ゲームセッションステータスを確認します。 **[describe-game-sessions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/gamelift/describe-game-sessions.html) コマンド (または [DescribeGameSessions](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_DescribeGameSessions.html) API アクション) を呼び出します。ゲームセッション ID を指定します。この呼び出しは、ゲームセッションステータスを含む詳細なゲームセッション情報を返します。アクティブ状態のゲームセッションは、プレイヤーによる接続ができることを示します。フリートのすべてのゲームセッションのリストを取得するには、[list-game-sessions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/gamelift/list-game-sessions.html) コマンド (または [ListGameSessions](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_ListGameSessions.html) API アクション) を呼び出します。
+ **ゲームセッションに接続します。**ゲームクライアントにゲームセッションに参加する機能がある場合は、ゲームセッション情報に含まれる接続情報を使用します。

## ゲームサーバーでのイテレーション
<a name="fleet-anywhere-iteration"></a>

同じ Anywhere フリートとコンピューティングを使用すると、ゲームサーバーぶり度の別のバージョンをテストできます。

1. **既存の `GameSession` をクリーンアップします。**ゲームサーバープロセスがクラッシュした場合または、`ProcessEnding()` を呼び出さない場合は、ゲームサーバーがヘルスチェックの送信を停止した後に、Amazon GameLift Servers が `GameSession` をクリーンアップします。

1. **新しいゲームサーバービルドを生成します。**ゲームサーバーを変更し、改訂されたビルドをパッケージ化します。

1. **ローカルコンピューティングでゲームサーバービルドを更新します。**以前の Anywhere フリートはまだアクティブで、ラップトップはフリート内のコンピューティングリソースとして登録されたままです。

1. **更新された認証トークンを取得します。**[get-compute-auth-token](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/gamelift/get-compute-auth-token.html) CLI コマンドを呼び出し、トークンをローカルコンピューティングに保存します。

1. **ローカルコンピューティングで実行されている 1 つ以上のゲームサーバープロセスを開始します。**ゲームサーバープロセスが `ProcessReady()` を呼び出すと、テストに使用する準備が整います。

## ゲームを Amazon GameLift Servers マネージドフリートに移行する
<a name="fleet-anywhere-transition"></a>

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

ローカルテストフリートから Amazon GameLift Servers マネージドフリートに移行するには、いくつかの小さな修正を行う必要があります。同じキューとマッチメーカーは再利用できます。次のいずれかのタスクを実行します。
+ **ゲームサーバーのコード呼び出しを `InitSdk()` に変更します。**サーバーパラメータを削除します。マネージドフリートの場合、Amazon GameLift Servers はこの情報を自動的に追跡します。
+ **Amazon GameLift Servers ビルドリソースを作成します。**Anywhere テストフリートでは、ゲームサーバーのビルドと依存関係を各フリートコンピューティングに手動でデプロイする必要があります。マネージドフリートでは、ゲームビルドパッケージを作成して Amazon GameLift Servers にアップロードします。これにより、すべてのフリートコンピューティングに自動的にデプロイされます。ゲームビルドファイルのパッケージ化と、Amazon S3 バケット内のファイルを使用したビルドリソース作成の詳細については、「[Amazon GameLift Servers のゲームサーバービルドを作成する](gamelift-build-cli-uploading.md)」を参照してください。Amazon GameLift Servers はマネージドフリートでこれらのタスクを自動的に処理するため、コンピューティングを登録して認証トークンを取得するスクリプトを含めないでください。
+ **マネージドフリートを作成します。**EC2 マネージドフリートを指定して、コンソールまたは AWS CLI を使用してフリートを作成します。このタイプのフリートには、ビルドリソースとインスタンスタイプの指定など、追加の設定が必要です。フリートコンピューティングごとにゲームサーバーライフサイクルを管理するには、すべてのユーザーがランタイム設定をセットアップする必要があります。マネージドフリートの作成の詳細については、「[Amazon GameLift Servers マネージド EC2 フリートを作成する](fleets-creating.md)」を参照してください。
+ **フリートエイリアスをリダイレクトします (オプション)。**Anywhere フリートで使用するエイリアスを設定すると、マネージドフリートに同じエイリアスを再利用できます。エイリアスの作成または更新の詳細については、「[Amazon GameLift Servers エイリアスの作成](aliases-creating.md)」を参照してください。