このドキュメントでは、単一プロジェクトの予約を作成する方法について説明します。予約は、同じプロジェクト内の仮想マシン(VM)インスタンスでのみ使用できます。予約の詳細については、Compute Engine ゾーンリソースの予約をご覧ください。
予約を作成するその他の方法については、次のページをご覧ください。
現在のプロジェクトに 1 年間または 3 年間のコミットメントがある場合、予約したリソースには該当する確約利用割引が自動的に適用されます。コミットメントの購入時に、予約を作成してコミットメントに関連付けることもできます。詳細については、予約をコミットメントに関連付けるをご覧ください。
複数のプロジェクトで使用できる予約を作成するには、共有予約を作成するをご覧ください。
始める前に
- 予約に関する要件と制限事項を確認します。
-
まだ設定していない場合は、認証を設定します。認証とは、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.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- プロジェクトに対する
compute.reservations.create
- インスタンス テンプレートを指定するには: インスタンス テンプレートに対する
compute.instanceTemplates.useReadOnly
-
このセクションでは、インスタンス テンプレートを使用して予約のプロパティを定義する方法について説明します。インスタンス テンプレートを使用することで、予約のプロパティとその予約を使用できる VM を同じ場所で定義できます。
-
このセクションでは、既存の VM を使用して予約のプロパティを定義する方法について説明します。既存の VM のプロパティを使用して、その参照用 VM と一致するプロパティを持つ VM を作成することで、予約を使用できます。
-
このセクションでは、予約のプロパティを直接定義する方法について説明します。この方法では、VM と予約のプロパティが完全に一致していることを手動で確認する必要があります。プロパティが一致しない場合、予約は使用できません。
このドキュメントの次のセクションで説明するように、予約を作成して、その特定の予約をターゲットとする VM のみが使用できるようにします。次に、その特定の予約を使用するように VM を構成します。
予約を使用できない VM を構成します。
インスタンス テンプレート内のリソースと同じリージョンとゾーンに予約を作成します。インスタンス テンプレートで指定されているリージョン リソースやゾーンリソース(マシンタイプや Persistent Disk ボリュームなど)によって、テンプレートの使用はそれらのリソースが存在するロケーションに限定されます。たとえば、インスタンス テンプレートでゾーン
us-central1-a
の既存の Persistent Disk ボリュームを指定した場合、同じゾーンでのみ予約を作成できます。既存のテンプレートに、特定のリージョンまたはゾーンにテンプレートをバインドするリソースが指定されているかどうかを確認するには、インスタンス テンプレートについての情報を確認し、その中のリージョン リソースまたはゾーンリソースへの参照を探します。インスタンス テンプレートでコンパクト プレースメント ポリシーを指定する場合は、コンパクト プレースメント ポリシーにサポートされているマシンタイプもテンプレートで指定するようにしてください。この条件を満たしていない場合、予約の作成は失敗します。
Google Cloud コンソールの [予約] ページに移動します。
[オンデマンド予約] タブ(デフォルト)で、[
予約を作成] をクリックします。[予約の作成] ページが開きます。
[名前] に、予約の名前を入力します。
[リージョン] と [ゾーン] で、リソースを予約する場所を選択します。
[共有タイプ] セクションで、[ローカル] を選択します(まだ選択されていない場合)。
省略可: Vertex AI のカスタム トレーニング ジョブまたは予測ジョブで A2 または A3 VM の予約を使用できるようにするには、[Google Cloud サービス] セクションで [予約を共有] を選択します。
[VM インスタンスでの使用] セクションで、次のオプションのいずれかを選択します。
一致する VM がこの予約を自動的に使用できるようにするには、[予約を自動的に使用する] を選択します(まだ選択されていない場合)。
一致する VM の作成時に、この予約が名前で明示的にターゲットとして指定された場合にのみ、この予約のリソースが使用されるようにするには、[特定の予約を選択する] を選択します。
[VM インスタンスの数] に、予約する VM の数を入力します。
[マシンの構成] セクションで、次の操作を行います。
既存のインスタンス テンプレートから VM のプロパティを指定するには、[インスタンス テンプレートを使用] を選択します。
[インスタンス テンプレート] フィールドで、任意のインスタンス テンプレートを選択します。リージョン インスタンス テンプレートを選択した場合は、インスタンス テンプレートのリージョン内のリソースのみを予約できます。
[自動削除] セクションで自動削除オプションを有効にすると、この予約が特定の日時に自動的に削除されます。予約の自動削除を設定しておくと、予約の使用を停止したときに不要な料金が発生しません。
予約を作成するには、[作成] をクリックします。
[予約] ページが開きます。単一プロジェクトの予約の作成が完了するまでに、最長 1 分かかることがあります。
RESERVATION_NAME
: 作成する予約の名前。PROJECT_ID
: インスタンス テンプレートが存在しており、リソースを予約するプロジェクトの ID。LOCATION
: インスタンス テンプレートのロケーション。次のいずれかの値を指定します。グローバル インスタンス テンプレートの場合:
global
リージョン インスタンス テンプレートの場合:
regions/REGION
。REGION
は、インスタンス テンプレートが配置されているリージョンに置き換えます。リージョン インスタンス テンプレートを指定する場合は、テンプレートのリージョンと同じリージョン内の VM のみを予約できます。
INSTANCE_TEMPLATE_NAME
: 既存のインスタンス テンプレートの名前。インスタンス テンプレートで A3 マシンタイプまたはコンパクト プレースメント ポリシーを指定する場合は、--require-specific-reservation
フラグを含める必要があります。これは、この予約を明示的にターゲットとする VM のみがこの予約を使用できることを意味します。詳細については、特定の予約から VM を使用するをご覧ください。NUMBER_OF_VMS
: 予約する VM の数。ZONE
: リソースを予約するゾーン。この予約を明示的にターゲットとする VM のみがこの予約を使用できることを指定するには、
--require-specific-reservation
フラグを指定します。gcloud compute reservations create RESERVATION_NAME \ --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \ --require-specific-reservation \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Vertex AI のカスタム トレーニング ジョブまたは予測ジョブで A2 または A3 VM の予約を使用できるようにするには、
gcloud beta compute reservations create
コマンドで--reservation-sharing-policy=ALLOW_ALL
フラグを指定します。gcloud beta compute reservations create RESERVATION_NAME \ --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \ --reservation-sharing-policy=ALLOW_ALL \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Compute Engine で予約を自動的に削除できるようにするには、次のいずれかのメソッドを選択します。
特定の日時に予約を削除するには、
--delete-at-time
フラグを指定してgcloud beta compute reservations create
コマンドを使用します。gcloud beta compute reservations create RESERVATION_NAME \ --delete-at-time=DELETE_AT_TIME \ --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
DELETE_AT_TIME
は、RFC 3339 タイムスタンプ形式の日時に置き換えます。これは次のようにする必要があります。none YYYY-MM-DDTHH:MM:SSOFFSET
次のように置き換えます。
YYYY-MM-DD
: 4 桁の年、2 桁の月、その月の 2 桁の日をハイフン(-
)で区切った日付。HH:MM:SS
: 24 時間制の 2 桁の時間、2 桁の分、2 桁の秒をコロン(:
)で区切った時刻。OFFSET
: 協定世界時(UTC)のオフセット形式で示されるタイムゾーン。たとえば、太平洋標準時(PST)を使用する場合は-08:00
を指定します。オフセットを使用しない場合は、Z
を指定します。
特定の期間の経過後に予約を削除するには、
--delete-after-duration
フラグを指定してgcloud beta compute reservations create
コマンドを使用します。gcloud beta compute reservations create RESERVATION_NAME \ --delete-after-duration=DELETE_AFTER_DURATION \ --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
DELETE_AFTER_DURATION
は、期間(日、時、分、秒)に置き換えます。たとえば、30 分の場合は30m
を指定し、1 日、2 時間、3 分、4 秒の場合は1d2h3m4s
を指定します。
PROJECT_ID
: リソースを予約する、インスタンス テンプレートが存在するプロジェクトの ID。ZONE
: リソースを予約するゾーン。RESERVATION_NAME
: 作成する予約の名前。NUMBER_OF_VMS
: 予約する VM の数。LOCATION
: インスタンス テンプレートのロケーション。次のいずれかの値を指定します。グローバル インスタンス テンプレートの場合:
global
リージョン インスタンス テンプレートの場合:
regions/REGION
。REGION
は、インスタンス テンプレートが配置されているリージョンに置き換えます。リージョン インスタンス テンプレートを指定する場合は、テンプレートのリージョンと同じリージョン内の VM のみを予約できます。
INSTANCE_TEMPLATE_NAME
: 既存のインスタンス テンプレートの名前。インスタンス テンプレートで A3 マシンタイプまたはコンパクト プレースメント ポリシーを指定する場合は、リクエスト本文にspecificReservationRequired
フィールドを含め、このフィールドをtrue
に設定する必要があります。これは、この予約を明示的にターゲットとする VM のみがこの予約を使用できることを意味します。詳細については、特定の予約から VM を使用するをご覧ください。この予約を明示的にターゲットとする VM のみがこの予約を使用できることを指定するには、リクエスト本文に
specificReservationRequired
フィールドを追加し、値をtrue
に設定します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "specificReservation": { "count": "NUMBER_OF_VMS", "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME" }, "specificReservationRequired": true }
Vertex AI のカスタム トレーニング ジョブまたは予測ジョブで A2 または A3 VM の予約を使用できるようにするには、
beta.reservations.insert
メソッドにPOST
リクエストを送信します。リクエスト本文にserviceShareType
フィールドを追加し、値をALLOW_ALL
に設定します。POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "reservationSharingPolicy": { "serviceShareType": "ALLOW_ALL" }, "specificReservation": { "count": "NUMBER_OF_VMS", "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME" } }
Compute Engine で予約を自動的に削除できるようにするには、次のいずれかのメソッドを選択します。
特定の日時の予約を削除するには、
beta.reservations.insert
メソッドにPOST
リクエストを送信します。リクエスト本文に、deleteAtTime
フィールドを含めます。POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations { "deleteAtTime": "DELETE_AT_TIME", "name": "RESERVATION_NAME", "specificReservation": { "count": "NUMBER_OF_VMS", "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME" } }
DELETE_AT_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
を指定します。
特定の期間の経過後に予約を削除するには、
beta.reservations.insert
メソッドにPOST
リクエストを送信します。リクエスト本文に、deleteAfterDuration
フィールドを含めます。POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations { "deleteAfterDuration": { "seconds": "DELETE_AFTER_DURATION" }, "name": "RESERVATION_NAME", "specificReservation": { "count": "NUMBER_OF_VMS", "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME" } }
DELETE_AFTER_DURATION
は期間(秒単位)に置き換えます。たとえば、86,400 秒(1 日)の場合は86400
を指定します。
次のようにインスタンス テンプレートを作成して使用します。
参照用 VM のプロパティをオーバーライドせずに、参照用 VM に基づいてインスタンス テンプレートを作成します。
次のいずれかまたは両方を行うと、新しく作成されたテンプレートを使用して VM を作成できます。
参照用 VM に基づいて VM を作成し、新しい VM と参照用 VM のプロパティを完全に一致させます。
Google Cloud コンソールの [予約] ページに移動します。
[
予約を作成] をクリックします。[予約の作成] ページが開きます。
[名前] に、予約の名前を入力します。
[リージョン] と [ゾーン] で、リソースを予約する場所を選択します。
[共有タイプ] セクションで、[ローカル] をクリックします(まだ選択されていない場合)。
[VM インスタンスでの使用] セクションで、次のオプションのいずれかを選択します。
一致する VM がこの予約を自動的に使用できるようにするには、[予約を自動的に使用する] を選択します(まだ選択されていない場合)。
一致する VM の作成時に、この予約が名前で明示的にターゲットとして指定された場合にのみ、この予約のリソースが使用されるようにするには、[特定の予約を選択する] を選択します。
[VM インスタンスの数] に、予約する VM の数を入力します。
[マシンの構成] セクションで、次の操作を行います。
[既存の VM を使用] を選択します。
[既存の VM] で、予約の作成に使用するプロパティを持つ VM を選択します。
省略可: 要件を満たす予約に対するコンパクト プレースメント ポリシーを指定するには、[グループ プレースメント ポリシー] セクションで [グループ プレースメント ポリシーを選択または作成します] リストをクリックしてから、次のいずれかの操作を行います。
この予約で指定するコンパクト プレースメント ポリシーを作成するには、次の操作を行います。
[グループ プレースメント ポリシーを作成] をクリックします。
[グループ プレースメント ポリシーを作成] ペインが表示されます。
[ポリシー名] に、ポリシーの名前を入力します。
[作成] をクリックします。
コンパクト プレースメント ポリシーの作成には数秒かかることがあります。
それ以外の場合は、既存のコンパクト プレースメント ポリシーを選択します。
[自動削除] セクションで自動削除オプションを有効にすると、この予約が特定の日時に自動的に削除されます。予約の自動削除を設定しておくと、予約の使用を停止したときに不要な料金が発生しません。
予約を作成するには、[作成] をクリックします。
[予約] ページが開きます。予約の作成が完了するまでに、最大 1 分かかることがあります。
Google Cloud コンソールの [予約] ページに移動します。
[オンデマンド予約] タブ(デフォルト)で、[
予約を作成] をクリックします。[予約の作成] ページが開きます。
[名前] に、予約の名前を入力します。
[リージョン] と [ゾーン] で、リソースを予約する場所を選択します。
[共有タイプ] セクションで、[ローカル] をクリックします(まだ選択されていない場合)。
省略可: Vertex AI のカスタム トレーニング ジョブまたは予測ジョブで A2 または A3 VM の予約を使用できるようにするには、[Google Cloud サービス] セクションで [予約を共有] を選択します。
[VM インスタンスでの使用] セクションで、次のオプションのいずれかを選択します。
一致する VM がこの予約を自動的に使用できるようにするには、[予約を自動的に使用する] を選択します(まだ選択されていない場合)。
一致する VM の作成時に、この予約が名前で明示的にターゲットとして指定された場合にのみ、この予約のリソースが使用されるようにするには、[特定の予約を選択する] を選択します。
[VM インスタンスの数] に、予約する VM の数を入力します。
[マシンの構成] セクションで、[マシンタイプを指定] を選択し、次の項目を指定します。
[マシン ファミリー]、[シリーズ]、[マシンタイプ] で、マシン ファミリー、シリーズ、マシンタイプを選択します。
省略可: 最小 CPU プラットフォームを指定するか、GPU を N1 VM に接続するには、次の操作を行います。
[CPU プラットフォームと GPU] セクションを展開するには、
展開矢印をクリックします。省略可: 最小 CPU プラットフォームを指定するには、[CPU プラットフォーム] でいずれかのオプションを選択します。
省略可: N1 VM に GPU を接続するには、[
GPU を追加] をクリックします。次に、[GPU タイプ] と [GPU の数] で、各 N1 VM に接続する GPU のタイプと数を選択します。
省略可: ローカル SSD ディスクを追加するには、次の操作を行います。
[ディスク数] で、各 VM のローカル SSD ディスクの数を選択します。
[インターフェース タイプ] で、ローカル SSD ディスクのインターフェースを選択します。
省略可: 要件を満たす予約のコンパクト プレースメント ポリシーを指定するには、[グループ プレースメント ポリシーを選択または作成します] リストをクリックして、次のいずれかの操作を行います。
コンパクト プレースメント ポリシーを作成してこの予約で指定するには、次の操作を行います。
[グループ プレースメント ポリシーを作成] をクリックします。
[グループ プレースメント ポリシーを作成] ペインが表示されます。
[ポリシー名] に、ポリシーの名前を入力します。
[作成] をクリックします。
コンパクト プレースメント ポリシーの作成には数秒かかることがあります。
それ以外の場合は、既存のコンパクト プレースメント ポリシーを選択します。
省略可: 要件を満たす予約に対するコンパクト プレースメント ポリシーを指定するには、[グループ プレースメント ポリシー] セクションで [グループ プレースメント ポリシーを選択または作成します] リストをクリックしてから、次のいずれかの操作を行います。
この予約で指定するコンパクト プレースメント ポリシーを作成するには、次の操作を行います。
[グループ プレースメント ポリシーを作成] をクリックします。
[グループ プレースメント ポリシーを作成] ペインが表示されます。
[ポリシー名] に、ポリシーの名前を入力します。
[作成] をクリックします。
コンパクト プレースメント ポリシーの作成には数秒かかることがあります。
それ以外の場合は、既存のコンパクト プレースメント ポリシーを選択します。
[自動削除] セクションで自動削除オプションを有効にすると、この予約が特定の日時に自動的に削除されます。予約の自動削除を設定しておくと、予約の使用を停止したときに不要な料金が発生しません。
予約を作成するには、[作成] をクリックします。
[予約] ページが開きます。単一プロジェクトの予約の作成が完了するまでに、最長 1 分かかることがあります。
RESERVATION_NAME
: 作成する予約の名前。MACHINE_TYPE
: 各 VM に使用するマシンタイプ。A3 マシンタイプを指定する場合は、--require-specific-reservation
フラグを含める必要があります。これは、この予約を明示的にターゲットとする VM のみがこの予約を使用できることを意味します。詳細については、特定の予約から VM を使用するをご覧ください。NUMBER_OF_VMS
: 予約する VM の数。ZONE
: リソースを予約するゾーン。予約済みの N1 VM に GPU を接続するには、
--accelerator
フラグを指定します。gcloud compute reservations create RESERVATION_NAME \ --accelerator=count=NUMBER_OF_ACCELERATORS,type=ACCELERATOR_TYPE --machine-type=MACHINE_TYPE \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
次のように置き換えます。
NUMBER_OF_ACCELERATORS
: 追加する GPU の数(予約済み VM あたり)。ACCELERATOR_TYPE
: N1 VM でサポートされている GPU モデル。リソースを予約するゾーンで GPU モデルを使用できることを確認します。この条件を満たしていない場合、予約の作成は失敗します。
予約する各 VM に 1 つ以上のローカル SSD ディスクを追加するには、1 つ以上の
--local-ssd
フラグを指定します。ローカル SSD ディスクは 24 個まで指定できます。各ローカル SSD ディスクは 375 GB です。たとえば、予約の作成時に 2 つのローカル SSD を指定するには、次のように 2 つの
--local-ssd
フラグを指定します。gcloud compute reservations create RESERVATION_NAME \ --local-ssd=size=375,interface=INTERFACE_1 \ --local-ssd=size=375,interface=INTERFACE_2 \ --machine-type=MACHINE_TYPE \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
INTERFACE_1
とINTERFACE_2
は、各ローカル SSD ディスクで使用するインターフェースのタイプに置き換えます。次のいずれかの値を指定します。NVME ディスク インターフェース:
nvme
SCSI ディスク インターフェース:
scsi
予約済み VM に指定したマシンタイプが、選択したディスク インターフェースをサポートしていることを確認します。この条件を満たしていない場合、予約の作成は失敗します。詳細については、ディスク インターフェースの選択方法をご覧ください。
予約する VM でゾーンのデフォルトの CPU プラットフォームではなく、特定の最小 CPU プラットフォームを使用するには、
--min-cpu-platform
フラグを指定します。gcloud compute reservations create RESERVATION_NAME \ --machine-type=MACHINE_TYPE \ --min-cpu-platform="MIN_CPU_PLATFORM" \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
MIN_CPU_PLATFORM
は、最小 CPU プラットフォームに置き換えます。リソースを予約するゾーンで CPU プラットフォームが使用可能であることを確認するには、ゾーンごとに使用可能な CPU プラットフォームを表示します。この予約を明示的にターゲットとする VM のみがこの予約を使用できることを指定するには、
--require-specific-reservation
フラグを指定します。gcloud compute reservations create RESERVATION_NAME \ --machine-type=MACHINE_TYPE \ --require-specific-reservation \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
VM 間のネットワーク レイテンシを短縮するためにコンパクト プレースメント ポリシーを指定するには、
--resource-policies=policy
フラグを指定します。gcloud compute reservations create RESERVATION_NAME \ --machine-type=MACHINE_TYPE \ --resource-policies=policy=COMPACT_PLACEMENT_POLICY_NAME \ --require-specific-reservation \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
COMPACT_PLACEMENT_POLICY_NAME は、既存のコンパクト プレースメント ポリシーの名前に置き換えます。また、コンパクト プレースメント ポリシーを指定する単一プロジェクト予約を作成するときにエラーを回避するため、次の項目を指定します。
コンパクト プレースメント ポリシーでサポートされているマシンタイプと VM の最大数。
コンパクト プレースメント ポリシーが配置されているリージョン内のゾーン。
--require-specific-reservation
フラグ。これは、この予約を明示的にターゲットとする VM のみがこの予約を使用できることを意味します。
Vertex AI のカスタム トレーニング ジョブまたは予測ジョブで A2 または A3 VM の予約を使用できるようにするには、
gcloud beta compute reservations create
コマンドで--reservation-sharing-policy=ALLOW_ALL
フラグを指定します。gcloud beta compute reservations create RESERVATION_NAME \ --machine-type=MACHINE_TYPE \ --reservation-sharing-policy=ALLOW_ALL \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Compute Engine で予約を自動的に削除できるようにするには、次のいずれかのメソッドを選択します。
特定の日時に予約を削除するには、
--delete-at-time
フラグを指定してgcloud beta compute reservations create
コマンドを使用します。gcloud beta compute reservations create RESERVATION_NAME \ --delete-at-time=DELETE_AT_TIME \ --machine-type=MACHINE_TYPE \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
DELETE_AT_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
を指定します。
特定の期間の経過後に予約を削除するには、
--delete-after-duration
フラグを指定してgcloud beta compute reservations create
コマンドを使用します。gcloud beta compute reservations create RESERVATION_NAME \ --delete-after-duration=DELETE_AFTER_DURATION \ --machine-type=MACHINE_TYPE \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
DELETE_AFTER_DURATION
は、期間(日、時、分、秒)に置き換えます。たとえば、30 分の場合は30m
を指定し、1 日、2 時間、3 分、4 秒の場合は1d2h3m4s
を指定します。
PROJECT_ID
: リソースを予約するプロジェクトの ID。ZONE
: リソースを予約するゾーン。RESERVATION_NAME
: 作成する予約の名前。NUMBER_OF_VMS
: 予約する VM の数。MACHINE_TYPE
: 各 VM に使用するマシンタイプ。A3 マシンタイプを指定する場合は、リクエスト本文にspecificReservationRequired
フィールドを含め、フィールドをtrue
に設定する必要があります。これは、この予約を明示的にターゲットとする VM のみがこの予約を使用できることを意味します。詳細については、特定の予約から VM を使用するをご覧ください。予約済みの N1 VM に GPU を接続するには、リクエスト本文に
guestAccelerators
フィールドを含めます。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "specificReservation": { "count": "NUMBER_OF_VMS", "instanceProperties": { "guestAccelerators": [ { "acceleratorCount": NUMBER_OF_ACCELERATORS, "acceleratorType": "ACCELERATOR_TYPE" } ], "machineType": "MACHINE_TYPE" } } }
次のように置き換えます。
NUMBER_OF_ACCELERATORS
: 追加する GPU の数(予約済み VM あたり)。ACCELERATOR_TYPE
: N1 VM でサポートされている GPU モデル。リソースを予約するゾーンで GPU モデルを使用できることを確認します。この条件を満たしていない場合、予約の作成は失敗します。
予約する各 VM に 1 つ以上のローカル SSD ディスクを追加するには、リクエスト本文に
localSsds
フィールドを含めます。ローカル SSD ディスクは 24 個まで指定できます。各ローカル SSD ディスクは 375 GB です。たとえば、予約の作成時に 2 つのローカル SSD ディスクを指定するには、次のようにリクエストを送信します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "specificReservation": { "count": "NUMBER_OF_VMS", "instanceProperties": { "localSsds": [ { "diskSizeGb": "375", "interface": "INTERFACE_1" }, { "diskSizeGb": "375", "interface": "INTERFACE_2" } ], "machineType": "MACHINE_TYPE" } } }
INTERFACE_1
とINTERFACE_2
は、各ローカル SSD ディスクで使用するインターフェースのタイプに置き換えます。次のいずれかの値を指定します。NVME ディスク インターフェース:
NVME
SCSI ディスク インターフェース:
SCSI
予約済み VM に指定したマシンタイプが、選択したディスク インターフェースをサポートしていることを確認します。この条件を満たしていない場合、予約の作成は失敗します。詳細については、ディスク インターフェースの選択方法をご覧ください。
予約する VM でゾーンのデフォルトの CPU プラットフォームではなく、特定の最小 CPU プラットフォームを使用するには、リクエスト本文に
minCpuPlatform
フィールドを含めます。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "specificReservation": { "count": "NUMBER_OF_VMS", "instanceProperties": { "machineType": "MACHINE_TYPE", "minCpuPlatform": "MIN_CPU_PLATFORM" } } }
MIN_CPU_PLATFORM
は、最小 CPU プラットフォームに置き換えます。リソースを予約するゾーンで CPU プラットフォームが使用可能であることを確認するには、ゾーンごとに使用可能な CPU プラットフォームを表示します。予約する VM 間のネットワーク レイテンシを短縮するためにコンパクト プレースメント ポリシーを指定するには、リクエスト本文に
resourcePolicies
フィールドを含めます。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "resourcePolicies": { "policy" : "projects/example-project/regions/REGION/resourcePolicies/COMPACT_PLACEMENT_POLICY_NAME" }, "specificReservation": { "count": "NUMBER_OF_VMS", "instanceProperties": { "machineType": "MACHINE_TYPE" } }, "specificReservationRequired": true }
次のように置き換えます。
REGION
: コンパクト プレースメント ポリシーが存在するリージョン。予約は、プレースメント ポリシーのリージョン内でのみ作成できます。COMPACT_PLACEMENT_POLICY_NAME
: 既存のコンパクト プレースメント ポリシーの名前。
また、コンパクト プレースメント ポリシーを指定する単一プロジェクト予約を作成するときにエラーを回避するため、次の項目を指定します。
コンパクト プレースメント ポリシーでサポートされているマシンタイプ。
true
に設定されているspecificReservationRequired
フィールド。これは、この予約を明示的にターゲットとする VM のみがこの予約を使用できることを意味します。
この予約を明示的にターゲットとする VM のみがこの予約を使用できることを指定するには、リクエスト本文に
specificReservationRequired
フィールドを追加し、値をtrue
に設定します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "specificReservation": { "count": "NUMBER_OF_VMS", "instanceProperties": { "machineType": "MACHINE_TYPE" } }, "specificReservationRequired": true }
Vertex AI のカスタム トレーニング ジョブまたは予測ジョブで A2 または A3 VM の予約を使用できるようにするには、
beta.reservations.insert
メソッドにPOST
リクエストを送信します。リクエスト本文にserviceShareType
フィールドを追加し、値をALLOW_ALL
に設定します。POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "reservationSharingPolicy": { "serviceShareType": "ALLOW_ALL" }, "specificReservation": { "count": "NUMBER_OF_VMS", "instanceProperties": { "machineType": "MACHINE_TYPE" } } }
Compute Engine で予約を自動的に削除できるようにするには、次のいずれかのメソッドを選択します。
特定の日時の予約を削除するには、
beta.reservations.insert
メソッドにPOST
リクエストを送信します。リクエスト本文に、deleteAtTime
フィールドを含めます。POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations { "deleteAtTime": "DELETE_AT_TIME", "name": "RESERVATION_NAME", "specificReservation": { "count": "NUMBER_OF_VMS", "instanceProperties": { "machineType": "MACHINE_TYPE" } } }
DELETE_AT_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
を指定します。
特定の期間の経過後に予約を削除するには、
beta.reservations.insert
メソッドにPOST
リクエストを送信します。リクエスト本文に、deleteAfterDuration
フィールドを含めます。POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations { "deleteAfterDuration": { "seconds": "DELETE_AFTER_DURATION" }, "name": "RESERVATION_NAME", "specificReservation": { "count": "NUMBER_OF_VMS", "instanceProperties": { "machineType": "MACHINE_TYPE" } } }
DELETE_AFTER_DURATION
は期間(秒単位)に置き換えます。たとえば、86,400 秒(1 日)の場合は86400
を指定します。
予約を表示する方法を確認する。
コミットメントに予約を関連付ける方法を学習する。
予約を使用する方法を学習する。
予約の使用量をモニタリングする方法を確認する。
Terraform
ローカル開発環境でこのページの Terraform サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
詳細については Set up authentication for a local development environment をご覧ください。
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 ロールの付与を管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。この事前定義ロールには、単一プロジェクトの予約の作成に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
単一プロジェクトの予約を作成するには、次の権限が必要です。
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
単一プロジェクトの予約を作成する
予約を使用するには、VM がその予約と完全に一致するプロパティを持っている必要があります。予約する VM のプロパティを指定するには、このドキュメントの次のいずれかのセクションを選択します。
デフォルトでは、一致するプロパティを持つすべての VM が予約を自動的に使用できます。予約の使用を制御する場合は、次のいずれかを行います。
また、単一プロジェクトの予約を作成するときにコンパクト プレースメント ポリシーを指定できます。コンパクト プレースメント ポリシーでは、ネットワーク レイテンシを短縮するために、VM を相互にできるだけ近づけることを指定します。
インスタンス テンプレートを指定する
インスタンス テンプレートを指定して予約を作成するときにエラーが発生しないようにするには、次の点を確認してください。
インスタンス テンプレートを指定して単一プロジェクトの予約を作成するには、次のいずれかの方法を選択します。
コンソール
gcloud
単一プロジェクトの予約を作成するには、
gcloud compute reservations create
コマンドを使用します。オプションのフラグを使用せずにインスタンス テンプレートを指定して単一プロジェクトの予約を作成するには、次のコマンドを実行します。
gcloud compute reservations create RESERVATION_NAME \ --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
次のように置き換えます。
たとえば、グローバル インスタンス テンプレートを指定してゾーン
us-central1-a
で 10 個の VM の予約を作成するには、次のコマンドを実行します。gcloud compute reservations create my-reservation \ --source-instance-template=projects/example-project/global/example-instance-template \ --vm-count=10 \ --zone=us-central1-a
必要に応じて、以下の 1 つ以上の操作を行うことができます。
Go
Java
Node.js
Python
REST
単一プロジェクトの予約を作成するには、
reservations.insert
メソッドにPOST
リクエストを行います。オプションのフラグを使用せずにインスタンス テンプレートを指定して単一プロジェクトの予約を作成するには、次の
POST
リクエストを送信します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "specificReservation": { "count": "NUMBER_OF_VMS", "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME" } }
次のように置き換えます。
たとえば、グローバル インスタンス テンプレートを指定してゾーン
us-central1-a
で 10 個の VM の予約を作成するには、次のPOST
リクエストを送信します。POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations { "name": "my-reservation", "specificReservation": { "count": "10", "sourceInstanceTemplate": "projects/example-project/global/instanceTemplates/example-instance-template" } }
必要に応じて、以下の 1 つ以上の操作を行うことができます。
既存の VM を指定する
既存の VM に基づく予約は、その VM と同じゾーン内にのみ作成できます。
予約を作成した後、参照用 VM と一致するプロパティを持つ VM を作成することで、その予約を使用できます。そのためには、次のいずれかを行います。
既存の VM のプロパティを使用する単一プロジェクトの予約を作成するには、次の操作を行います。
プロパティを直接指定する
プロパティを直接指定して単一プロジェクトの予約を作成するには、次のいずれかの方法を選択します。
コンソール
gcloud
単一プロジェクトの予約を作成するには、
gcloud compute reservations create
コマンドを使用します。オプションのフラグを使用せずにプロパティを直接指定して、単一プロジェクトの予約を作成するには、次のコマンドを実行します。
gcloud compute reservations create RESERVATION_NAME \ --machine-type=MACHINE_TYPE \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
次のように置き換えます。
たとえば、ゾーン
us-central1-a
で 10 個の VM(各 VM は、4 つの vCPU を備えた事前定義されたマシンタイプ N2 を使用)の予約を作成するには、次のコマンドを実行します。gcloud compute reservations create my-reservation \ --machine-type=n2-standard-4 \ --vm-count=10 \ --zone=us-central1-a
必要に応じて、以下の 1 つ以上の操作を行うことができます。
Go
Java
Node.js
Python
Terraform
単一プロジェクトの予約を作成するには、
google_compute_reservation
Terraform リソースを使用します。たとえば、2 つの vCPU を備えた 1 つの N2 事前定義マシンタイプに単一プロジェクトの予約を作成するには、次のリソースを使用します。
Terraform の使用方法の詳細については、Google Cloud で Terraform を使用するをご覧ください。
REST
単一プロジェクトの予約を作成するには、
reservations.insert
メソッドにPOST
リクエストを行います。オプション フィールドを使用せずにプロパティを直接指定して、単一プロジェクトの予約を作成するには、次の
POST
リクエストを送信します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "specificReservation": { "count": "NUMBER_OF_VMS", "instanceProperties": { "machineType": "MACHINE_TYPE" } } }
次のように置き換えます。
たとえば、ゾーン
us-central1-a
で 10 個の VM(各 VM は、4 つの vCPU を備えた事前定義されたマシンタイプ N2 を使用)の予約を作成するには、次のPOST
リクエストを送信します。POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations { "name": "my-reservation", "specificReservation": { "count": "10", "instanceProperties": { "machineType": "n2-standard-4", } } }
必要に応じて、以下の 1 つ以上の操作を行うことができます。
トラブルシューティング
予約の作成に関するトラブルシューティング方法を確認してください。
次のステップ
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2024-12-23 UTC。
-