スポットフリートによるゲームホスティングコストの削減
Amazon GameLift Servers マネージドホスティングを使用してマルチプレイヤーゲームサーバーをホストする場合、スポットインスタンスはオンデマンドインスタンスの代わりにコスト効率の高い方法を提供できます。スポット料金モデルは、オンデマンドと同じハードウェアとパフォーマンスを提供しますが、コストを大幅に削減できる可能性があります (最大 70~90%)。ただし、 AWSが容量を戻す必要がある場合、2 分間の中断通知でこれらのインスタンスを再利用できます。
Amazon GameLift Servers は、ゲームサーバーホスティングの中断リスクを軽減します。Amazon GameLift Servers は、スポットインスタンスタイプの中断の可能性を予測し、すべてのインスタンスにゲームセッションを危険にさらすことを回避します。まれな中断が発生した場合、通知によりプレイヤーのゲームセッションを正常に終了できます。
Amazon GameLift Servers がスポットフリートと連携する方法
ゲームホスティング用にスポットフリートを設定すると、Amazon GameLift Servers はゲームホスティングの実行可能性についてスポットフリートのインスタンスタイプと場所を継続的に評価します。
-
スポット実行可能性アルゴリズムは、スポットインスタンスタイプの最近の可用性パターンと過去の中断率をロケーション別に分析します。
-
この分析に基づいて、Amazon GameLift Servers は、ゲームセッションの中断の可能性が許容できないスポットインスタンスタイプと場所を特定します。以下のアクションを実行します。
-
インスタンスタイプと場所の組み合わせを一時的に無効としてマークします。
-
新しいゲームセッションを配置するときに、実行不可能なスポットフリートの場所が考慮から除外されます。その結果、ゲームセッションは、ゲームサーバーのホスティングが中断されない可能性が高いスポットフリートのロケーションにのみ配置されます。
-
AWS が既存のインスタンスのスポットフリートの場所を再利用しない場合でもドレインするため、ゲームホスティングに使用できないインスタンスには料金が発生しません。ゲームセッション保護が有効になっている場合、インスタンスはアクティブなゲームセッションが完了した後にのみシャットダウンされます。
-
-
Amazon GameLift Servers は、ゲームホスティングの実行可能性についてスポットフリートのインスタンスタイプと場所を継続的に再評価します。更新された履歴データに基づいて、以前は実行できなかったインスタンスタイプが再び有効になると、スポットフリートを再度スケールアップでき、Amazon GameLift Servers はそれを使用してゲームセッションの配置を再開します。
設計上の考慮事項
スポットフリートを使用するソリューションを設計するときは、次の問題を考慮してください。
-
ゲームセッションの長さを評価する - ゲームセッションの平均長は、スポットがゲームに対してどの程度うまく機能するかに影響を与える可能性があります。ゲームセッションが短いほど、切り替えが速くなり、最新の履歴データに基づいて実行可能なインスタンスタイプでゲームセッションが実行されます。長いゲームセッションは、最新の実行可能性データを評価しないまま同じインスタンスタイプで実行され続けるため、時間の経過とともに中断するリスクが高まります。
-
インスタンスタイプの可用性を評価する - すべてのフリートロケーションがすべてのインスタンスタイプをスポットとして提供するわけではありません。スポットフリートのインスタンスタイプを選択するときは、Amazon GameLift Servers コンソールフリート作成ツールを使用して、必要な場所にスポットインスタンスタイプを見つけることができます。このツールを使用すると、フリートロケーションを選択し、それらのロケーションでのインスタンスタイプの可用性を表示できます。
-
マルチロケーションスポットフリートの作成 - 複数のロケーションでスポットフリートを作成できます。単一のマルチロケーションスポットフリートは、同じインスタンスタイプのインスタンスを複数の AWS リージョン またはローカルゾーンにデプロイします。スポット実行可能性アルゴリズムは、インスタンスタイプと場所の両方に基づいて実行可能性を評価します。スポットフリートの場所が実行不可能と評価された場合、フリート内の他の場所には影響しません。この場所はゲームセッションのホストに使用できます。
-
スポットフリートの多様性を持つキューを作成する - ゲームホスティングにスポットフリートを使用している場合は、ゲームセッションプレイスメントキューを設定する必要があります。新しいゲームセッションリクエストごとに、キューは利用可能なゲームホスティングリソースを検索し、最適なオプションを選択します。スポットフリートでは、ロケーションやインスタンスタイプが異なる複数のフリートを検索できるキューが必要です。また、バックアップ容量として少なくとも 1 つのオンデマンドフリートを含める必要があります。さまざまな配置オプションを提供する適切に設計されたマルチフリートキューは、中断、速度低下、停止に対して高い耐障害性を備えます。スポットのキューの設計に関するその他のガイダンスについては、スポットインスタンスのキューの設計 を参照してください。
-
中断を適切に処理する - スポットの中断時にプレイヤーへの影響を最小限に抑えるようにゲームサーバーを設定します。AWSがスポットインスタンスを再利用すると、Amazon GameLift Servers はサーバー SDK コールバック関数
onProcessTerminate()を使用して、影響を受けるすべてのサーバープロセスに終了通知を渡します。ゲームセッションを適切に終了するためには、ゲームにこのコールバックを実装する必要があります。詳細については、「サーバープロセスのシャットダウン通知に応答する」を参照してください。注記
AWS は、インスタンスを再要求する前に、通知を処理するようにしますが、警告が届く前に、AWS がスポットインスタンスを再要求する可能性もあります。ゲームサーバーが予期しない中断を適切に処理できるように準備しておきます。
-
バックアップフリートの自動スケーリングを設定して、スポットの中断中にサービスを維持します。ターゲット追跡の自動スケーリングは容量バッファを維持し、需要に応じて自動的にスケーリングします。自動スケーリングでは、バックアップフリート (スポットまたはオンデマンド) は、より多くのゲームセッションリクエストの受信を開始するたびに容量の増加を開始します。
スポットフリートが実行不能になったときに失われた容量をすばやく置き換えるために、カスタムスケーリングメカニズムは使用可能なキューとフリートのメトリクスを使用してバックアップフリートの迅速なスケールアウトを開始できます。スポットフリートが
FirstChoiceOutOfCapacity、FirstChoiceNotViable、PercentAvailableGameSessionsなどのメトリクスで実行不能になったときを検出します。最近のPlacementsStartedメトリクスデータを分析して、代替容量のニーズを見積もります。即時の需要に対応するためにバックアップフリートをスケーリングすると、通常の自動スケーリングが引き継がれます。 -
FlexMatch との統合 - ソリューションが FlexMatch マッチメーカーを使用している場合、スポットフリートに特別な要件はありません。スポットフリートでキューを使用するようにマッチメーカーを設定できます。Amazon GameLift Servers は、新しいゲームセッションを配置する場合や既存のゲームセッションで空のプレイヤースロットをバックフィルする場合など、スポットフリートとオンデマンドフリート間でマッチプレイスメントを自動的に優先します。