翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
マネージド Amazon GameLift Servers でのゲームサーバーランタイム設定の最適化
インスタンスごとに複数のゲームサーバープロセスを実行するようにマネージド EC2 フリートのランタイム設定を定義できます。これにより、ホスティングリソースがより効率的に使用されます。
フリートが複数のプロセスを管理する方法
Amazon GameLift Servers はフリートのランタイム設定を使用して、各インスタンスで実行するプロセスのタイプと数を決定します。1 つのランタイム設定には、少なくとも 1 個のゲームサーバー実行可能ファイルを表す 1 つのサーバープロセス設定が含まれます。追加のサーバープロセス設定を定義して、ゲームに関連する他のタイプのプロセスを実行することができます。各サーバープロセス設定には、以下の情報が含まれています。
-
ゲームビルドの実行可能ファイルのファイル名とパス。
-
(オプション) 起動時にサーバープロセスに渡すパラメータ。
-
同時に実行するプロセスの数。
フリートのインスタンスがアクティベートされると、ランタイム設定で定義された一連のサーバープロセスが起動します。複数のプロセスで、Amazon GameLift Servers は各プロセスの起動をずらします。サーバープロセスの存続時間は限られています。プロセスが終了すると、Amazon GameLift Servers は新しいプロセスを起動して、ランタイム設定で定義されているサーバープロセスの数とタイプを維持します。
ランタイム設定は、サーバープロセス設定を追加、変更、削除することでいつでも変更できます。各インスタンスは定期的にフリートのランタイム設定の更新をチェックし、変更を実装します。Amazon GameLift Servers がランタイム設定の変更を適用する方法は以下のとおりです。
-
インスタンスは Amazon GameLift Servers に最新バージョンのランタイム設定についてリクエストを送信します。
-
インスタンスはアクティブなプロセスを最新のランタイム設定と比較し、次の操作を行います。
-
更新されたランタイム設定によりサーバープロセスタイプが削除された場合、このタイプのアクティブなサーバープロセスは、終了するまで実行され続けます。インスタンスはこれらのサーバープロセスを置き換えるものではありません。
-
更新されたランタイム設定によりサーバープロセスタイプの同時プロセス数が減る場合、このタイプの過剰なサーバープロセスは、終了するまで実行され続けます。インスタンスがこれらのサーバープロセスを置き換えることはありません。
-
更新されたランタイム設定により新しいタイプのサーバープロセスが追加されるか、既存のタイプの同時プロセスが増える場合、インスタンスは新しいサーバープロセスを Amazon GameLift Servers の最大数まで開始します。この場合、インスタンスは、既存のプロセスが終了したときに新しいサーバープロセスを起動します。
-
フリートを複数のプロセスに合わせて最適化する
フリートで複数のプロセスを使用するには、次の操作を実行します。
-
フリートにデプロイしようとするゲームサーバー実行可能ファイルを含むビルドを作成し、Amazon GameLift Servers にそのビルドをアップロードします。ビルド内のすべてのゲームサーバーは同じプラットフォーム上で実行され、サーバー SDK for Amazon GameLift Servers を使用する必要があります。
-
ひとつ以上のサーバープロセス設定と複数の同時プロセスのあるランタイム設定を作成します。
-
ゲームクライアントを AWS SDK バージョン 2016-08-04 以降と統合します。
フリートのパフォーマンスを最適化するには、次の操作を実行することをお勧めします。
-
Amazon GameLift Servers がプロセスを効率よくリサイクルできるよう、サーバープロセスのシャットダウンシナリオに適切に対応します。例えば、次のようになります。
-
サーバー API
ProcessEnding()を呼び出すシャットダウン手順をゲームサーバーコードに追加する。 -
Amazon GameLift Servers からの終了リクエストを適切に処理するために、
OnProcessTerminate()コールバック関数をゲームサーバーコードに実装する。
-
-
Amazon GameLift Servers が異常なサーバープロセスをシャットダウンし、再起動することを確認します。ゲームサーバーコードに
OnHealthCheck()コールバック関数を実装し、サーバーのヘルスステータスを Amazon GameLift Servers に報告します。Amazon GameLift Servers は、3 回連続で異常と報告されたサーバープロセスを自動的にシャットダウンします。OnHealthCheck()を実装しない場合、Amazon GameLift Servers は、プロセスが通信への応答に失敗しない限り、サーバープロセスが正常であるとみなします。
インスタンスごとのプロセスの数を選択する
インスタンスで実行する同時プロセスの数を決定するときは、以下に注意してください。
-
Amazon GameLift Servers は各インスタンスの同時プロセスの最大数を制限します。フリートのサーバープロセス設定のすべての同時プロセスの合計数がこのクォータを超えることはできません。
-
許容可能なパフォーマンスレベルを維持するため、Amazon EC2 インスタンスタイプによっては、同時に実行できるプロセスの数が制限される場合があります。ゲームでさまざまな設定を試して、選択したインスタンスタイプにとって適切なプロセス数を見つけます。
-
Amazon GameLift Servers は、設定した合計数を超える同時プロセスを実行しません。つまり、以前のランタイム設定から新しい設定への移行は段階的に行われる可能性があります。