Amazon GameLift がゲームサーバーを起動する方法を管理する - Amazon GameLift

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

Amazon GameLift がゲームサーバーを起動する方法を管理する

インスタンスごとに複数のゲームサーバープロセスを実行するようにマネージド EC2 フリートのランタイム設定を定義できます。これにより、ホスティングリソースがより効率的に使用されます。

フリートが複数のプロセスを管理する方法

Amazon GameLift はフリートのランタイム設定を使用して、各インスタンスで実行するプロセスのタイプと数を決定します。1 つのランタイム設定には、少なくとも 1 個のゲームサーバー実行可能ファイルを表す 1 つのサーバープロセス設定が含まれます。追加のサーバープロセス設定を定義して、ゲームに関連する他のタイプのプロセスを実行することができます。各サーバープロセス設定には、以下の情報が含まれています。

  • ゲームビルドの実行可能ファイルのファイル名とパス。

  • (オプション) 起動時にサーバープロセスに渡すパラメータ。

  • 同時に実行するプロセスの数。

フリートのインスタンスがアクティベートされると、ランタイム設定で定義された一連のサーバープロセスが起動します。複数のプロセスで、Amazon GameLift は各プロセスの起動をずらします。サーバープロセスの存続時間は限られています。プロセスが終了すると、Amazon GameLift は新しいプロセスを起動して、ランタイム設定で定義されているサーバープロセスの数とタイプを維持します。

ランタイム設定は、サーバープロセス設定を追加、変更、削除することでいつでも変更できます。各インスタンスは定期的にフリートのランタイム設定の更新をチェックし、変更を実装します。Amazon GameLift がランタイム設定の変更を適用する方法は以下のとおりです。

  1. インスタンスは Amazon GameLift に最新バージョンのランタイム設定についてリクエストを送信します。

  2. インスタンスはアクティブなプロセスを最新のランタイム設定と比較し、次の操作を行います。

    • 更新されたランタイム設定によりサーバープロセスタイプが削除された場合、このタイプのアクティブなサーバープロセスは、終了するまで実行され続けます。インスタンスはこれらのサーバープロセスを置き換えるものではありません。

    • 更新されたランタイム設定によりサーバープロセスタイプの同時プロセス数が減る場合、このタイプの過剰なサーバープロセスは、終了するまで実行され続けます。インスタンスがこれらのサーバープロセスを置き換えることはありません。

    • 更新されたランタイム設定により新しいタイプのサーバープロセスが追加されるか、既存のタイプの同時プロセスが増える場合、インスタンスは新しいサーバープロセスを Amazon GameLift の最大数まで開始します この場合、インスタンスは、既存のプロセスが終了したときに新しいサーバープロセスを起動します。

フリートを複数のプロセスに合わせて最適化する

フリートで複数のプロセスを使用するには、次の操作を実行します。

  • フリートにデプロイしようとするゲームサーバー実行可能ファイルを含む ビルドを作成 し、Amazon GameLift にそのビルドをアップロードします。ビルド内のすべてのゲームサーバーは同じプラットフォームで実行され、Amazon GameLift Server SDK を使用する必要があります。

  • ひとつ以上のサーバープロセス設定と複数の同時プロセスのあるランタイム設定を作成します。

  • ゲームクライアントを AWS SDK バージョン 2016-08-04 以降に統合します。

フリートのパフォーマンスを最適化するには、次の操作を実行することをお勧めします。

  • Amazon GameLift がプロセスを効率よくリサイクルするように、サーバープロセスシャットダウンシナリオを処理します。例:

    • サーバー API ProcessEnding() を呼び出すシャットダウン手順をゲームサーバーコードに追加する。

    • Amazon GameLift からの終了リクエストを処理するために、コールバック関数 OnProcessTerminate() をゲームサーバーコードに実装します。

  • Amazon GameLift が異常なサーバープロセスをシャットダウンし、再起動することを確認します。ゲームサーバーコードに OnHealthCheck() コールバック関数を実装することで、Amazon GameLift にこのヘルスステータスの報告を返します。Amazon GameLift は、異常報告が 3 回連続なされたサーバープロセスを自動的にシャットダウンします。OnHealthCheck() を実装しない場合、Amazon GameLift は、プロセスが通信への応答に失敗しない限り、サーバープロセスが正常であるとみなします。

インスタンスごとのプロセスの数を選択する

インスタンスで実行する同時プロセスの数を決定するときは、以下に注意してください。

  • Amazon GameLift は各インスタンスの 同時プロセスの最大数 を制限します。フリートのサーバープロセス設定のすべての同時プロセスの合計数がこのクォータを超えることはできません。

  • 許容可能なパフォーマンスレベルを維持するため、Amazon EC2 インスタンスタイプによっては、同時に実行できるプロセスの数が制限される場合があります。ゲームでさまざまな設定を試して、選択したインスタンスタイプにとって適切なプロセス数を見つけます。

  • Amazon GameLift は、設定した合計数を超える同時プロセスを実行しません。つまり、以前のランタイム設定から新しい設定への移行は段階的に行われる可能性があります。