Amazon GameLift Servers FleetIQ ロジック - Amazon GameLift Servers

Amazon GameLift Servers FleetIQ ロジック

次の図は、ゲームホスティングを Amazon EC2 で操作する際の Amazon GameLift Servers FleetIQ の役割を示しています。その主な目標は、ゲームセッションをホストし、プレイヤーに最適なゲームプレイエクスペリエンスを提供する最適なゲームサーバーを見つけることです。Amazon GameLift Servers FleetIQ は、最適なリソースを、最低コストで最高のゲームホスティングの実行可能性を提供するリソースとして定義します。Amazon GameLift Servers FleetIQ は、この目標に 2 つの主要な方法でアプローチします。1 つ目は、Amazon EC2 Auto Scaling グループで実行可能なインスタンスタイプのみを許可し、2 つ目は、グループの利用可能なリソース全体に新しいゲームセッションを効果的に配置することです。

Amazon GameLift Servers FleetIQ は Amazon EC2 と連携する

Auto Scaling グループに最適なインスタンスタイプを設定する

Amazon EC2 Auto Scaling グループのジョブは、新しいインスタンスを起動して古いインスタンスを使用停止することで、ホスティングリソースのコレクションを維持し、これをプレイヤーの需要に合わせてスケーリングすることです。これを行うには、Amazon EC2 Auto Scaling グループは目的のインスタンスタイプのリストに依存します。Amazon GameLift Servers FleetIQ のジョブは、これらの必要なインスタンスタイプの実行可能性を継続的にチェックし、Amazon EC2 Auto Scaling グループのリストを更新することです。このプロセスは、インスタンスバランシングと呼ばれています。これにより、Amazon EC2 Auto Scaling グループ内のインスタンスが継続的に更新され、現在実行可能なインスタンスタイプのみが常に使用されるようになります。

Amazon GameLift Servers FleetIQ は、Amazon EC2 Auto Scaling グループが、次の方法で最適なインスタンスタイプを選択する方法に影響を与えます。

  • スポットやオンデマンドインスタンスの利用状況を判断します。Amazon GameLift Servers FleetIQ ゲームサーバーグループは、Amazon EC2 Auto Scaling グループによるスポットインスタンスやオンデマンドインスタンスの使用方法に影響するバランシング戦略が設定されています。スポットインスタンスは可用性の変動や中断の可能性があるため、低コストとなります。Amazon GameLift Servers FleetIQ は、ゲームサーバーホスティングに対するこのような制限を最低限に抑えます。オンデマンドインスタンスのコストは高くなりますが、必要なときにより信頼性の高い可用性を提供します。

  • これにより、新しいインスタンスが実行可能なインスタンスタイプでのみ起動するように制限されます。Amazon GameLift Servers FleetIQ ゲームサーバーグループは、目的のインスタンスタイプのマスターリストを保持します。インスタンスバランシングプロセスは、インスタンスタイプの最近の可用性と中断のレートを調べる予測アルゴリズムを使用して、ゲームホスティングの実行可能性についてリスト内の各目的のインスタンスタイプを継続的に評価します。この評価の結果、Amazon GameLift Servers FleetIQ は Amazon EC2 Auto Scaling グループの目的のインスタンスタイプのリストを継続的に更新して、現在実行可能なインスタンスタイプのみを含めます。

  • 実行不可能なインスタンスタイプである既存のインスタンスにフラグを付けます。Amazon GameLift Servers FleetIQ は、現在実行不可能なインスタンスタイプである Amazon EC2 Auto Scaling グループ内の既存のインスタンスを識別します。該当するインスタンスには、[draining]ドレイン中のフラグが付けられます。つまり、このようなインスタンスは終了され、新しいインスタンスに置き換えられます。ゲームサーバーの保護がオンになっているインスタンスの場合、アクティブなゲームセッションが正常に終了するまで終了が延期されます。

Amazon EC2 Auto Scaling グループは、インスタンスの起動や廃止を行いながら、低コストのスポットインスタンスタイプの可用性が変動しても、ゲーム ホスティング用に最適化されたコレクションを維持します。バランシングアクティビティは、アクティブなインスタンスを持つゲームサーバーグループでのみ行われます。このプロセスの詳細については、「スポット再調整プロセス」を参照してください。

ゲームセッションを効果的に配置する

Amazon GameLift Servers FleetIQ は、ゲームサーバーグループ内のすべてのアクティブなゲームサーバーを追跡し、この情報を使用して新しいゲームセッションとプレーヤーの最適な配置を決定します。

Amazon GameLift Servers FleetIQ でゲームサーバーを追跡するには、そのステータスをゲームサーバーソフトウェアによって報告する必要があります。カスタム AMI は、各インスタンスでの新しいゲームサーバープロセスの開始と停止の方法を管理します。新しいゲームサーバーを起動すると、それが Amazon GameLift Servers FleetIQ に登録され、ゲームセッションをホストする準備が整ったことを示します。登録後、ゲームサーバーは、その状態および現在ゲームセッションをホスティングしているかどうかを定期的にレポートします。ゲームサーバーがシャットダウンすると、Amazon GameLift Servers FleetIQ が登録解除されます。

新しいゲームセッションを開始する場合は、ゲームクライアント (またはマッチメーカーや他のクライアントサービス) から Amazon GameLift Servers FleetIQ に対して、ゲームサーバーへのリクエストが送信されます。Amazon GameLift Servers FleetIQ は、利用可能なゲームサーバープロセスを見つけ、それを新しいゲームセッション用として要求し、ゲームサーバー ID と接続情報を返します。これに応じて、ゲームサーバーはそのステータスを更新し、参加プレイヤーの新しいゲームセッションを開始します。

新しいゲームセッションをホストするゲームサーバーを選択する場合、Amazon GameLift Servers FleetIQ は次の決定プロセスを使用して、有効かつ低コストのスポットインスタンスの配置を最適化します。

  1. 可能な場合、Amazon GameLift Servers FleetIQ は、他のゲームセッションをすでにホストしているインスタンスに新しいゲームセッションを配置します。一部のインスタンスに集中させて (ただし、過負荷にはせず)、他のインスタンスをアイドル状態に保つことで、Amazon EC2 Auto Scaling グループは不要なアイドル状態のインスタンスを迅速にスケールダウンできるため、ホスティングコストが削減されます。

  2. Amazon GameLift Servers FleetIQ は、ゲームホスティングに無効な「ドレイン中」フラグが立ったインスタンスを無視します。これらのインスタンスは、既存のゲームセッションをサポートするためにだけに実行されています。これらは、他のゲームサーバーが利用できない限り、新しいゲームセッションには使用できません。

  3. Amazon GameLift Servers FleetIQ は、有効なインスタンスで実行されているすべての利用可能なゲームサーバーを識別します。

ゲームサーバーグループのゲームセッション保護をオンにすると、アクティブに実行中のゲームセッションで Amazon EC2 Auto Scaling グループがインスタンスを終了するのを防ぐことができます。