フリートとは
フリートは、EC2インスタンス群形式の仮想ホスティングリソースです。
カスタムゲームサーバーまたはリアルタイムサーバーを用いてデプロイすることでサーバープロセスを起動しゲームセッションをホスティングできるようになります。
フリートには、どこのリージョンにデプロイするか、どのOSやインスタンスタイプを用いるか、サーバープロセスの起動方法はどうするのかなど考慮する設計要素がいくつかありゲームの仕様に応じて各要素を選択する流れになります。
フリートでスポットインスタンスを活用する
スポットインスタンスとは、AWSクラウド内で使用されていないEC2キャパシティを活用した購入オプションの事でオンデマンドインスタンスと比較して最大90%割引いた料金でご利用いただけます。
ただしスポットインスタンスには、使用の中断がされる可能性があるという注意点があります。
これはスポットインスタンスの料金がリージョンごとの各インスタンスタイプの需要と供給に基づいて変動するためです。
その結果AWSがキャパシティを必要とする場合に最大2分前に中断通知を受ける場合があります。
したがってスポットインスタンスを指定したフリートをゲームに統合するためには、ゲーム側で主に2つの調整が必要になります。
1つ目は、キューを使用してゲームセッションを配置することです。
複数のフリートの候補の中から一連の手順で最適なフリートを選択したうえでゲームセッションを排除してくれます。
スポットインスタンスを使用する場合はこキューを使用することが必須となります。
またキューに備わっているフリートIQという仕組みにより中断頻度、僚機、そしてレイテンシーが低いフリートが選択されるようになります。
2つ目は、ゲームサーバーでスポットの中断を処理できるように実装しておくことです。
ゲームサーバーでスポットインスタンスの中断通知を受信できるので、その通知を受け取った場合に適切にゲームセッションを終了するか、プレイヤーを新たなゲームセッションに配置する手続きを実装します。
以上の2つの対応することでスポットインスタンスを活用できゲームサーバーのコストを大幅に削減できます。
フリートメトリクス
フリートに関連したアクティビティは、Amazon GameLiftサービスがAWSのモニタリングサービスであるCloudwatch対して毎分メトリクスを送信しています。
これによりフリートの使用状況をリアルタイムで監視することができます。
フリート容量のスケーリング
GameLiftでは、フリートのスケーリングを完全に制御することができます。
フリートのスケーリングはゲームリフトのコンソール上で直接調整する方法とフリートメトリクスに基づくAuto Scalingで行う方法があります。
フリートの容量をAuto Scalingで制御するとプレイヤーの需要に合わせてインスタンス数をリアルタイムに増減できるのでコストの削減とプレイヤー体験を適宜調整することができます。
フリートのAuto Scaling ポリシー には、ターゲット追跡とルールベースのスケーリングの2種類があります。
ターゲット追跡は使用可能なゲームセッションの割合というフリートメトリクスを参照していますが、実際にはプレイヤーからの急激な需要に対するフリート容量バッファと差支えありません。
これはプレイヤーお待たせずに、ゲームが開始できる手段として多くのゲームで効果的に機能します。
一方ルールベースのスケーリングでは、フリートメトリクスを用いた評価式を作成し特定の状況に対して対処できます。
こちらはターゲット追跡と併用して補助する目的で活用するとよい。