レルムの作成

このページでは、Game Servers レルムの作成、一覧表示、記述、更新を行う方法について説明します。レルムとは、プレーヤー数に対するゲームのレイテンシ要件に基づいた、Game Servers クラスタのユーザー定義グループです。

始める前に

始める前に、Game Servers の概要の主なコンセプトを理解しておくことをおすすめします。次のタスクも完了していることを確認してください。

  • Game Services API が有効になっていることを確認します。
  • Game Services API を有効にする
  • gcloud CLI がインストールされているシェルを選択するか、API クライアントを使用します。
  • Cloud Shell

    Cloud Shell を起動するには、次の手順に従います。

    1. Google Cloud Console に移動します。

      Google Cloud Console

    2. コンソールの右上隅にある [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 で使用するには、次の操作を行います。

    1. サービス アカウントを作成する。
    2. 秘密鍵を JSON ファイルとしてダウンロードします。
    3. 環境変数 GOOGLE_APPLICATION_CREDENTIALS を、認証情報を含む JSON ファイルのパスに設定します。この変数は現在のシェル セッションにのみ適用されるため、新しいセッションを開く場合は、変数を再度設定する必要があります。

    クライアント ライブラリ

    Google Cloud Game Servers は、クライアント ライブラリを使用して、プログラムで制御できます。ライブラリと認証の手順については、クライアント ライブラリの概要をご覧ください。

レルムの作成

レルムはグローバルまたはリージョンです。レルムに登録されたクラスタが、北米、南アメリカ、ヨーロッパ、アジアなど、さまざまな地理的ロケーションにまたがるリージョンのものであれば、グローバル レルムが適しています。クラスタが、ヨーロッパ西部などの同じリージョンにある場合は、リージョン レルムが適しています。リージョン間でネットワークが停止した場合、グローバル レルムは、すべてのリージョンでクラスタを管理できない場合があります。リージョン間のネットワーク停止から復元力を高めるには、関連するゲームサーバー クラスタに最も近いリージョンでリージョン レルムを作成します。

たとえば、ヨーロッパ西部のユーザーにサービスを提供するために、europe-west1europe-west2europe-west3 リージョンにクラスタを作成する場合、これらのリージョンの 1 つにリージョン レルムを作成できます。この構成を行うことで、ネットワークの停止により、世界の他のリージョンからこのリージョンに到達できなくなった場合でも、引き続きレルムによるクラスタ管理が可能になります。

レルムを作成する場所がわからない場合は、グローバル レルムとして作成できます。要件の変更に合わせて、管理が必要なクラスタに近いリージョンに新しいレルムを作成できます。最初にグローバル レルムからクラスタを削除および登録解除してから、新しいリージョン レルムにクラスタを登録することで、既存のクラスタを新しいリージョン レルムに移動できます。

Console

  1. Google Cloud コンソールで、[レルムとクラスタ] ページに移動します。

    Game Servers に移動

  2. [Create Realm] をクリックします。

  3. [Realm name] ボックスに、このレルムの一意の識別子を入力します。

  4. [タイムゾーン] ボックスで、このレルムのタイムゾーンを選択します。スケーリング ポリシーなどの時間ベースのイベントをスケジュールする場合は、このタイムゾーンが使用されます。

  5. [作成] をクリックします。

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

変数のプレースホルダは、次の説明のとおりです。

  • realmID は、このレルムに指定できる一意の ID です。
  • tz は、このレルムのタイムゾーンです。スケーリング ポリシーなどの時間ベースのイベントをスケジュールする場合は、このタイムゾーンが使用されます。
  • 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

  1. Google Cloud コンソールで、[レルムとクラスタ] ページに移動します。

    Game Servers に移動

  2. フィルタ ボックスを使用して、レルムのリストをさまざまなプロパティでフィルタリングできます。

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

  1. Google Cloud コンソールで、[レルムとクラスタ] ページに移動します。

    Game Servers に移動

  2. フィルタ ボックスを使用して、レルムのリストをさまざまなプロパティでフィルタリングできます。

  3. 最後のテーブル列で、省略記号 をクリックして、[詳細を表示] を選択します。

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

レルムのフィールドを更新するには、既存のレルムの realmIDregion を置き換えてから 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
}

次のステップ