さまざまな専用サーバークレームシナリオを探る
注釈:本資料はAI技術を用いて翻訳されています。
概要
この記事では、AccelByte Multiplayer Servers(AMS)フリートを使用してさまざまなシナリオで専用サーバーをクレームする方法について説明します。
前提条件
このガイドを開始する前に、以下を完了している必要があります。
AMS管理フリートから専用サーバーをクレームする
フリート内でいくつかの専用サーバーが実行されているので、ゲームセッションにホストさせるために、これらの専用サーバー(DS)の1つをクレームします。クレームリクエストは、1つ以上のフリートに送信され、専用サーバーに直接送信されることはないように設計されており、Fleet Commandが要件に最も適した専用サーバーを見つけることができます。
そのような要件の1つは、DSを取得するリージョンです。これは、専用サーバーをそれが提供するプレイヤーの近くに配置し、プレイヤーがゲームをプレイする際に最高の体験ができるようにしたいためです。
ゲームクライアントの観点から、専用サーバーは通常次のように取得されます。
- プレイヤーがマッチングされてゲームセッションを形成します。
- SessionサービスがAMSからゲームセッション用の専用サーバーをクレームします。
- Sessionサービスが接続情報をゲームクライアントに渡します。
マッチメイキングやセッション管理ソリューションとしてAccelByte Gaming Services(AGS)を使用している場合は、マッチメイキングまたはゲームセッションの作成ガイドで設定方法を読むことができます。
使用されているセッション管理ソリューションに関係なく、AMSからDSをクレームするには、優先順に1つ以上のクレームキーを提供するリクエストと、DSが必要な1つ以上のリージョンの順序付きリストが含まれます。
クレームキーによるクレーム
クレームキーを使用して専用サーバーをクレームするには、次の順序で以下の手順を実行します。
フリートにクレームキーを割り当てる
クレームキーを使用してフリートからクレームするには、まずフリートにクレームキーを割り当てる必要があります。これを行うには、フリートの1つに移動して詳細ビューを開きます。Statusタブの下にClaim Keysフィールドがあります。+ Add Moreボタンをクリックしてクレームキーを追加するか、キーの横にあるXボタンをクリックして既存のクレームキーを削除できます。

クレームキーを使用して専用サーバーをクレームする
この機能豊富なクレームフローにより、複数のフリートをクレームキーを共有することでグループ化でき、これらのフリート内のすべての専用サーバーがクレームの目的で同じプールとして扱われます。
クレームリクエスト本文には次の情報が表示されます。
{
"claimKeys": [
"string",
...
],
"regions": [
"string",
...
],
"sessionId": "string"
}
Fleet Commandサービスはリージョンを反復処理し、各リージョンに対して、提供されたクレームキーのリストを使用して専用サーバーをクレームしようとします。これにより、このクレームフローでクレームされる専用サーバーができるだけプレイヤーに近くなります。クレームプロセスは、このアルゴリズムによって大まかに表されます。
for each region in regions:
for each claimKey in claimKeys:
filteredFleetList = filterClaimKey(fleets, claimKey)
tryToClaimServer(filteredFleetList, region)
詳細については、クレームキーによるクレームのAPIドキュメントを参照してください。
クレームリクエスト内のクレームキーに関連付けられたフリートがない場合、そのクレームキーは単にスキップされます。
クレームキーの使用例
一般的に必要なシナリオのガイダンスを提供するクレームキーの使用例を以下に示します。
Blue/Greenフリートイメージのアップグレード
アップグレードしたい専用サーバーの新しいバージョンがあり、サービスのダウンタイムを導入せずにアップグレードする場合、Blue/Greenデプロイメントの概念を使用して、移行中の可用性を確保できます。
Fleet v1: 古いサーバーバージョンのフリート
Fleet v2: 新しいサーバーバージョンのフリート
Fleet v1にclaimKeys ["v1"]を割り当てる
Fleet v2にclaimKeys ["v2"]を割り当てる
クレームリクエストで、クレームキーをこの特定の順序で設定します。
"claimKeys": ["v2", "v1"]
期待される結果:
Fleet v2に準備済みのサーバーがある場合、Fleet v2からサーバーがクレームされます。Fleet v2がまだスケールアウト中で準備済みサーバーがない場合は、代わりにFleet v1からサーバーがクレームされます。
Fleet v2が完全に立ち上がった後、Fleet v1を無効化してアップグレードプロセスを完了できます。
カナリアフリートデプロイメント
カナリアフリートは、まだテスト中の専用サーバーイメージのバージョンを持つ小さなフリートです。カナリアフリートデプロイメントの考え方は、既存のデプロイメントに影響を与えることなく、ライブトラフィックで新しいバージョンの専用サーバーイメージをテストすることです。
-
オプション1
Fleet Live: ライブバージョンのサーバーを持つフリート
Fleet Canary: テストするサーバーのバージョンを持つフリート
Fleet LiveにclaimKeys ["live"]を割り当てる
Fleet CanaryにclaimKeys ["canary"]を割り当てるクレームリクエストで:
"claimKeys": ["canary", "live"]期待される結果:
カナリアフリートに準備済みのサーバーがある場合はカナリアフリートからサーバーがクレームされ、カナリアフリートに準備済みのDSがない場合はライブフリートからクレームされます。
-
オプション2
Fleet Live: ライブバージョンのサーバーを持つフリート
Fleet Canary: テストするサーバーのバージョンを持つフリート
Fleet LiveにclaimKeys ["live"]を割り当てる
Fleet CanaryにclaimKeys ["live"]を割り当てるクレームリクエストで:
"claimKeys": ["live"]期待される結果:
カナリアフリートまたはライブフリートのいずれかからサーバーがクレームされ、特定の順序は強制されません。
複数バージョンのサーバーのサポート
ゲームに、特定のバージョンの専用サーバーでのみ動作する複数のバージョンのゲームクライアントがある場合があります。フリートをバージョンに分類することでこれを実現できます。
Fleet v1: 専用サーバーv1のフリート
Fleet v2: 専用サーバーv2のフリート
Fleet v1にclaimKeys ["v1"]を割り当てる
Fleet v2にclaimKeys ["v2"]を割り当てる
このシナリオでは、ゲームクライアントは同じバージョンの他のクライアントとのみゲームセッションにグループ化する必要があり、その後、一致するバージョンキーをクレームキーとして使用してクレームリクエストを行う必要があります。
期待される結果:
クレームリクエストでv1が提供された場合、Fleet v1からの専用サーバーのみがクレームされます。同様に、クレームリクエストでv2が提供された場合、Fleet v2からの専用サーバーのみがクレームされます。