このドキュメントでは、予約を変更する方法について説明します。コミットメントに関連付けられている予約を変更するには、代わりにコミットメントに関連付けられている予約を置き換えるをご覧ください。
予約を変更する状況としては、容量のニーズが変化した場合や、予約を消費できるワークロードを変更する場合などがあります。
制限事項
予約を変更する前に、次の点を考慮してください。
共有予約を変更できるのは、その予約を作成したプロジェクトでのみです。
将来の予約に対して自動作成された予約は、予約期間が終了した後にのみ変更できます。
始める前に
-
まだ設定していない場合は、認証を設定します。認証とは、 Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
予約の自動削除オプション、共有予約内のコンシューマ プロジェクト、または Vertex AI ジョブで GPU が接続されたインスタンスの予約を消費できるかどうかを変更する場合: プロジェクトに対する
compute.reservations.update
-
予約内のインスタンスの数を変更する場合: プロジェクトに対する
compute.reservations.resize
予約の自動削除を有効または無効にしたり、Compute Engine が予約を自動的に削除する日時を変更するには、予約の自動削除を変更します。
共有予約を使用できるコンシューマー プロジェクトを追加または削除するには、共有予約内のコンシューマー プロジェクトを変更します。
予約内の予約済み仮想マシン(VM)インスタンスの数を増減するには、予約内の予約済みコンピューティング インスタンスの数を変更します。
Vertex AI のカスタム トレーニング ジョブまたは予測ジョブで GPU インスタンスの予約を使用できるようにするか、使用しないようにするには、予約の共有ポリシーを変更します。
自動削除オプションを有効にするか、予約が自動的に削除される日時を変更します。
自動削除オプションを無効にします。
Google Cloud コンソールの [予約] ページに移動します。
[オンデマンド予約] タブ(デフォルト)の [名前] 列で、変更する予約の名前をクリックします。
予約の詳細ページが開きます。
[自動削除日時] 行で、[
自動削除日時を編集] をクリックします。[予約の更新] ペインで、次のいずれかを行います。
特定の日時に予約を削除するには、次のようにします。
自動削除オプションが有効になっていない場合は、[自動削除を有効にする] 切り替えをクリックしてオンにします。
[自動削除日時] フィールドに、Compute Engine が予約を自動的に削除する日時を入力します。
自動削除しない場合は、[自動削除を有効にする] の切り替えをクリックしてオフにします。
[送信] をクリックします。
予約の変更には数秒かかることがあります。
特定の日時に予約を削除するには、
--delete-at-time
フラグを指定してgcloud beta compute reservations update
コマンドを使用します。gcloud beta compute reservations update RESERVATION_NAME \ --delete-at-time=DELETE_AT_TIME \ --zone=ZONE
次のように置き換えます。
RESERVATION_NAME
: 既存の予約の名前。DELETE_AT_TIME
: RFC 3339 タイムスタンプ形式の日時。ZONE
: 予約が配置されているゾーン。
特定の期間の経過後に予約を削除するには、
--delete-after-duration
フラグを指定してgcloud beta compute reservations update
コマンドを使用します。gcloud beta compute reservations update RESERVATION_NAME \ --delete-after-duration=DELETE_AFTER_DURATION \ --zone=ZONE
次のように置き換えます。
RESERVATION_NAME
: 既存の予約の名前。DELETE_AFTER_DURATION
: 予約が自動的に削除されるまでの期間(日、時、分、秒)。たとえば、30 分の場合は30m
と指定し、1 日 2 時間 3 分 4 秒の場合は1d2h3m4s
と指定します。ZONE
: 予約が配置されているゾーン。
RESERVATION_NAME
: 既存の予約の名前。ZONE
: 予約が配置されているゾーン。特定の日時の予約を削除するには、
beta.reservations.update
メソッドにPATCH
リクエストを送信します。リクエスト URL に、deleteAtTime
に設定されたpaths
クエリ パラメータを含めます。PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME?paths=deleteAtTime { "name": "RESERVATION_NAME", "deleteAtTime": "DELETE_AT_TIME" }
次のように置き換えます。
PROJECT_ID
: 予約が配置されているプロジェクトの ID。ZONE
: 予約が配置されているゾーン。RESERVATION_NAME
: 既存の予約の名前。DELETE_AT_TIME
: RFC 3339 タイムスタンプ形式の日時。
特定の期間の経過後に予約を削除するには、
beta.reservations.update
メソッドにPATCH
リクエストを送信します。リクエスト URL に、deleteAfterDuration.seconds
に設定されたpaths
クエリ パラメータを含めます。PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME?paths=deleteAfterDuration.seconds { "name": "RESERVATION_NAME", "deleteAfterDuration": { "seconds": "DELETE_AFTER_DURATION" } }
次のように置き換えます。
PROJECT_ID
: 予約が配置されているプロジェクトの ID。ZONE
: 予約が配置されているゾーン。RESERVATION_NAME
: 既存の予約の名前。DELETE_AFTER_DURATION
: 予約が自動的に削除されるまでの期間(秒)。たとえば、86,400 秒(1 日)の場合は86400
を指定します。
PROJECT_ID
: 予約が配置されているプロジェクトの ID。ZONE
: 予約が配置されているゾーン。RESERVATION_NAME
: 既存の予約の名前。Google Cloud コンソールの [予約] ページに移動します。
[オンデマンド予約] タブ(デフォルト)の [名前] 列で、記述する予約の名前をクリックします。
予約の詳細ページが表示されます。
[
編集] をクリックします。[選択したプロジェクト] セクションで、次のいずれかの操作を行います。
特定のコンシューマー プロジェクトとの予約の共有を停止するには、[
削除] をクリックします。1 つ以上の特定のプロジェクトと予約の共有を開始するには、次の操作を行います。
[
プロジェクトを追加] をクリックします。予約を共有するオーナー プロジェクトの組織の各プロジェクトのチェックボックスをオンにします。
[選択] をクリックします。
変更を確定するには、[保存] をクリックします。
予約の変更には数秒かかることがあります。
1 つ以上のプロジェクトによる共有予約の使用を許可するには、
--add-share-with
フラグを指定してgcloud compute reservations update
コマンドを使用します。gcloud compute reservations update RESERVATION_NAME \ --add-share-with=CONSUMER_PROJECT_IDS \ --zone=ZONE
次のように置き換えます。
RESERVATION_NAME
: 既存の共有予約の名前。CONSUMER_PROJECT_IDS
: 予約を共有するプロジェクトの ID のカンマ区切りリスト。たとえば、project-1,project-2
を指定します。ZONE
: 共有予約が配置されているゾーン。
1 つ以上のプロジェクトによる共有予約の使用の許可を停止するには、
--remove-share-with
フラグを指定してgcloud compute reservations update
コマンドを使用します。gcloud compute reservations update RESERVATION_NAME \ --remove-share-with=CONSUMER_PROJECT_IDS \ --zone=ZONE
次のように置き換えます。
RESERVATION_NAME
: 既存の共有予約の名前。CONSUMER_PROJECT_IDS
: 予約の共有を停止するプロジェクトの ID のカンマ区切りリスト。たとえば、project-1,project-2
を指定します。ZONE
: 共有予約が配置されているゾーン。
共有予約を使用できるプロジェクトのリストを置き換えるには、
--share-with
フラグを指定してgcloud beta compute reservations update
コマンドを使用します。gcloud beta compute reservations update RESERVATION_NAME \ --share-with=CONSUMER_PROJECT_IDS \ --zone=ZONE
次のように置き換えます。
RESERVATION_NAME
: 既存の共有予約の名前。ZONE
: 共有予約が配置されているゾーン。CONSUMER_PROJECT_IDS
: 予約を共有するプロジェクトの ID のカンマ区切りリスト。たとえば、project-1,project-2
を指定します。
1 つ以上のプロジェクトによる共有予約の使用を許可するには、
reservations.update
メソッドにPATCH
リクエストを送信します。リクエスト URL に、予約を共有する各プロジェクトのpaths=shareSettings.projectMap.PROJECT_ID
クエリ パラメータを含めます。たとえば、2 つのプロジェクトの共有予約の使用を許可するには、次の
PATCH
リクエストを行います。PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME?paths=shareSettings.projectMap.CONSUMER_PROJECT_ID_1&paths=shareSettings.projectMap.CONSUMER_PROJECT_ID_2 { "name": "RESERVATION_NAME", "shareSetting": { "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } } }
次のように置き換えます。
PROJECT_ID
: オーナー プロジェクト(共有予約の作成に使用されているプロジェクト)の ID。ZONE
: 共有予約が配置されているゾーン。RESERVATION_NAME
: 既存の共有予約の名前。CONSUMER_PROJECT_ID_1
とCONSUMER_PROJECT_ID_2
: 予約を共有する 2 つのプロジェクトの ID。
1 つ以上のプロジェクトによる共有予約の使用の許可を停止するには、
reservations.update
メソッドにPATCH
リクエストを送信します。リクエスト URL に、予約の共有を停止する各プロジェクトのpaths=shareSettings.projectMap.PROJECT_ID
クエリ パラメータを含めます。また、リクエスト本文からshareSetting
フィールドを削除する必要があります。たとえば、2 つのプロジェクトによる共有予約の使用の許可を停止するには、次の
PATCH
リクエストを行います。PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME?paths=shareSettings.projectMap.CONSUMER_PROJECT_ID_1&paths=shareSettings.projectMap.CONSUMER_PROJECT_ID_2 { "name": "RESERVATION_NAME" }
次のように置き換えます。
PROJECT_ID
: オーナー プロジェクト(共有予約の作成に使用されているプロジェクト)の ID。ZONE
: 共有予約が配置されているゾーン。RESERVATION_NAME
: 既存の共有予約の名前。CONSUMER_PROJECT_ID_1
とCONSUMER_PROJECT_ID_2
: 予約の共有を停止する 2 つのプロジェクトの ID。
予約内のインスタンス数を増やすには、次の点を確認してください。
予約の最大インスタンス数を超えることはできません。
予約する追加リソースに対して十分な未使用の割り当てが必要です。割り当てを増やすには、Cloud Quotas のドキュメントで割り当ての表示と管理をご覧ください。
予約のゾーンに十分な利用可能なリソースがある必要があります。不足している場合、リクエストは失敗し、リソースの可用性エラーが発生します。このエラーのトラブルシューティングについては、リソースの可用性に関するエラーのトラブルシューティングをご覧ください。
特定の予約内のインスタンス数を減らすには、予約を使用するインスタンス数が、新しい小さい数を超えないようにします。上回っている場合は、新しい数を超えるインスタンスに対して次のいずれかを行います。
Google Cloud コンソールの [予約] ページに移動します。
[オンデマンド予約] タブ(デフォルト)の [名前] 列で、変更する予約の名前をクリックします。
予約の詳細ページが表示されます。
[
編集] をクリックします。[VM インスタンスの数] フィールドに、予約するインスタンスの更新した数を入力します。
[保存] をクリックして確定します。
予約の変更には数秒かかることがあります。
RESERVATION_NAME
: 既存の予約の名前。NUMBER_OF_VMS
: 予約するインスタンスの新しい数。ZONE
: 予約が配置されているゾーン。PROJECT_ID
: 予約が配置されているプロジェクトの ID。ZONE
: 予約が配置されているゾーン。RESERVATION_NAME
: 既存の予約の名前。NUMBER_OF_VMS
: 予約するインスタンスの新しい数。Google Cloud コンソールの [予約] ページに移動します。
[オンデマンド予約] タブ(デフォルト)の [名前] 列で、変更する GPU インスタンスの予約の名前をクリックします。
予約の詳細ページが開きます。
[Share with other Google Cloud services] 行で、[
サービス共有設定を編集する] をクリックします。[予約の共有] ペインで、次のいずれかを行います。
Vertex AI が予約を使用できるようにするには、[予約を共有] を選択します。
Vertex AI が予約を使用することを禁止するには、[予約を共有しない] を選択します。
[保存] をクリックします。
予約の変更には数秒かかることがあります。
RESERVATION_NAME
: 既存の予約の名前。SHARING_POLICY
: 予約の共有ポリシー。次のいずれかの値を指定します。Vertex AI が予約を使用できるようにするには:
ALLOW_ALL
Vertex AI が予約を使用することを禁止するには:
DISALLOW_ALL
ZONE
: 予約が配置されているゾーン。PROJECT_ID
: 予約が配置されているプロジェクトの ID。ZONE
: 予約が配置されているゾーン。RESERVATION_NAME
: 既存の予約の名前。SHARING_POLICY
: 予約の共有ポリシー。次のいずれかの値を指定します。Vertex AI が予約を使用できるようにするには:
ALLOW_ALL
Vertex AI が予約を使用することを禁止するには:
DISALLOW_ALL
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
必要なロール
予約の変更に必要な権限を取得するには、プロジェクトに対する Compute 管理者(
roles/compute.admin
)IAM ロールの付与を管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。この事前定義ロールには、予約の変更に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
予約を変更するには、次の権限が必要です。
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
予約を変更する
予約で変更するプロパティに応じて、次のいずれかの方法を使用します。
このリストに記載されていないプロパティを変更するには、新しい予約を作成する必要があります。手順については、このドキュメントの予約内の他のプロパティを変更するをご覧ください。
予約の自動削除を変更する
Compute Engine が既存の予約を自動的に削除するタイミングを変更するには、次のいずれかを行います。
予約の自動削除を変更するには、次のいずれかを選択します。
コンソール
gcloud
予約の自動削除オプションを有効にすると、予約を削除する日時を指定するほか、特定の期間の経過後に予約を削除するよう指定できます。
自動削除オプションを有効にする、または予約を削除するタイミングを変更するには、次のいずれかを行います。
自動削除オプションを無効にするには、
--disable-auto-delete
フラグを指定してgcloud beta compute reservations update
コマンドを使用します。gcloud beta compute reservations update RESERVATION_NAME \ --disable-auto-delete \ --zone=ZONE
次のように置き換えます。
REST
予約の自動削除オプションを有効にすると、予約を削除する日時を指定するほか、特定の期間の経過後に予約を削除するよう指定できます。
自動削除オプションを有効にする、または予約を削除するタイミングを変更するには、次のいずれかを行います。
自動削除オプションを無効にするには、
PATCH
リクエストをbeta.reservations.update
メソッドに送信します。リクエストではpaths=deleteAtTime&paths=deleteAfterDuration
クエリ パラメータを指定し、リクエスト本文を省略します。PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME?paths=deleteAtTime&paths=deleteAfterDuration
次のように置き換えます。
共有予約内のコンシューマー プロジェクトを変更する
共有予約の使用を許可できるのは、オーナー プロジェクトと同じ組織内のプロジェクトのみです。プロジェクトをオーナー プロジェクトの組織に移行する方法については、Resource Manager ドキュメントの組織リソース間でプロジェクトを移行するをご覧ください。
共有予約を使用できるコンシューマー プロジェクトを変更すると、予約の使用量が変わる可能性があります。たとえば、削除されたコンシューマー プロジェクトが予約からリソースを消費しなくなります。また、予約のプロパティと一致する VM が予約を自動的に使用するように構成されていた場合(デフォルトの動作)、コンシューマー プロジェクトが追加されると、予約からリソースを使用し始める可能性があります。予約の消費量をモニタリングする場合は、予約の消費量を確認する方法をご覧ください。
共有予約を使用できるコンシューマー プロジェクトを変更するには、次のいずれかを選択します。
コンソール
gcloud
共有予約を使用するコンシューマー プロジェクトを変更する場合は、共有予約の使用を許可するプロジェクとの ID、許可を停止するプロジェクトの ID のカンマ区切りのリストを指定する必要があります。これらのプロジェクトは、オーナー プロジェクトと同じ組織に存在している必要があります。リスト内でオーナー プロジェクトを指定しないでください。デフォルトでは、共有予約の使用があらかじめ許可されています。
共有予約を使用するコンシューマー プロジェクトを変更するには、次のいずれかの方法を選択します。
REST
共有予約を使用するコンシューマー プロジェクトを変更する場合は、共有予約の使用を許可するプロジェクトの ID または許可を停止するプロジェクトの ID を指定する必要があります。これらのプロジェクトは、オーナー プロジェクトと同じ組織に存在している必要があります。オーナー プロジェクトを指定しないでください。デフォルトでは、共有予約の使用があらかじめ許可されています。
共有予約を使用するコンシューマー プロジェクトを変更するには、次のいずれかの方法を選択します。
予約内の予約済みインスタンスの数を変更する
予約内の予約済みコンピューティング インスタンスの数を増減できます。ただし、インスタンス数を変更する前に、エラーを回避するために次の点を考慮してください。
予約の予約済みインスタンスの数を変更するには、次のいずれかのオプションを選択します。
コンソール
gcloud
予約内の予約済みインスタンスの数を変更するには、
gcloud compute reservations update
コマンドを使用します。gcloud compute reservations update RESERVATION_NAME \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
次のように置き換えます。
REST
予約内の予約済みインスタンスの数を変更するには、
reservations.resize
メソッドにPOST
リクエストを送信します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME/resize { "specificSkuCount": "NUMBER_OF_VMS" }
次のように置き換えます。
予約の共有ポリシーを変更する
GPU コンピューティング インスタンスの予約の共有ポリシーを変更することで、Vertex AI のカスタム トレーニング ジョブまたは予測ジョブが予約を使用することを許可または禁止できます。
Vertex AI が予約を使用することを禁止する場合は、予約を変更する前に、カスタム トレーニング ジョブまたは予測ジョブが予約を使用していないことを確認してください。そうしない場合、エラーが発生します。
GPU インスタンスの予約の共有ポリシーを変更するには、次のいずれかのオプションを選択します。
コンソール
gcloud
GPU インスタンスの予約の共有ポリシーを変更するには、
--reservation-sharing-policy
フラグを指定してgcloud beta compute reservations update
コマンドを使用します。gcloud beta compute reservations update RESERVATION_NAME \ --reservation-sharing-policy=SHARING_POLICY \ --zone=ZONE
次のように置き換えます。
REST
GPU インスタンスの予約の共有ポリシーを変更するには、
beta.reservations.update
メソッドにPATCH
リクエストを送信します。リクエスト URL に、reservationSharingPolicy.serviceShareType
に設定されたpaths
クエリ パラメータを含めます。PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME?paths=reservationSharingPolicy.serviceShareType { "name": "RESERVATION_NAME", "reservationSharingPolicy": { "serviceShareType": "SHARING_POLICY" } }
次のように置き換えます。
予約内の他のプロパティを変更する
予約の変更で説明されていないプロパティを変更する場合は、代替の予約を作成する必要があります。
予約容量が意図せず減少するリスクを回避して予約を置き換えるには、次の操作を行います。
トラブルシューティング
予約の更新に関する問題のトラブルシューティング方法をご覧ください。
次のステップ
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-04-02 UTC。
-