将来の共有予約リクエストを作成する


このドキュメントでは、共有の将来の予約リクエストを作成する方法について説明します。

Google Cloud が共有の将来の予約リクエストを承認すると、リクエストで指定された開始時間に Compute Engine が複数のプロジェクトで共有される予約を自動的に作成します。これらの自動作成された共有予約は、将来の予約をホストするプロジェクト(オーナー プロジェクト)と将来の予約を共有するプロジェクト(コンシューマ プロジェクト)で VM と既存の予約を照合するために使用されます。自動作成共有予約の仕組みと使用方法の詳細については、共有予約の作成をご覧ください。

準備

  • まだインストールしていない場合は、次の作業を行ってください。
  • まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。

    このページのサンプルをどのように使うかに応じて、タブを選択してください。

    コンソール

    Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. デフォルトのリージョンとゾーンを設定します

    REST

    このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。

      Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init

必要なロール

将来の共有予約リクエストを作成するのに必要な権限を取得するには、プロジェクトに対する Compute の将来の予約ユーザーroles/compute.futureReservationUser)IAM ロールを付与するよう管理者に依頼してください。ロールの付与の詳細については、アクセス権の管理をご覧ください。

この事前定義ロールには、共有の将来の予約リクエストを作成するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

共有の将来の予約リクエストを作成するには、次の権限が必要です。

  • 将来の予約リクエストを作成するには: プロジェクトに対する compute.futureReservations.create 権限
  • Compute Engine で予約を自動作成できるようにする: プロジェクトに対する compute.reservations.create 権限
  • インスタンス テンプレートを指定する: インスタンス テンプレートに対する compute.instanceTemplates.useReadOnly 権限

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

制限事項

将来の予約に関する一般的な制限に加えて、共有の将来の予約リクエストを作成する場合、次の制限があります。

  • 共有予約リクエストを作成するために使用するプロジェクト(オーナー プロジェクト)は、共有予約オーナー プロジェクトcompute.sharedReservationsOwnerProjects)組織のポリシー管理者によるポリシーの制約の組織の許可リストに追加する必要があります。詳細については、Compute Engine 予約のドキュメントのプロジェクトに対して共有予約の作成と変更を許可または制限するをご覧ください。

  • 共有の将来の予約リクエストを作成したプロジェクトを別の組織に移動すると、共有の将来の予約は削除されます。プロジェクトは、共有予約オーナー プロジェクトcompute.sharedReservationsOwnerProjects)組織のポリシー制約から自動的には削除されませんが、必要であればこの制約をプロジェクトから削除できます。

  • 共有の将来の予約リクエストはそれぞれ、最大 100 個のコンシューマ プロジェクトと共有できます。

  • 組織ごとに、VM プロパティの一意の組み合わせごとに最大 100 個の共有の将来の予約リクエストを作成できます。

将来の共有予約リクエストを作成する。

このセクションでは、将来の共有予約リクエストを作成する方法について説明します。

将来の共有予約リクエストを作成した後、キャンセル、削除、変更できるのはオーナー プロジェクトのみです。ただし、自動作成された予約は、オーナー プロジェクトと、共有の将来の予約リクエストを共有するコンシューマ プロジェクトで使用できます。

自動作成された予約を将来の予約に使用するには、VM と予約のプロパティが正確に一致している必要があります。将来の予約リクエストを作成して予約をリクエストする VM のプロパティを指定するには、次のいずれかの方法を選択します。

  • 推奨: インスタンス テンプレートを指定する

    このセクションでは、既存のインスタンス テンプレートを使用して、共有の将来の予約リクエストのプロパティを定義する方法について説明します。インスタンス テンプレートを使用すると、将来の予約リクエストのプロパティと、同じ場所で自動作成された予約を使用できる VM のプロパティを定義できます。ただし、テンプレートはプロジェクト固有であるため、同じテンプレートを使用して、将来の予約リクエストを作成したプロジェクトの外部で自動作成された予約を使用できる VM を作成することはできません。将来の予約が共有されているプロジェクトでは、それらのプロジェクトに同じテンプレートを作成するか、プロパティを直接指定して VM を作成する必要があります。

  • プロパティを直接指定する

    このセクションでは、将来の共有予約リクエストのプロパティを直接定義する方法について説明します。この方法では、VM のプロパティと自動作成された予約のプロパティが正確に一致することを手動で確認する必要があります。一致しないプロパティは使用できません

将来の予約用に自動作成された予約は、プロパティが一致する VM で自動的に使用されます。VM が自動生成された予約を使用しないようにするには、予約を使用せずに VM を作成する方法をご覧ください。

インスタンス テンプレートを指定する

インスタンス テンプレートを指定して共有の将来の予約リクエストを作成する場合は、次の点に注意してください。

  • インスタンス テンプレートにはプロジェクト固有の設定が含まれているため、アクセスして使用できるのは同じプロジェクト内のインスタンス テンプレートに限られます。インスタンス テンプレートを指定して共有将来の予約リクエストを作成する場合は、各コンシューマーで自動的に作成された予約を使用するように、VM を作成する同様のテンプレートを作成するか、一致するプロパティを直接指定して VM を作成する必要があります。

  • 将来の予約リクエストは、インスタンス テンプレート内のリソースと同じリージョンとゾーンに作成する必要があります。インスタンス テンプレートで指定されているリージョン リソースゾーンリソース(マシンタイプ、Persistent Disk など)によって、テンプレートの使用はそれらのリソースが存在するロケーションに限定されます。たとえば、インスタンス テンプレートで us-central1-a ゾーンの既存の Persistent Disk が指定されている場合、同じゾーンに将来の予約リクエストを作成する必要があります。そうしないと、将来の予約リクエストは作成されません。

    既存のテンプレートで、特定のリージョンまたはゾーンにテンプレートをバインドするリソースが指定されているかどうかを確認するには、テンプレートの詳細を表示してリージョン リソースまたはゾーンリソースへの参照を探します。

  • 将来の予約用にプロビジョニングされ、自動的に作成された予約をコミットメントに関連付ける場合は、自動削除オプションを無効にする必要があります。詳細については、作成後の制限事項をご覧ください。

将来の予約リクエストを作成した後で、将来の予約リクエストを変更してテンプレートの VM プロパティをオーバーライドしたり、別のテンプレートを指定することはできません。その場合は、新しい将来の予約リクエストを作成する必要があります。

既存のインスタンス テンプレートを指定して共有タイプの将来の予約を作成するには、次のいずれかのオプションを選択します。

コンソール

  1. Google Cloud コンソールの [予約] ページに移動します。

    [予約] に移動

  2. [将来の予約] タブをクリックします。

  3. [将来の予約を作成] をクリックします。

    [将来の予約を作成] ページが開きます。

  4. [名前] に、将来の予約リクエストの名前を入力します。

  5. [接頭辞] に、名前の接頭辞を入力します。将来の予約リクエストから自動作成された各予約の名前は、この接頭辞で始まります。

  6. [リージョン] と [ゾーン] で、リソースを予約するリージョンとゾーンを選択します。

  7. [開始時刻] に、予約期間の開始時間を入力します。開始時間は、審査を受けるために将来の予約リクエストを送信した日時から 1 年以内にしてください。将来の予約がロック時間に入る前に十分な時間を確保できるように、開始時間の推奨値を指定します。

  8. [終了時刻] に、予約期間の終了時間を入力します。予約期間は 24 時間以上にする必要があります。

    [Duration summary] セクションで、予約期間の長さを確認できます。審査を受けるために送信した将来の予約リクエストが Google Cloud で承認される可能性を高めるために、必ず予約期間の推奨値を指定します。

  9. [共有タイプ] セクションで、次の操作を行います。

    1. 将来の共有予約リクエストを指定するには、[共有] をクリックします。

    2. [プロジェクトを追加] をクリックし、予約を共有する現在のプロジェクトの組織からプロジェクトを選択します。最大 100 個のプロジェクトを選択できます。

  10. [VM インスタンスの数] に、将来の予約リクエストで指定された期間、VM 構成、プロジェクトに予約する VM の合計数を入力します。

    開始時間の直前に、承認された将来の予約リクエストに対して作成する新しい予約の数を計算すると、Compute Engine はこの合計からリクエストに一致する既存の予約を差し引きます。詳細については、Compute Engine での予約済みリソースのカウントとプロビジョニングの方法をご覧ください。

  11. [マシンの構成] セクションで、次の操作を行います。

    1. 既存のインスタンス テンプレートを使用して VM のプロパティを指定するには、[インスタンス テンプレートを使用] を選択します。

    2. [インスタンス テンプレート] で、任意のインスタンス テンプレートを選択します。リージョン インスタンス テンプレートを指定する場合は、テンプレートのリージョンと同じリージョン内のリソースのみを予約できます。

  12. [自動生成された予約の自動削除日時] セクションで、次のいずれかを行います。

    • 将来の予約リクエスト用に自動作成された予約を Compute Engine が自動的に削除できるようにするには、次の手順を実施します。

      1. [自動削除を有効にする] をクリックしてオン(デフォルト)にします。

      2. 省略可: [自動削除日時] に、自動作成された予約を削除する日時を入力します。日時は予約期間の終了日より後にする必要があります。このフィールドを空のままにすると、自動作成された予約は予約期間の終了時間から 2 時間以内に削除されます。

    • 自動削除しない場合は、[自動削除を有効にする] をクリックしてオフにします。

  13. 将来の予約リクエストの作成を完了するには、次のいずれかを行います。

    • 将来の予約リクエストを作成して審査を受けるために Google Cloud に送信するには、[送信] をクリックします。

    • 将来の予約リクエストの下書きを作成するには、[下書きを保存] をクリックします。

[予約] ページが開きます。将来の予約リクエストの作成が完了するまでに 1 分ほどかかることがあります。

gcloud

インスタンス テンプレートを指定して共有の将来の予約リクエストを作成するには、--share-setting=projects フラグと --share-with フラグを指定して gcloud beta compute future-reservations create コマンドを使用します。

オプションのフラグを使用せずにインスタンス テンプレートを指定して将来の予約リクエストの下書きを作成し、予約期間の終了時に自動作成された予約を自動的に削除するには、次のコマンドを実行します。

gcloud beta compute future-reservations create FUTURE_RESERVATION_NAME \
    --auto-delete-auto-created-reservations \
    --share-setting=projects \
    --share-with=CONSUMER_PROJECT_IDS \
    --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \
    --start-time=START_TIME \
    --end-time=END_TIME \
    --total-count=TOTAL_COUNT \
    --zone=ZONE

次のように置き換えます。

  • FUTURE_RESERVATION_NAME: 将来の予約リクエストの名前。

  • MACHINE_TYPE: 各予約 VM に使用するマシンタイプ。

  • CONSUMER_PROJECT_IDS: この将来の予約リクエストの自動作成予約の使用を許可するプロジェクト ID のカンマ区切りリスト(例: project-1,project-2)。最大 100 個のプロジェクトを指定できます。これらのプロジェクトは、この将来の予約リクエストが作成されるプロジェクト(オーナー プロジェクト)と同じ組織に存在する必要があります。オーナー プロジェクトを指定しないでください。デフォルトでは、この将来の予約リクエストに自動作成された予約の使用が許可されています。
  • PROJECT_ID: リソースを予約するプロジェクトとインスタンス テンプレートが配置されているプロジェクトの ID。

  • LOCATION: インスタンス テンプレートのロケーション。次のいずれかの値を指定します。

    • リージョン インスタンス テンプレートの場合: regions/REGIONREGION は、インスタンス テンプレートが配置されているリージョンに置き換えます。リージョン インスタンス テンプレートを指定した場合、将来の予約リクエストはテンプレートのリージョンと同じリージョン内にのみ作成できます。

    • グローバル インスタンス テンプレートの場合: global

  • INSTANCE_TEMPLATE_NAME: 既存のインスタンス テンプレートの名前。

  • START_TIME: RFC 3339 タイムスタンプとしてフォーマットされた予約期間の開始時間。次の形式にする必要があります。

    YYYY-MM-DDTHH:MM:SSOFFSET
    

    次のように置き換えます。

    • YYYY-MM-DD: 4 桁の年、2 桁の月、その月の 2 桁の日をハイフン(-)で区切った日付。

    • HH:MM:SS: 24 時間制の 2 桁の時間、2 桁の分、2 桁の秒をコロン(:)で区切った時刻。

    • OFFSET: 協定世界時(UTC)のオフセット形式で示されるタイムゾーン。たとえば、太平洋標準時(PST)を使用する場合は -08:00 を指定します。オフセットを使用しない場合は、Z を指定します。

    開始時間は、審査を受けるために将来の予約リクエストを送信した日時から 1 年以内にしてください。将来の予約リクエストが承認された後またはロック時間になるまでに、キャンセル、削除、変更するために十分な時間を確保するには、開始時間の推奨値を指定してください。

  • END_TIME: 予約期間の終了日時(RFC 3339 タイムスタンプの形式)。予約期間は 24 時間以上にする必要があります。また、--end-time フラグを --duration=END_DURATION フラグに置き換えることもできます。END_DURATION は、予約期間の長さ(秒単位)に置き換えます。たとえば、1,209,600 秒(14 日)の場合は 1209600 を指定します。

    審査を受けるために送信した将来の予約リクエストが Google Cloud で承認される可能性を高めるため、推奨の最小期間を指定します。

  • TOTAL_COUNT: 予約する VM の合計数。承認された将来の予約のために作成する予約の数を計算するときに、Compute Engine はまず既存の予約と VM を確認します。承認された将来の予約に一致する既存の予約または VM がある場合は、合計数から既存の予約数が差し引かれ、Compute Engine が予約期間の開始時に予約する新しい VM の数が決定されます。

  • ZONE: リソースを予約するゾーン。

たとえば、ゾーン us-central1-a で、次のプロパティを持つ将来の予約リクエストの下書きを fr-02 という名前で作成するとします。

  • 予約期間は 2024 年 11 月 10 日(UTC)の深夜 0 時から 2024 年 12 月 10 日(UTC)の深夜 0 時までです。

  • 合計 80 台の VM。

  • リージョン us-central1 のリージョン インスタンス テンプレート。
  • 自動削除オプションが有効。自動作成された予約は、予約期間の終了時に削除されます。
  • 将来の予約リクエストは project-1 および project-2 と共有されます。

fr-02 を作成するには、次のコマンドを実行します。

gcloud beta compute future-reservations create fr-02 \
    --auto-delete-auto-created-reservations \
    --share-setting=projects \
    --share-with=project-1,project-2 \
    --source-instance-template=projects/example-project/regions/us-central1/instanceTemplates/example-template \
    --start-time=2024-11-10T00:00:00Z \
    --end-time=2024-12-10T00:00:00Z \
    --total-count=80 \
    --zone=us-central1-a

必要に応じて、以下の 1 つ以上の操作を行うことができます。

  • 自動作成された予約を予約期間の終了時間後に削除するには、次のいずれかの方法を選択します。

    • 自動作成された予約を予約期間の終了時間後の特定の日時に削除するには、--auto-created-reservations-delete-time フラグを指定します。

      gcloud beta compute future-reservations create FUTURE_RESERVATION_NAME \
          --auto-created-reservations-delete-time=AUTO_CREATED_RESERVATIONS_DELETE_TIME \
          --auto-delete-auto-created-reservations \
          --share-setting=projects \
          --share-with=CONSUMER_PROJECT_IDS \
          --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \
          --start-time=START_TIME \
          --end-time=END_TIME \
          --total-count=TOTAL_COUNT \
          --zone=ZONE
      

      AUTO_CREATED_RESERVATIONS_DELETE_TIME は、RFC 3339 タイムスタンプ形式の日時に置き換えます。

    • 自動作成された予約を予約期間の終了時間から特定の時間が経過した後に削除するには、--auto-created-reservations-duration フラグを指定します。

      gcloud beta compute future-reservations create FUTURE_RESERVATION_NAME \
          --auto-created-reservations-duration=DURATION_BEFORE_DELETE \
          --auto-delete-auto-created-reservations \
          --share-setting=projects \
          --share-with=CONSUMER_PROJECT_IDS \
          --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \
          --start-time=START_TIME \
          --end-time=END_TIME \
          --total-count=TOTAL_COUNT \
          --zone=ZONE
      

      DURATION_BEFORE_DELETE は、期間(日、時、分、秒)に置き換えます。たとえば、30 分の場合は 30m を指定し、1 日と 2 時間 3 分 4 秒の場合は 1d2h3m4s を指定します。

  • 自動作成された予約の自動削除オプションを無効にするには、--auto-delete-auto-created-reservations フラグを --no-auto-delete-auto-created-reservations フラグに置き換えます。

    gcloud beta compute future-reservations create FUTURE_RESERVATION_NAME \
        --no-auto-delete-auto-created-reservations \
        --share-setting=projects \
        --share-with=CONSUMER_PROJECT_IDS \
        --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \
        --start-time=START_TIME \
        --end-time=END_TIME \
        --total-count=TOTAL_COUNT \
        --zone=ZONE
    
  • 自動作成予約の名前の接頭辞を指定するには、--name-prefix フラグを含めます。

    gcloud beta compute future-reservations create FUTURE_RESERVATION_NAME \
        --auto-delete-auto-created-reservations \
        --name-prefix=NAME_PREFIX \
        --share-setting=projects \
        --share-with=CONSUMER_PROJECT_IDS \
        --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \
        --start-time=START_TIME \
        --end-time=END_TIME \
        --total-count=TOTAL_COUNT \
        --zone=ZONE
    

    NAME_PREFIX は、自動作成される各予約の名前の接頭辞に置き換えます。この将来の予約リクエスト用に自動作成された予約を見つけやすくするため、一意の名前の接頭辞を指定することをおすすめします。

  • 作成後すぐに審査のために将来の予約リクエストを gcloud CLI に送信するには、--planning-status フラグを SUBMITTED に設定します。審査のために将来の予約リクエストを送信すると、計画ステータスを DRAFT に戻すことはできません。また、gcloud CLI が承認または拒否するまで、将来の予約リクエストを変更することはできません。

    gcloud beta compute future-reservations create FUTURE_RESERVATION_NAME \
        --auto-delete-auto-created-reservations \
        --planning-status=SUBMITTED \
        --share-setting=projects \
        --share-with=CONSUMER_PROJECT_IDS \
        --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \
        --start-time=START_TIME \
        --end-time=END_TIME \
        --total-count=TOTAL_COUNT \
        --zone=ZONE
    

REST

インスタンス テンプレートを指定して共有の将来の予約リクエストを作成するには、beta.futureReservations.insert メソッドPOST リクエストを送信します。

オプションのフィールドを含めずにインスタンス テンプレートを指定して、将来の予約リクエストの下書きを作成するには、次のように POST リクエストを送信します。

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations

{
  "autoDeleteAutoCreatedReservations": AUTO_DELETE_AUTO_CREATED_RESERVATIONS,
  "name": "FUTURE_RESERVATION_NAME",
  "shareSettings": {
    "projects": [
      "CONSUMER_PROJECT_ID_1",
      "CONSUMER_PROJECT_ID_2"
    ],
    "shareType": "SPECIFIC_PROJECTS"
  },
  "specificSkuProperties": { 
    "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME",
    "totalCount": TOTAL_COUNT
  },
  "timeWindow": {
    "startTime": "START_TIME",
    "endTime": "END_TIME"
  }
}

次のように置き換えます。

  • PROJECT_ID: リソースを予約するプロジェクトとインスタンス テンプレートが配置されているプロジェクトの ID。

  • ZONE: リソースを予約するゾーン。

  • AUTO_DELETE_AUTO_CREATED_RESERVATIONS: このフィールドを true に設定すると、将来の予約用に自動作成された予約は、予約期間の終了時間から 2 時間以内に Compute Engine によって自動的に削除されます。自動作成された予約をコミットメントに関連付ける場合は、このフィールドを false に設定します。

  • CONSUMER_PROJECT_ID_1CONSUMER_PROJECT_ID_2: この将来の予約リクエストを共有できるプロジェクトのプロジェクト ID。最大 100 個のプロジェクトを指定できます。これらのプロジェクトは、この将来の予約リクエストが作成されるプロジェクト(オーナー プロジェクト)と同じ組織に存在する必要があります。オーナー プロジェクトを指定しないでください。デフォルトでは、この将来の予約リクエストに自動作成された予約の使用が許可されています。
  • LOCATION: インスタンス テンプレートのロケーション。次のいずれかの値を指定します。

    • リージョン インスタンス テンプレートの場合: regions/REGIONREGION は、インスタンス テンプレートが配置されているリージョンに置き換えます。リージョン インスタンス テンプレートを指定した場合、将来の予約リクエストはテンプレートのリージョンと同じリージョン内にのみ作成できます。

    • グローバル インスタンス テンプレートの場合: global

  • INSTANCE_TEMPLATE_NAME: 既存のインスタンス テンプレートの名前。

  • TOTAL_COUNT: 予約する VM の合計数。承認された将来の予約のために作成する予約の数を計算するときに、Compute Engine はまず既存の予約と VM を確認します。承認された将来の予約に一致する既存の予約または VM がある場合は、合計数から既存の予約数が差し引かれ、Compute Engine が予約期間の開始時に予約する新しい VM の数が決定されます。

  • START_TIME: RFC 3339 タイムスタンプとしてフォーマットされた予約期間の開始時間。次の形式にする必要があります。

    YYYY-MM-DDTHH:MM:SSOFFSET
    

    次のように置き換えます。

    • YYYY-MM-DD: 4 桁の年、2 桁の月、その月の 2 桁の日をハイフン(-)で区切った日付。

    • HH:MM:SS: 24 時間制の 2 桁の時間、2 桁の分、2 桁の秒をコロン(:)で区切った時刻。

    • OFFSET: 協定世界時(UTC)のオフセット形式で示されるタイムゾーン。たとえば、太平洋標準時(PST)を使用する場合は -08:00 を指定します。オフセットを使用しない場合は、Z を指定します。

    開始時間は、審査を受けるために将来の予約リクエストを送信した日時から 1 年以内にしてください。将来の予約リクエストが承認された後またはロック時間になるまでに、キャンセル、削除、変更するために十分な時間を確保するには、開始時間の推奨値を指定してください。

  • END_TIME: 予約期間の終了日時(RFC 3339 タイムスタンプの形式)。予約期間は 24 時間以上にする必要があります。または、endTime フィールドを duration フィールドに置き換えて、予約期間の開始時間から特定の期間を指定することもできます。

    "duration": {
      "seconds": END_DURATION
    }
    

    END_DURATION を期間(秒単位)に置き換えます。たとえば、1,209,600 秒(14 日)の場合は 1209600 を指定します。

    審査を受けるために送信した将来の予約リクエストが Google Cloud で承認される可能性を高めるために、必ず予約期間の推奨値のいずれかを指定します。

たとえば、ゾーン us-central1-a で、次のプロパティを持つ将来の予約リクエストの下書きを fr-02 という名前で作成するとします。

  • 予約期間は 2024 年 11 月 10 日(UTC)の深夜 0 時から 2024 年 12 月 10 日(UTC)の深夜 0 時までです。

  • 合計 80 台の VM。

  • リージョン us-central1 のリージョン インスタンス テンプレート。
  • 自動削除オプションが有効。自動作成された予約は、予約期間の終了時に削除されます。
  • 将来の予約リクエストは project-1 および project-2 と共有されます。

fr-02 を作成するには、次のように POST リクエストを送信します。

POST https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/futureReservations

{
  "autoDeleteAutoCreatedReservations": true,
  "name": "fr-02",
  "specificSkuProperties": { 
    "sourceInstanceTemplate": "projects/example-project/regions/us-central1/instanceTemplates/example-template",
    "totalCount": 80
  },
  "shareSettings": {
    "projects": [
      "project-1",
      "project-2"
    ],
    "shareType": "SPECIFIC_PROJECTS"
  },
  "timeWindow": {
    "startTime": "2024-11-10T00:00:00Z",
    "endTime": "2024-12-10T00:00:00Z"
  }
}

必要に応じて、以下の 1 つ以上の操作を行うことができます。

  • 自動作成予約の名前の接頭辞を指定するには、namePrefix フィールドを含めます。

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations
    
    {
      "autoDeleteAutoCreatedReservations": AUTO_DELETE_AUTO_CREATED_RESERVATIONS,
      "name": "FUTURE_RESERVATION_NAME",
      "namePrefix": "NAME_PREFIX",
      "shareSettings": {
        "projects": [
          "CONSUMER_PROJECT_ID_1",
          "CONSUMER_PROJECT_ID_2"
        ],
        "shareType": "SPECIFIC_PROJECTS"
      },
      "specificSkuProperties": { 
        "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME",
        "totalCount": TOTAL_COUNT
      },
      "timeWindow": {
        "startTime": "START_TIME",
        "endTime": "END_TIME"
      }
    }
    

    NAME_PREFIX は、自動作成された各予約の名前の接頭辞に置き換えます。この将来の予約リクエスト用に自動作成された予約を見つけやすくするため、一意の名前の接頭辞を指定することをおすすめします。

  • 作成後すぐに審査のために将来の予約リクエストを gcloud CLI に送信するには、planningStatus フィールドを SUBMITTED に設定します。審査のために将来の予約リクエストを送信すると、計画ステータスを DRAFT に戻すことはできません。また、gcloud CLI が承認または拒否するまで、将来の予約リクエストを変更することはできません。

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations
    
    {
      "autoDeleteAutoCreatedReservations": AUTO_DELETE_AUTO_CREATED_RESERVATIONS,
      "name": "FUTURE_RESERVATION_NAME",
      "planningStatus": "SUBMITTED",
      "shareSettings": {
        "projects": [
          "CONSUMER_PROJECT_ID_1",
          "CONSUMER_PROJECT_ID_2"
        ],
        "shareType": "SPECIFIC_PROJECTS"
      },
      "specificSkuProperties": { 
        "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME",
        "totalCount": TOTAL_COUNT
      },
      "timeWindow": {
        "startTime": "START_TIME",
        "endTime": "END_TIME"
      }
    }
    
  • 自動作成された予約を予約期間の終了時間後に削除するには、次のいずれかの方法を選択します。

    • 自動作成された予約を予約期間の終了後の特定の時間に削除するには、autoDeleteAutoCreatedReservationstrue に設定し、autoCreatedReservationsDeleteTime フィールドを含めます。

      POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations
      
      {
        "autoCreatedReservationsDeleteTime": "DELETE_TIME",
        "autoDeleteAutoCreatedReservations": true,
        "name": "FUTURE_RESERVATION_NAME",
        "shareSettings": {
          "projects": [
            "CONSUMER_PROJECT_ID_1",
            "CONSUMER_PROJECT_ID_2"
          ],
          "shareType": "SPECIFIC_PROJECTS"
        },
        "specificSkuProperties": { 
          "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME",
          "totalCount": TOTAL_COUNT
        },
        "timeWindow": {
          "startTime": "START_TIME",
          "endTime": "END_TIME"
        }
      }
      

      DELETE_TIME を、自動作成された予約が Compute Engine によって削除される日時に置き換えます。日時は RFC 3339 タイムスタンプの形式で指定する必要があります。

    • 自動作成された予約を予約期間の開始時間から特定の時間が経過した後に削除するには、autoDeleteAutoCreatedReservationstrue に設定し、autoCreatedReservationsDuration フィールドを含めます。

      POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations
      
      {
        "autoCreatedReservationsDuration": {
          "seconds": "DURATION_BEFORE_DELETE"
        },
        "autoDeleteAutoCreatedReservations": true,
        "name": "FUTURE_RESERVATION_NAME",
        "shareSettings": {
          "projects": [
            "CONSUMER_PROJECT_ID_1",
            "CONSUMER_PROJECT_ID_2"
          ],
          "shareType": "SPECIFIC_PROJECTS"
        },
        "specificSkuProperties": { 
          "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME",
          "totalCount": TOTAL_COUNT
        },
        "timeWindow": {
          "startTime": "START_TIME",
          "endTime": "END_TIME"
        }
      }
      

      DURATION_BEFORE_DELETE は期間(秒単位)に置き換えます。たとえば、604,800 秒(7 日)の場合は 604800 を指定します。

VM のプロパティを直接指定する

将来の予約用にプロビジョニングされ、自動的に作成された予約をコミットメントに関連付ける場合は、自動削除オプションを無効にする必要があります。詳細については、作成後の制限事項をご覧ください。

プロパティを直接指定して共有の将来の予約リクエストを作成するには、次のいずれかのオプションを選択します。

コンソール

  1. Google Cloud コンソールの [予約] ページに移動します。

    [予約] に移動

  2. [将来の予約] タブをクリックします。

  3. [将来の予約を作成] をクリックします。

    [将来の予約を作成] ページが開きます。

  4. [名前] に、将来の予約リクエストの名前を入力します。

  5. [接頭辞] に、名前の接頭辞を入力します。将来の予約リクエストから自動作成された各予約の名前は、この接頭辞で始まります。

  6. [リージョン] と [ゾーン] で、リソースを予約するリージョンとゾーンを選択します。

  7. [開始時刻] に、予約期間の開始時間を入力します。開始時間は、審査を受けるために将来の予約リクエストを送信した日時から 1 年以内にしてください。将来の予約がロック時間に入る前に十分な時間を確保できるように、開始時間の推奨値を指定します。

  8. [終了時刻] に、予約期間の終了時間を入力します。予約期間は 24 時間以上にする必要があります。

    [Duration summary] セクションで、予約期間の長さを確認できます。審査を受けるために送信した将来の予約リクエストが Google Cloud で承認される可能性を高めるために、必ず予約期間の推奨値を指定します。

  9. [共有タイプ] セクションで、次の操作を行います。

    1. 将来の共有予約リクエストを指定するには、[共有] をクリックします。

    2. [プロジェクトを追加] をクリックし、予約を共有する現在のプロジェクトの組織からプロジェクトを選択します。最大 100 個のプロジェクトを選択できます。

  10. [VM インスタンスの数] に、将来の予約リクエストで指定された期間、VM 構成、プロジェクトに予約する VM の合計数を入力します。

    開始時間の直前に、承認された将来の予約リクエストに対して作成する新しい予約の数を計算すると、Compute Engine はこの合計からリクエストに一致する既存の予約を差し引きます。詳細については、Compute Engine での予約済みリソースのカウントとプロビジョニングの方法をご覧ください。

  11. [マシンの構成] セクションで、次の操作を行います。

    1. [マシンタイプを指定] を選択します(まだ選択されていない場合)。

    2. 予約済み VM に使用するマシンタイプを指定します。

  12. [自動生成された予約の自動削除日時] セクションで、次のいずれかを行います。

    • 将来の予約リクエスト用に自動作成された予約を Compute Engine が自動的に削除できるようにするには、次の手順を実施します。

      1. [自動削除を有効にする] をクリックしてオン(デフォルト)にします。

      2. 省略可: [自動削除日時] に、自動作成された予約を削除する日時を入力します。日時は予約期間の終了日より後にする必要があります。このフィールドを空のままにすると、自動作成された予約は予約期間の終了時間から 2 時間以内に削除されます。

    • 自動削除しない場合は、[自動削除を有効にする] をクリックしてオフにします。

  13. 将来の予約リクエストの作成を完了するには、次のいずれかを行います。

    • 将来の予約リクエストを作成して審査を受けるために Google Cloud に送信するには、[送信] をクリックします。

    • 将来の予約リクエストの下書きを作成するには、[下書きを保存] をクリックします。

[予約] ページが開きます。将来の予約リクエストの作成が完了するまでに 1 分ほどかかることがあります。

gcloud

プロパティを直接指定して将来の共有予約リクエストを作成するには、--share-setting=projects フラグと --share-with フラグを指定して gcloud beta compute future-reservations create コマンドを使用します。

オプションのフラグを使用せずにプロパティを直接指定して将来の予約リクエストの下書きを作成し、予約期間の終了時に自動作成された予約を自動的に削除するには、次のコマンドを実行します。

gcloud beta compute future-reservations create FUTURE_RESERVATION_NAME \
    --auto-delete-auto-created-reservations \
    --machine-type=MACHINE_TYPE \
    --share-setting=projects \
    --share-with=CONSUMER_PROJECT_IDS \
    --start-time=START_TIME \
    --end-time=END_TIME \
    --total-count=TOTAL_COUNT \
    --zone=ZONE

次のように置き換えます。

  • FUTURE_RESERVATION_NAME: 将来の予約リクエストの名前。

  • MACHINE_TYPE: 各予約 VM に使用するマシンタイプ。

  • CONSUMER_PROJECT_IDS: この将来の予約リクエストの自動作成予約の使用を許可するプロジェクト ID のカンマ区切りリスト(例: project-1,project-2)。最大 100 個のプロジェクトを指定できます。これらのプロジェクトは、この将来の予約リクエストが作成されるプロジェクト(オーナー プロジェクト)と同じ組織に存在する必要があります。オーナー プロジェクトを指定しないでください。デフォルトでは、この将来の予約リクエストに自動作成された予約の使用が許可されています。
  • START_TIME: RFC 3339 タイムスタンプとしてフォーマットされた予約期間の開始時間。次の形式にする必要があります。

    YYYY-MM-DDTHH:MM:SSOFFSET
    

    次のように置き換えます。

    • YYYY-MM-DD: 4 桁の年、2 桁の月、その月の 2 桁の日をハイフン(-)で区切った日付。

    • HH:MM:SS: 24 時間制の 2 桁の時間、2 桁の分、2 桁の秒をコロン(:)で区切った時刻。

    • OFFSET: 協定世界時(UTC)のオフセット形式で示されるタイムゾーン。たとえば、太平洋標準時(PST)を使用する場合は -08:00 を指定します。オフセットを使用しない場合は、Z を指定します。

    開始時間は、審査を受けるために将来の予約リクエストを送信した日時から 1 年以内にしてください。将来の予約リクエストが承認された後またはロック時間になるまでに、キャンセル、削除、変更するために十分な時間を確保するには、開始時間の推奨値を指定してください。

  • END_TIME: 予約期間の終了日時(RFC 3339 タイムスタンプの形式)。予約期間は 24 時間以上にする必要があります。また、--end-time フラグを --duration=END_DURATION フラグに置き換えることもできます。END_DURATION は、予約期間の長さ(秒単位)に置き換えます。たとえば、1,209,600 秒(14 日)の場合は 1209600 を指定します。

    審査を受けるために送信した将来の予約リクエストが Google Cloud で承認される可能性を高めるため、推奨の最小期間を指定します。

  • TOTAL_COUNT: 予約する VM の合計数。承認された将来の予約のために作成する予約の数を計算するときに、Compute Engine はまず既存の予約と VM を確認します。承認された将来の予約に一致する既存の予約または VM がある場合は、合計数から既存の予約数が差し引かれ、Compute Engine が予約期間の開始時に予約する新しい VM の数が決定されます。

  • ZONE: リソースを予約するゾーン。

たとえば、ゾーン us-central1-a で、次のプロパティを持つ将来の予約リクエストの下書きを fr-02 という名前で作成するとします。

  • 予約期間は 2024 年 11 月 10 日(UTC)の深夜 0 時から 2024 年 12 月 10 日(UTC)の深夜 0 時までです。

  • 合計 80 台の VM。

  • 4 個の vCPU を備えた事前定義の N2 マシンタイプ。
  • 自動削除オプションが有効。自動作成された予約は、予約期間の終了時に削除されます。
  • 将来の予約リクエストは project-1 および project-2 と共有されます。

fr-02 を作成するには、次のコマンドを実行します。

gcloud beta compute future-reservations create fr-02 \
    --auto-delete-auto-created-reservations \
    --machine-type=n2-standard-4 \
    --share-setting=projects \
    --share-with=project-1,project-2 \
    --start-time=2024-11-10T00:00:00Z \
    --end-time=2024-12-10T00:00:00Z \
    --total-count=80 \
    --zone=us-central1-a

必要に応じて、以下の 1 つ以上の操作を行うことができます。

  • 予約済みの N1 VM に GPU を接続するには、--accelerator フラグを指定します。

    gcloud beta compute future-reservations create FUTURE_RESERVATION_NAME \
        --accelerator=NUMBER_OF_ACCELERATORS,type=ACCELERATOR_TYPE \
        --auto-delete-auto-created-reservations \
        --machine-type=MACHINE_TYPE \
        --share-setting=projects \
        --share-with=CONSUMER_PROJECT_IDS \
        --start-time=START_TIME \
        --end-time=END_TIME \
        --total-count=TOTAL_COUNT \
        --zone=ZONE
    

    次のように置き換えます。

    • NUMBER_OF_ACCELERATORS: 予約済みの VM 1 台あたりに追加する GPU の数。

    • ACCELERATOR_TYPE: N1 VM でサポートされている GPU モデル。エラーを回避するには、選択した GPU モデルが、将来の予約リクエストを作成するゾーンで使用できることを確認してください。

  • 自動作成された予約を予約期間の終了時間後に削除するには、次のいずれかの方法を選択します。

    • 自動作成された予約を予約期間の終了時間後の特定の日時に削除するには、--auto-created-reservations-delete-time フラグを指定します。

      gcloud beta compute future-reservations create FUTURE_RESERVATION_NAME \
          --auto-created-reservations-delete-time=AUTO_CREATED_RESERVATIONS_DELETE_TIME \
          --auto-delete-auto-created-reservations \
          --machine-type=MACHINE_TYPE \
          --share-setting=projects \
          --share-with=CONSUMER_PROJECT_IDS \
          --start-time=START_TIME \
          --end-time=END_TIME \
          --total-count=TOTAL_COUNT \
          --zone=ZONE
      

      AUTO_CREATED_RESERVATIONS_DELETE_TIME は、RFC 3339 タイムスタンプ形式の日時に置き換えます。

    • 自動作成された予約を予約期間の終了時間から特定の時間が経過した後に削除するには、--auto-created-reservations-duration フラグを指定します。

      gcloud beta compute future-reservations create FUTURE_RESERVATION_NAME \
          --auto-created-reservations-duration=DURATION_BEFORE_DELETE \
          --auto-delete-auto-created-reservations \
          --machine-type=MACHINE_TYPE \
          --share-setting=projects \
          --share-with=CONSUMER_PROJECT_IDS \
          --start-time=START_TIME \
          --end-time=END_TIME \
          --total-count=TOTAL_COUNT \
          --zone=ZONE
      

      DURATION_BEFORE_DELETE は、期間(日、時、分、秒)に置き換えます。たとえば、30 分の場合は 30m を指定し、1 日と 2 時間 3 分 4 秒の場合は 1d2h3m4s を指定します。

  • 自動作成された予約の自動削除オプションを無効にするには、--auto-delete-auto-created-reservations フラグを --no-auto-delete-auto-created-reservations フラグに置き換えます。

    gcloud beta compute future-reservations create FUTURE_RESERVATION_NAME \
        --no-auto-delete-auto-created-reservations \
        --machine-type=MACHINE_TYPE \
        --share-setting=projects \
        --share-with=CONSUMER_PROJECT_IDS \
        --start-time=START_TIME \
        --end-time=END_TIME \
        --total-count=TOTAL_COUNT \
        --zone=ZONE
    
  • 予約する各 VM に 1 つ以上のローカル SSD ディスクを追加するには、1 つ以上の --local-ssd フラグを指定します。ローカル SSD ディスクは 24 個まで指定できます。各ローカル SSD ディスクは 375 GB です。

    たとえば、将来の予約リクエストの下書きを作成するときに 2 つのローカル SSD ディスクを指定するには、次のように 2 つの --local-ssd フラグを指定します。

    gcloud beta compute future-reservations create FUTURE_RESERVATION_NAME \
        --auto-delete-auto-created-reservations \
        --local-ssd=size=375,interface=INTERFACE_1 \
        --local-ssd=size=375,interface=INTERFACE_2 \
        --machine-type=MACHINE_TYPE \
        --share-setting=projects \
        --share-with=CONSUMER_PROJECT_IDS \
        --start-time=START_TIME \
        --end-time=END_TIME \
        --total-count=TOTAL_COUNT \
        --zone=ZONE
    

    INTERFACE_1INTERFACE_2 は、ローカル SSD ディスクで使用するインターフェースのタイプに置き換えます。

    予約済み VM に指定したマシンタイプが、選択したディスク インターフェースをサポートしていることを確認します。そうしないと、将来の予約リクエストは作成されません。詳細については、ディスク インターフェースの選択方法をご覧ください。

  • 予約する VM でゾーンのデフォルトの CPU プラットフォームではなく、特定の最小 CPU プラットフォームを使用するには、--min-cpu-platform フラグを指定します。

    gcloud beta compute future-reservations create FUTURE_RESERVATION_NAME \
        --auto-delete-auto-created-reservations \
        --machine-type=MACHINE_TYPE \
        --min-cpu-platform=MIN_CPU_PLATFORM \
        --share-setting=projects \
        --share-with=CONSUMER_PROJECT_IDS \
        --start-time=START_TIME \
        --end-time=END_TIME \
        --total-count=TOTAL_COUNT \
        --zone=ZONE
    

    MIN_CPU_PLATFORM は、最小 CPU プラットフォームに置き換えます。リソースを予約するゾーンで CPU プラットフォームが使用可能であることを確認するには、ゾーンごとに使用可能な CPU プラットフォームを表示します。

  • 自動作成予約の名前の接頭辞を指定するには、--name-prefix フラグを含めます。

    gcloud beta compute future-reservations create FUTURE_RESERVATION_NAME \
        --auto-delete-auto-created-reservations \
        --machine-type=MACHINE_TYPE \
        --name-prefix=NAME_PREFIX \
        --share-setting=projects \
        --share-with=CONSUMER_PROJECT_IDS \
        --start-time=START_TIME \
        --end-time=END_TIME \
        --total-count=TOTAL_COUNT \
        --zone=ZONE
    

    NAME_PREFIX は、自動作成される各予約の名前の接頭辞に置き換えます。この将来の予約リクエスト用に自動作成された予約を見つけやすくするため、一意の名前の接頭辞を指定することをおすすめします。

  • 作成後すぐに審査のために将来の予約リクエストを gcloud CLI に送信するには、--planning-status フラグを SUBMITTED に設定します。審査のために将来の予約リクエストを送信すると、計画ステータスを DRAFT に戻すことはできません。また、gcloud CLI が承認または拒否するまで、将来の予約リクエストを変更することはできません。

    gcloud beta compute future-reservations create FUTURE_RESERVATION_NAME \
        --auto-delete-auto-created-reservations \
        --machine-type=MACHINE_TYPE \
        --planning-status=SUBMITTED \
        --share-setting=projects \
        --share-with=CONSUMER_PROJECT_IDS \
        --start-time=START_TIME \
        --end-time=END_TIME \
        --total-count=TOTAL_COUNT \
        --zone=ZONE
    

REST

プロパティを直接指定して将来の共有予約リクエストを作成するには、beta.futureReservations.insert メソッドPOST リクエストを送信します。

オプションのフィールドを使用せずにプロパティを直接指定し、将来の予約リクエストの下書きを作成するには、次のように POST リクエストを送信します。

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations

{
  "autoDeleteAutoCreatedReservations": AUTO_DELETE_AUTO_CREATED_RESERVATIONS,
  "name": "FUTURE_RESERVATION_NAME",
  "shareSettings": {
    "projects": [
      "CONSUMER_PROJECT_ID_1",
      "CONSUMER_PROJECT_ID_2"
    ],
    "shareType": "SPECIFIC_PROJECTS"
  },
  "specificSkuProperties": { 
    "instanceProperties": {
      "machineType": "MACHINE_TYPE"
    },
    "totalCount": TOTAL_COUNT
  },
  "timeWindow": {
    "startTime": "START_TIME",
    "endTime": "END_TIME"
  }
}

次のように置き換えます。

  • PROJECT_ID: リソースを予約するプロジェクトの ID。

  • ZONE: リソースを予約するゾーン。

  • AUTO_DELETE_AUTO_CREATED_RESERVATIONS: このフィールドを true に設定すると、将来の予約用に自動作成された予約は、予約期間の終了時間から 2 時間以内に Compute Engine によって自動的に削除されます。自動作成された予約をコミットメントに関連付ける場合は、このフィールドを false に設定します。

  • CONSUMER_PROJECT_ID_1CONSUMER_PROJECT_ID_2: この将来の予約リクエストを共有できるプロジェクトのプロジェクト ID。最大 100 個のプロジェクトを指定できます。これらのプロジェクトは、この将来の予約リクエストが作成されるプロジェクト(オーナー プロジェクト)と同じ組織に存在する必要があります。オーナー プロジェクトを指定しないでください。デフォルトでは、この将来の予約リクエストに自動作成された予約の使用が許可されています。
  • TOTAL_COUNT: 予約する VM の合計数。承認された将来の予約のために作成する予約の数を計算するときに、Compute Engine はまず既存の予約と VM を確認します。承認された将来の予約に一致する既存の予約または VM がある場合は、合計数から既存の予約数が差し引かれ、Compute Engine が予約期間の開始時に予約する新しい VM の数が決定されます。

  • START_TIME: RFC 3339 タイムスタンプとしてフォーマットされた予約期間の開始時間。次の形式にする必要があります。

    YYYY-MM-DDTHH:MM:SSOFFSET
    

    次のように置き換えます。

    • YYYY-MM-DD: 4 桁の年、2 桁の月、その月の 2 桁の日をハイフン(-)で区切った日付。

    • HH:MM:SS: 24 時間制の 2 桁の時間、2 桁の分、2 桁の秒をコロン(:)で区切った時刻。

    • OFFSET: 協定世界時(UTC)のオフセット形式で示されるタイムゾーン。たとえば、太平洋標準時(PST)を使用する場合は -08:00 を指定します。オフセットを使用しない場合は、Z を指定します。

    開始時間は、審査を受けるために将来の予約リクエストを送信した日時から 1 年以内にしてください。将来の予約リクエストが承認された後またはロック時間になるまでに、キャンセル、削除、変更するために十分な時間を確保するには、開始時間の推奨値を指定してください。

  • END_TIME: 予約期間の終了日時(RFC 3339 タイムスタンプの形式)。予約期間は 24 時間以上にする必要があります。または、endTime フィールドを duration フィールドに置き換えて、予約期間の開始時間から特定の期間を指定することもできます。

    "duration": {
      "seconds": END_DURATION
    }
    

    END_DURATION を期間(秒単位)に置き換えます。たとえば、1,209,600 秒(14 日)の場合は 1209600 を指定します。

    審査を受けるために送信した将来の予約リクエストが Google Cloud で承認される可能性を高めるために、必ず予約期間の推奨値のいずれかを指定します。

たとえば、ゾーン us-central1-a で、次のプロパティを持つ将来の予約リクエストの下書きを fr-02 という名前で作成するとします。

  • 予約期間は 2024 年 11 月 10 日(UTC)の深夜 0 時から 2024 年 12 月 10 日(UTC)の深夜 0 時までです。

  • 合計 80 台の VM。

  • 4 個の vCPU を備えた事前定義の N2 マシンタイプ。
  • 自動削除オプションが有効。自動作成された予約は、予約期間の終了時に削除されます。
  • 将来の予約リクエストは project-1 および project-2 と共有されます。

fr-02 を作成するには、次のように POST リクエストを送信します。

POST https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/futureReservations

{
  "autoDeleteAutoCreatedReservations": true,
  "name": "fr-02",
  "specificSkuProperties": { 
    "instanceProperties": {
      "machineType": "n2-standard-4"
    },
    "totalCount": 80
  },
  "shareSettings": {
    "projects": [
      "project-1",
      "project-2"
    ],
    "shareType": "SPECIFIC_PROJECTS"
  },
  "timeWindow": {
    "startTime": "2024-11-10T00:00:00Z",
    "endTime": "2024-12-10T00:00:00Z"
  }
}

必要に応じて、以下の 1 つ以上の操作を行うことができます。

  • 自動作成予約の名前の接頭辞を指定するには、namePrefix フィールドを含めます。

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations
    
    {
      "autoDeleteAutoCreatedReservations": AUTO_DELETE_AUTO_CREATED_RESERVATIONS,
      "name": "FUTURE_RESERVATION_NAME",
      "namePrefix": "NAME_PREFIX",
      "shareSettings": {
        "projects": [
          "CONSUMER_PROJECT_ID_1",
          "CONSUMER_PROJECT_ID_2"
        ],
        "shareType": "SPECIFIC_PROJECTS"
      },
      "specificSkuProperties": { 
        "instanceProperties": {
          "machineType": "MACHINE_TYPE"
        },
        "totalCount": TOTAL_COUNT
      },
      "timeWindow": {
        "startTime": "START_TIME",
        "endTime": "END_TIME"
      }
    }
    

    NAME_PREFIX は、自動作成された各予約の名前の接頭辞に置き換えます。この将来の予約リクエスト用に自動作成された予約を見つけやすくするため、一意の名前の接頭辞を指定することをおすすめします。

  • 作成後すぐに審査のために将来の予約リクエストを gcloud CLI に送信するには、planningStatus フィールドを SUBMITTED に設定します。審査のために将来の予約リクエストを送信すると、計画ステータスを DRAFT に戻すことはできません。また、gcloud CLI が承認または拒否するまで、将来の予約リクエストを変更することはできません。

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations
    
    {
      "autoDeleteAutoCreatedReservations": AUTO_DELETE_AUTO_CREATED_RESERVATIONS,
      "name": "FUTURE_RESERVATION_NAME",
      "planningStatus": "SUBMITTED",
      "shareSettings": {
        "projects": [
          "CONSUMER_PROJECT_ID_1",
          "CONSUMER_PROJECT_ID_2"
        ],
        "shareType": "SPECIFIC_PROJECTS"
      },
      "specificSkuProperties": { 
        "instanceProperties": {
          "machineType": "MACHINE_TYPE"
        },
        "totalCount": TOTAL_COUNT
      },
      "timeWindow": {
        "startTime": "START_TIME",
        "endTime": "END_TIME"
      }
    }
    
  • 予約済みの N1 VM に GPU を接続するには、guestAccelerators フィールドを指定します。

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations
    
    {
      "autoDeleteAutoCreatedReservations": AUTO_DELETE_AUTO_CREATED_RESERVATIONS,
      "name": "FUTURE_RESERVATION_NAME",
      "shareSettings": {
        "projects": [
          "CONSUMER_PROJECT_ID_1",
          "CONSUMER_PROJECT_ID_2"
        ],
        "shareType": "SPECIFIC_PROJECTS"
      },
      "specificSkuProperties": {
        "instanceProperties": {
          "guestAccelerators": [
            {
              "acceleratorCount": NUMBER_OF_ACCELERATORS,
              "acceleratorType": "ACCELERATOR_TYPE"
            }
          ],
          "machineType": "MACHINE_TYPE"
        },
        "totalCount": TOTAL_COUNT
      },
      "timeWindow": {
        "startTime": "START_TIME",
        "endTime": "END_TIME"
      }
    }
    

    次のように置き換えます。

    • NUMBER_OF_ACCELERATORS: 予約済みの VM 1 台あたりに追加する GPU の数。

    • ACCELERATOR_TYPE: N1 VM でサポートされている GPU モデル。エラーを回避するには、選択した GPU モデルが、将来の予約リクエストを作成するゾーンで使用できることを確認してください。

  • 予約する各 VM に 1 つ以上のローカル SSD ディスクを追加するには、localSsds フィールドを含めます。ローカル SSD ディスクは 24 個まで指定できます。各ローカル SSD ディスクは 375 GB です。

    たとえば、将来の予約リクエストの下書きを作成するときに 2 つのローカル SSD ディスクを指定するには、次のように POST リクエストを作成します。

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations
    
    {
      "autoDeleteAutoCreatedReservations": AUTO_DELETE_AUTO_CREATED_RESERVATIONS,
      "name": "FUTURE_RESERVATION_NAME",
      "shareSettings": {
        "projects": [
          "CONSUMER_PROJECT_ID_1",
          "CONSUMER_PROJECT_ID_2"
        ],
        "shareType": "SPECIFIC_PROJECTS"
      },
      "specificSkuProperties": {
        "instanceProperties": {
          "localSsds": [
            {
              "diskSizeGb": "375",
              "interface": "INTERFACE_1"
            },
            {
              "diskSizeGb": "375",
              "interface": "INTERFACE_2"
            }
          ],
          "machineType": "MACHINE_TYPE"
        },
        "totalCount": TOTAL_COUNT
      },
      "timeWindow": {
        "startTime": "START_TIME",
        "endTime": "END_TIME"
      }
    }
    

    INTERFACE_1INTERFACE_2 は、ローカル SSD ディスクで使用するインターフェースのタイプに置き換えます。

    予約済み VM に指定したマシンタイプが、選択したディスク インターフェースをサポートしていることを確認します。そうしないと、将来の予約リクエストは作成されません。詳細については、ディスク インターフェースの選択方法をご覧ください。

  • 予約する VM でゾーンのデフォルトの CPU プラットフォームではなく、特定の最小 CPU プラットフォームを使用するには、minCpuPlatform を指定します。

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations
    
    {
      "autoDeleteAutoCreatedReservations": AUTO_DELETE_AUTO_CREATED_RESERVATIONS,
      "name": "FUTURE_RESERVATION_NAME",
      "shareSettings": {
        "projects": [
          "CONSUMER_PROJECT_ID_1",
          "CONSUMER_PROJECT_ID_2"
        ],
        "shareType": "SPECIFIC_PROJECTS"
      },
      "specificSkuProperties": {
        "instanceProperties": {
          "machineType": "MACHINE_TYPE",
          "minCpuPlatform": "MINIMUM_CPU_PLATFORM"
        },
        "totalCount": TOTAL_COUNT
      },
      "timeWindow": {
        "startTime": "START_TIME",
        "endTime": "END_TIME"
      }
    }
    

    MIN_CPU_PLATFORM は、最小 CPU プラットフォームに置き換えます。リソースを予約するゾーンで CPU プラットフォームが使用可能であることを確認するには、ゾーンごとに使用可能な CPU プラットフォームを表示します。

  • 自動作成された予約を予約期間の終了時間後に削除するには、次のいずれかの方法を選択します。

    • 自動作成された予約を予約期間の終了後の特定の時間に削除するには、autoDeleteAutoCreatedReservationstrue に設定し、autoCreatedReservationsDeleteTime フィールドを含めます。

      POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations
      
      {
        "autoCreatedReservationsDeleteTime": "DELETE_TIME",
        "autoDeleteAutoCreatedReservations": true,
        "name": "FUTURE_RESERVATION_NAME",
        "shareSettings": {
          "projects": [
            "CONSUMER_PROJECT_ID_1",
            "CONSUMER_PROJECT_ID_2"
          ],
          "shareType": "SPECIFIC_PROJECTS"
        },
        "specificSkuProperties": { 
          "instanceProperties": {
            "machineType": "MACHINE_TYPE"
          },
          "totalCount": TOTAL_COUNT
        },
        "timeWindow": {
          "startTime": "START_TIME",
          "endTime": "END_TIME"
        }
      }
      

      DELETE_TIME を、自動作成された予約が Compute Engine によって削除される日時に置き換えます。日時は RFC 3339 タイムスタンプの形式で指定する必要があります。

    • 自動作成された予約を予約期間の開始時間から特定の時間が経過した後に削除するには、autoDeleteAutoCreatedReservationstrue に設定し、autoCreatedReservationsDuration フィールドを含めます。

      POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations
      
      {
        "autoCreatedReservationsDuration": {
          "seconds": "DURATION_BEFORE_DELETE"
        },
        "autoDeleteAutoCreatedReservations": true,
        "name": "FUTURE_RESERVATION_NAME",
        "shareSettings": {
          "projects": [
            "CONSUMER_PROJECT_ID_1",
            "CONSUMER_PROJECT_ID_2"
          ],
          "shareType": "SPECIFIC_PROJECTS"
        },
        "specificSkuProperties": { 
          "instanceProperties": {
            "machineType": "MACHINE_TYPE"
          },
          "totalCount": TOTAL_COUNT
        },
        "timeWindow": {
          "startTime": "START_TIME",
          "endTime": "END_TIME"
        }
      }
      

      DURATION_BEFORE_DELETE は期間(秒単位)に置き換えます。たとえば、604,800 秒(7 日)の場合は 604800 を指定します。

審査を受けるために将来の予約リクエストの下書きを送信する

審査を受けるために将来の予約リクエストの下書きを送信するときに 1 つ以上のプロパティを変更する場合は、下書きまたは承認されなかった将来の予約リクエストを変更するをご覧ください。

審査のために将来の予約リクエストの下書きを Google Cloud に送信するには、次のいずれかのオプションを選択します。

コンソール

  1. Google Cloud コンソールの [予約] ページに移動します。

    [予約] に移動

  2. [将来の予約] タブをクリックします。

  3. [名前] 列で、調達ステータスが「ドラフト作成中」になっている将来の予約リクエストの名前をクリックします。

    [将来の予約] ページが開き、将来の予約リクエストの詳細が表示されます。

  4. [下書きを編集] をクリックします。

    将来の予約リクエストの下書きを更新するページが開きます。

  5. 審査を受けるために将来の予約リクエストの下書きを Google Cloud に送信するには、[送信] をクリックします。

[予約] ページが開き、[将来の予約] タブが選択されています。先ほど送信した将来の予約リクエストの「状態」列で、調達ステータスが「承認待ち」に設定されます。

gcloud

審査を受けるために将来の予約リクエストの下書きを送信するには、--planning-status フラグを SUBMITTED に設定して gcloud beta compute future-reservations update コマンドを使用します。

gcloud beta compute future-reservations update FUTURE_RESERVATION_NAME \
    --planning-status=SUBMITTED \
    --zone=ZONE

次のように置き換えます。

  • FUTURE_RESERVATION_NAME: 既存の将来の予約リクエストのドラフトの名前。

  • ZONE: 将来の予約リクエストが存在するゾーン。

REST

審査を受けるために将来の予約リクエストの下書きを送信するには、beta.futureReservations.update メソッドPATCH リクエストを送信します。リクエストの本文に planningStatus フィールドを含め、SUBMITTED に設定します。

PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations/FUTURE_RESERVATION_NAME?updateMask=planningStatus

{
  "name": "FUTURE_RESERVATION_NAME",
  "planningStatus": "SUBMITTED"
}

次のように置き換えます。

  • PROJECT_ID: 将来の予約リクエストが存在するプロジェクトの ID。

  • ZONE: 将来の予約リクエストが存在するゾーン。

  • FUTURE_RESERVATION_NAME: 既存の将来の予約リクエストのドラフトの名前。

将来の予約リクエストを送信した後、将来の予約リクエストの詳細を表示して、リクエストの調達ステータスを追跡し、Google Cloud がリクエストを承認したか拒否したかを確認できます。

トラブルシューティング

将来の予約リクエストの作成時にエラーが発生した場合は、将来の予約リクエストのトラブルシューティングをご覧ください。

トラブルシューティングを行っても問題が解決しない場合は、テクニカル アカウント マネージャーまたはセールスチームにお問い合わせください。

次のステップ