チュートリアル: スポットインスタンスを使用して Amazon GameLift キューを作成する - Amazon GameLift

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

チュートリアル: スポットインスタンスを使用して Amazon GameLift キューを作成する

序章

このチュートリアルでは、低コストのスポットフリートにデプロイされるゲームのゲームセッションプレイスメントを設定する方法について説明します。スポットフリートでは、プレイヤーのゲームサーバーの継続的な可用性を維持するために、追加の手順が必要です。

対象者

このチュートリアルは、スポットフリートを使用してカスタムゲームサーバーまたはリアルタイムサーバーをホストするゲームデベロッパー向けです。

学習する内容
  • ゲームセッションキューによって提供されるプレイヤーのグループを定義します。

  • ゲームセッションキューのスコープをサポートするフリートインフラストラクチャを構築します。

  • 各フリートにエイリアスを割り当てて、フリート ID を抽象化します。

  • キューを作成し、フリートを追加し、Amazon がゲームセッション GameLift を配置する場所を優先します。

  • プレイヤーレイテンシーポリシーを追加して、レイテンシー問題を最小限に抑えます。

前提条件

ゲームセッションプレイスメント用のフリートとキューを作成する前に、次のタスクを完了する必要があります。

ステップ 1: キューのスコープを定義する

このチュートリアルでは、ゲームサーバービルドのバリエーションが 1 つのゲームのキューを設計します。開始時には、アジアパシフィック (ソウル) とアジアパシフィック (シンガポール)) の 2 か所でリリースされます。これらのロケーションは互いに近いので、レイテンシーはプレイヤーにとって問題ではありません。

この例では、プレイヤーセグメントが 1 つしかありません。つまり、キューを 1 つ作成します。将来、北米でゲームがリリースされるときには、北米のプレイヤーを対象とした 2 つ目のキューを作成できます。

詳細については、「キューの範囲を定義する」を参照してください。

ステップ 2: スポットフリートインフラストラクチャを作成する

ロケーションにフリートを作成し、ステップ 1: キューのスコープを定義する で定義したスコープに適合するゲームサーバービルドまたはスクリプトを使用します。

このチュートリアルでは、各ロケーションに、少なくとも 1 つのスポットフリートと 1 つのオンデマンドフリートを含む 2 つのロケーションインフラストラクチャを作成します。各フリート毎に同じゲームサーバービルドをデプロイします。さらに、ソウルのロケーションではプレイヤーのトラフィックが重くなることが予想されるため、そこにスポットフリートを追加します。

次の図は、ap-northeast-2 (ソウル) ロケーションに 3 つのフリートと ap-southeast-1 (シンガポール) ロケーションに 2 つのフリートがあるスポットフリートインフラストラクチャの例を示しています。両方のフリートのすべてのインスタンスはビルド MBG_prod_V1 を使用しています。ap-northeast-2 のフリートにはインスタンスタイプが c5.large のフリート 1234_spot_1、インスタンスタイプが c5.xlarge のフリート 1234_spot_2、インスタンスタイプが c5.large のフリート 1234_ondemand のフリート設定が含まれています。ap-southeast-1 のフリートにはインスタンスタイプが c5.large のフリート 1234_spot_1 と、インスタンスタイプが c5.large のフリート 1234_ondemand のフリート設定が含まれています。

アジアパシフィック (ソウル) とアジアパシフィック (シンガポール) に拠点を置き、オンデマンドインスタンスとスポットインスタンスが混在するスポットフリートインフラストラクチャ。

ステップ 3: フリートごとにエイリアスを割り当てる

インフラストラクチャの各フリートに新しいエイリアスを作成する。エイリアスはフリート ID を抽象化し、定期的なフリート交換を効率的にします。アラーム作成の詳細については、「Amazon GameLift エイリアスを作成する」を参照してください。

フリートインフラストラクチャにはフリートが 5 つあるため、ルーティング戦略を使用して 5 つのエイリアスを作成します。アジアパシフィック (ソウル) のロケーションには 3 つのエイリアスが必要で、アジアパシフィック (シンガポール) のロケーションには 2 つのエイリアスが必要です。

次の図は、ステップ 2 で説明したスポットフリートのインフラストラクチャと、各フリートにエイリアスを追加したものです。フリート 1234_spot_1 にはエイリアス MBG_spot_1、フリート 1234_spot_2 にはエイリアス MBG_spot_2、フリート 1234_ondemand にはエイリアス MBG_ondemand があります。

ステップ 2 で説明したスポットフリートインフラストラクチャの例には、各フリートを指すエイリアスがあります。

詳細については、「マルチロケーションキューを構築する」を参照してください。

ステップ 4: 送信先のキューを作成する

ゲームセッションキューを作成し、フリートの送信先を追加します。キューの作成方法の詳細については、「ゲームセッションキューを作成する」を参照してください。

キューを作成するとき:

  • デフォルトのタイムアウト値を 10 分に設定します。後に、キューのタイムアウトがゲームに参加するためのプレイヤーの待ち時間にどのように影響するかをテストできます。

  • 今のところ、プレイヤーレイテンシーポリシーのセクションはスキップしてください。これについては、次のステップで説明します。

  • キュー内のフリートに優先順位を付けます。スポットフリートを操作する場合は、次のいずれかの方法をお勧めします。

    • インフラストラクチャで、バックアップ用にセカンダリロケーションにフリートがあるプライマリロケーションを使用している場合は、最初にロケーション別、次にフリートタイプ別に優先順位を付けます。

    • インフラストラクチャで複数のロケーションを均等に使用する場合は、フリートタイプでフリートに優先順位を付け、スポットフリートをキューの先頭に配置します。

この例では、MBG_spot_queue という名前の新しいキューを作成し、5 つのフリートすべてにエイリアスを追加します。次に、最初にロケーションでプレイスメントを優先順位付けし、次にフリートタイプで優先順位付けします。

この設定に基づいて、このキューでは常に新規のゲームセッションをソウルのスポットフリートに配置しようとします。これらのフリートがいっぱいになると、キューはソウルオンデマンドフリートの利用可能なキャパシティをバックアップとして使用します。3 つのソウルフリートがすべて利用できない場合、Amazon はシンガポールフリートにゲームセッション GameLift を配置します。

次の図は、タイムアウトが 300 秒のキューと優先順位付けされた送信先を示しています。目的地は、ap-northeast-2 の 1234_spot_1、ap-northeast-2 の 1234_spot_2、ap-northeast-2 の 1234_ondemand、ap-southeast-1 の 1234_spot_1、ap-southeast-1 の 1234_ondemand の順になっています。

複数のスポットフリートとバックアップオンデマンドフリートを含むスポットキューの例。

ステップ 5: レイテンシー制限をキューに追加する

このゲームでは、ゲームセッションのプレイスメントリクエストにレイテンシー情報が含まれています。プレイヤーグループのためのゲームセッションを作成するプレイヤーパーティー機能もあります。私たちは、ゲーム参加までプレイヤーに少し長く待ってもらうことで、可能な限り理想的なゲームプレイエクスペリエンスが得られるようにできます。弊社のゲームテストでは次のような結果が出ています。

  • 理想的なレイテンシーは 50 ミリ秒未満。

  • 250 ミリ秒を超えるレイテンシーではゲームはプレイできない。

  • プレイヤーは約 1 分以内に我慢の限界に達する。

300 秒のタイムアウトがあるキューには、許容レイテンシーを制限するポリシーステートメントを追加します。ポリシーステートメントでは、レイテンシー値を徐々に 250 ミリ秒まで増加させることができます。

このポリシーでは、キューは最初の 1 分間、最適なレイテンシー(50 ミリ秒未満)のプレイスメントを検索し、それ以降は制限を緩和します。キューは、プレイヤーのレイテンシーが 250 ミリ秒以上のプレイスメントは行いません。

次の図は、プレイヤーのレイテンシーポリシーが追加されたステップ 4 のキューを示しています。プレイヤーレイテンシーポリシーには、60 秒間は 50 ミリ秒の制限を適用、30 秒の間は 125 ミリ秒の制限を適用、タイムアウトまで 250 ミリ秒の制限を強制すると規定されています。

プレイヤーのレイテンシーポリシーが追加されたステップ 4 のサンプルキュー。プレイヤーレイテンシーポリシーには、60 秒間は 50 ミリ秒の制限を適用、30 秒の間は 125 ミリ秒の制限を適用、タイムアウトまで 250 ミリ秒の制限を強制すると規定されています。

[概要]

お疲れ様でした。以下はあなたが達成した内容です。

  • プレイヤー集団の一部を対象とするゲームセッションキューができました。

  • キューはスポットフリートを効果的に使用し、スポットの中断が発生したときにも回復力があります。

  • キューでは、最高のプレイヤーエクスペリエンスが得られるフリートが優先されます。

  • キューには、劣悪なゲームプレイエクスペリエンスからプレイヤーを保護するためにレイテンシー制限が設定されています。

これで、キューを使用して、提供しているプレイヤーゲームセッションを配置できます。これらのプレイヤーに対してゲームセッションプレイスメントリクエストを行う場合は、リクエストでこのゲームセッションキュー名を参照します。ゲームセッションのプレイスメントリクエストの詳細については、ゲームセッションを作成する または リアルタイムサーバー用のゲームクライアントの統合 を参照してください。

次のステップ: