このページでは、Game Servers レルムの作成、一覧表示、記述、更新を行う方法について説明します。レルムとは、プレーヤー数に対するゲームのレイテンシ要件に基づいた、Game Servers クラスタのユーザー定義グループです。
始める前に
始める前に、Game Servers の概要の主なコンセプトを理解しておくことをおすすめします。次のタスクも完了していることを確認してください。
- Game Services API が有効になっていることを確認します。 Game Services API を有効にする
- gcloud CLI がインストールされているシェルを選択するか、API クライアントを使用します。
Google Cloud Console に移動します。
コンソールの右上隅にある [Cloud Shell をアクティブにする] ボタン をクリックします。
- サービス アカウントを作成する。
- 秘密鍵を JSON ファイルとしてダウンロードします。
-
環境変数
GOOGLE_APPLICATION_CREDENTIALS
を、認証情報を含む JSON ファイルのパスに設定します。この変数は現在のシェル セッションにのみ適用されるため、新しいセッションを開く場合は、変数を再度設定する必要があります。
Cloud Shell
Cloud Shell を起動するには、次の手順に従います。
コンソールの下部にあるフレーム内で Cloud Shell セッションが開きます。このシェルで gcloud
コマンドを実行します。
ローカルシェル
gcloud CLI をインストールします。
Google Cloud CLI に必要なデフォルトのプロジェクトが設定されていることを確認します(設定されていない場合、後でコマンドごとに --project
フラグを明示的に指定する必要があります)。
gcloud config list project
デフォルト プロジェクトを設定していない場合は、次のコマンドを実行して、デフォルト プロジェクトを設定します。PROJECT_ID
は、設定するプロジェクト ID に置き換えてください。
gcloud config set project PROJECT_ID
次のコマンドを実行して、Google Cloud CLI のバージョンを確認します。Game Servers には、gcloud CLI のバージョン 306.0.0
以降が必要です。
gcloud version
インストールを更新するには、次のコマンドを実行します。
gcloud components update
curl / PowerShell
REST API を curl
または Windows PowerShell で使用するには、次の操作を行います。
クライアント ライブラリ
Google Cloud Game Servers は、クライアント ライブラリを使用して、プログラムで制御できます。ライブラリと認証の手順については、クライアント ライブラリの概要をご覧ください。
レルムの作成
レルムはグローバルまたはリージョンです。レルムに登録されたクラスタが、北米、南アメリカ、ヨーロッパ、アジアなど、さまざまな地理的ロケーションにまたがるリージョンのものであれば、グローバル レルムが適しています。クラスタが、ヨーロッパ西部などの同じリージョンにある場合は、リージョン レルムが適しています。リージョン間でネットワークが停止した場合、グローバル レルムは、すべてのリージョンでクラスタを管理できない場合があります。リージョン間のネットワーク停止から復元力を高めるには、関連するゲームサーバー クラスタに最も近いリージョンでリージョン レルムを作成します。
たとえば、ヨーロッパ西部のユーザーにサービスを提供するために、europe-west1
、europe-west2
、europe-west3
リージョンにクラスタを作成する場合、これらのリージョンの 1 つにリージョン レルムを作成できます。この構成を行うことで、ネットワークの停止により、世界の他のリージョンからこのリージョンに到達できなくなった場合でも、引き続きレルムによるクラスタ管理が可能になります。
レルムを作成する場所がわからない場合は、グローバル レルムとして作成できます。要件の変更に合わせて、管理が必要なクラスタに近いリージョンに新しいレルムを作成できます。最初にグローバル レルムからクラスタを削除および登録解除してから、新しいリージョン レルムにクラスタを登録することで、既存のクラスタを新しいリージョン レルムに移動できます。
Console
Google Cloud コンソールで、[レルムとクラスタ] ページに移動します。
[Create Realm] をクリックします。
[Realm name] ボックスに、このレルムの一意の識別子を入力します。
[タイムゾーン] ボックスで、このレルムのタイムゾーンを選択します。スケーリング ポリシーなどの時間ベースのイベントをスケジュールする場合は、このタイムゾーンが使用されます。
[作成] をクリックします。
gcloud
Google Cloud CLI を使用してレルムを作成することができます。グローバル レルムを作成するには、次のコマンドを実行して、realmID などのプレースホルダ値を適切な値に置き換えます。
gcloud game servers realms create realmID --time-zone tz
リージョン レルムを作成するには、次のコマンドを実行します。realmID などのプレースホルダの値を適切な値に置き換えます。
gcloud game servers realms create realmID --time-zone tz --location=region
変数のプレースホルダは、次の説明のとおりです。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: IAM 設定に載っている Google Cloud プロジェクト ID。
- LOCATION: レルムのリージョン。障害発生ドメインを制御する場合は、サポートされているロケーションのリストからリージョンを指定します。
global
レルムを指定することをおすすめします。 - REALM_ID: 新しいレルムのユーザー定義の識別子。
- TIME_ZONE: このレルムのタイムゾーン(例:
US/Eastern
)。このタイムゾーンに基づいて、スケーリング ポリシーなどの時間ベースのイベントのスケジュールを設定します。
JSON 本文をリクエストします。
{ "timeZone": "TIME_ZONE" }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.gaming.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_ID/locations/LOCATION/realms/REALM_ID", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
レルムの一覧表示
Console
Google Cloud コンソールで、[レルムとクラスタ] ページに移動します。
フィルタ ボックスを使用して、レルムのリストをさまざまなプロパティでフィルタリングできます。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: IAM 設定に載っている Google Cloud プロジェクト ID。
- LOCATION: レルムのリージョンまたは
global
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "realms": [ { "name": "projects/PROJECT_ID/locations/LOCATION/realms/realm1", "createTime": CREATE_TIME, "updateTime": UPDATE_TIME, "timeZone": "US/Eastern", "etag": "PlXtLrUJ5pHQoZk0Lz-pWkPFN_dt3PXhIpRrJ5HHWu8" }, { "name": "projects/PROJECT_ID/locations/LOCATION/realms/realm2", "createTime": CREATE_TIME, "updateTime": UPDATE_TIME, "timeZone": "America/Eirunepe", "etag": "ay1tXqeujLSsSd93n6uhlZwlxdNTOfG7El992Tsiz98" }, { "name": "projects/PROJECT_ID/locations/LOCATION/realms/realm3", "createTime": CREATE_TIME, "updateTime": UPDATE_TIME, "timeZone": "Asia/Anadyr", "etag": "cBxzV2AWK_zgijSmYA-oXPWv3giwhUzssoWcqjPZFuk" } ] }
gcloud
Google Cloud CLI を使用して、グローバル レルムまたはリージョン レルムを一覧表示できます。
グローバルとリージョンの両方のレルムを一覧表示するには、次のコマンドを実行します。
gcloud game servers realms list
特定のロケーションのレルムを一覧表示するには、次のコマンドを実行します。region は、global
または Google Cloud リージョンに置き換えます。
gcloud game servers realms list --location=region
レルムの詳細表示
Console
Google Cloud コンソールで、[レルムとクラスタ] ページに移動します。
フィルタ ボックスを使用して、レルムのリストをさまざまなプロパティでフィルタリングできます。
最後のテーブル列で、省略記号 more_vert をクリックして、[詳細を表示] を選択します。
gcloud
作成時間やタイムゾーンなど、レルムに関する詳細は、Google Cloud CLI を使用して取得できます。
グローバル レルムの詳細を表示するには、次のコマンドを実行します。realmID は、以前に作成したレルム ID に置き換えます。
gcloud game servers realms describe realmID
グローバルではないレルムを 1 つ以上作成した場合、特定のリージョンのレルムに関する詳細を表示できます。リージョン内のレルムの詳細を表示するには、realmID を以前に作成したレルム ID に置き換え、region をレルムが存在するリージョンに置き換えます。
gcloud game servers realms describe realmID --location=region
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: IAM 設定に載っている Google Cloud プロジェクト ID。
- LOCATION: レルムのリージョンまたは
global
。 - REALM_ID: レルムのユーザー定義の識別子。
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_ID/locations/LOCATION/realms/REALM_ID", "createTime": CREATE_TIME, "updateTime": UPDATE_TIME, "timeZone": "Asia/Anadyr", "etag": "cBxzV2AWK_zgijSmYA-oXPWv3giwhUzssoWcqjPZFuk" }
レルムの更新
gcloud
レルムのフィールドを更新するには、既存のレルムの realmID と region を置き換えてから gcloud game servers realms
update
コマンドを実行します。次のコマンドは、レルムのタイムゾーン値を更新します。tz を サポートされているタイムゾーンの値に置き換えます。
gcloud game servers realms update realmID --location=region \ --time-zone=tz --no-dry-run
他のレルム フィールドのフラグを確認するには、gcloud
リファレンスをご覧ください。
REST
次のサンプルでは、timeZone
フィールドを更新します。他のフィールドを更新するには、フィールド名を ?updateMask=
クエリ パラメータに追加して、JSON 本文をリクエストします。
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: IAM 設定に載っている Google Cloud プロジェクト ID。
- LOCATION: レルムのリージョン。
- REALM_ID: レルムのユーザー定義の識別子。
- TIME_ZONE: このレルムのタイムゾーン(例:
US/Eastern
)。このタイムゾーンに基づいて、スケーリング ポリシーなどの時間ベースのイベントのスケジュールを設定します。
JSON 本文をリクエストします。
{ "timeZone": "TIME_ZONE" }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.gaming.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_ID/locations/LOCATION/realms/REALM_ID", "verb": "update", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }