Amazon GameLift Servers エージェントの操作 - Amazon GameLift Servers

Amazon GameLift Servers エージェントの操作

Amazon GameLift Servers エージェントは、Amazon GameLift Servers フリートでのゲームサーバープロセスの実行を監督します。エージェントはフリート内の各コンピューティングにデプロイされ、コンピューティングの自動プロセス管理、ホスティング管理、ログ記録を提供します。エージェントを使用するには、ゲームサーバービルドをバージョン 5.x 以降用のサーバー SDK for Amazon GameLift Servers と統合する必要があります。

Amazon GameLift Servers エージェントは、マネージド EC2 フリートではない Amazon GameLift Servers フリートで外部使用できます。(マネージド EC2 フリートは、エージェントのタスクを自動的に処理します。) エージェントの有無にかかわらず、Anywhere フリートを含む Amazon GameLift Servers フリートを実行できます。エージェントがない場合、必要なタスクを完了するための代替ソリューションを提供する必要があります。

コンピューティングにデプロイする場合は、ゲームサーバープロセスを開始する前に Amazon GameLift Servers エージェントを起動する必要があります。起動時に、エージェントは次のタスクを完了します。

  • RegisterCompute API を使用して、コンピューティングを Amazon GameLift Servers Anywhere フリートに登録します。

  • GetComputeAuthToken API を呼び出して認証トークンを取得し、コンピューティングで実行されているサーバープロセスで使用できるように保存します。

  • コンピューティングの WebSocket URL 環境変数を設定し、Amazon GameLift Servers サービスへの WebSocket 接続を確立します。

  • Amazon GameLift Servers サービスからフリートのランタイム設定の最新バージョンを要求します。

  • ランタイム設定手順に従って、サーバープロセスを開始および停止します。

Amazon GameLift Servers エージェントのソースコードおよびビルドの手順は、Amazon GameLift Servers エージェント GitHub で入手できます。

エージェントについて

Amazon GameLift Servers エージェントは、フリートに対して次のタスクを処理するように設計されています。

プロセス管理

  • ランタイム手順で定義されているように、新しいサーバープロセスを開始します。エージェントは、エージェントにデプロイされたカスタムランタイム設定を使用する場合があります。また、RuntimeConfiguration をフリート定義の一環として指定することもできます。このアプローチの利点として、いつでもフリートのランタイム設定を変更できることが挙げられます。エージェントは、定期的に Amazon GameLift Servers サービスから更新されたランタイム設定を要求します。

  • サーバープロセスのアクティベーションを監視し、時間内にアクティブ化されない場合はプロセスを終了します。

  • ハートビートを Amazon GameLift Servers に送信します。エージェントがハートビートを送信できない場合、コンピューティングは「古い」としてマークされる場合があります。

  • サーバープロセスが終了したら、Amazon GameLift Servers に報告します。Amazon GameLift Servers はこの情報を使用して、ゲームセッション配置のゲームサーバーの可用性をモニタリングします。

  • 以下を含むサーバープロセスのフリートイベントを出力します。

    • SERVER_PROCESS_INVALID_PATH: ゲームサーバープロセスの起動パラメータが正しく設定されていません。

    • SERVER_PROCESS_TERMINATED_UNHEALTHY: ゲームサーバープロセスが、アクティブ化されてから 3 分以内に有効なヘルスチェックを報告しなかったため、終了しました。

    • SERVER_PROCESS_FORCE_TERMINATED: OnProcessTerminate() が 30 秒以内に送信された後、ゲームサーバープロセスが正常に終了しませんでした。

    • SERVER_PROCESS_CRASHED: 何らかの理由でゲームサーバープロセスがクラッシュしました。

コンピューティング管理

  • Amazon GameLift Servers サービスからメッセージを受信して、コンピューティングをシャットダウンします。

  • Amazon GameLift Servers によって終了されることをコンピューティングにプロンプトします。

ログ記録

  • AWS アカウントの Amazon S3 バケットにログをアップロードします。