このドキュメントでは、GPU が関連付けられている仮想マシン(VM)インスタンスのマネージド インスタンス グループ(MIG)でサイズ変更リクエストを作成する方法について説明します。
MIG でサイズ変更リクエストを作成すると、GPU などの需要の高いリソースを取得し、正確な数の VM を一度に作成して費用を最適化できます。
始める前に
- サイズ変更リクエストの仕組みを確認します。
- リクエストするリソースに十分な GPU 割り当てがあることを確認するには、GPU 割り当てを確認するをご覧ください。
-
まだ設定していない場合は、認証を設定します。認証とは、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.
-
インスタンス テンプレートを作成する: プロジェクトに対する
compute.instanceTemplates.create
-
ゾーン MIG を作成する: プロジェクトに対する
compute.instanceGroupManagers.create
-
MIG でサイズ変更リクエストを作成する: プロジェクトに対する
compute.instanceGroupManagers.update
ホスト メンテナンス イベント中に VM を停止します。
予約は使用しないでください。
Google Cloud Console で、[インスタンス テンプレート] ページに移動します。
[インスタンス テンプレートを作成] をクリックします。
[名前] フィールドに、インスタンス テンプレートの名前を入力します。
[ロケーション] セクションで、次のいずれかのオプションを選択します。
グローバル インスタンス テンプレートを作成するには、[グローバル] を選択します(まだ選択されていない場合)。
リージョン インスタンス テンプレートを作成するには、[リージョン] を選択し、インスタンス テンプレートを作成するリージョンを選択します。
[マシンの構成] セクションで、次の操作を行います。
[GPU] タブをクリックします。
[GPU のタイプ] リストで、GPU のタイプを選択します。
[GPU の数] リストで、GPU の数を選択します。
省略可: GPU モデルがグラフィック ワークロード用の NVIDIA RTX 仮想ワークステーション(vWS)グラフィックを多用するワークロードを実行する場合は、仮想ワークステーション(NVIDIA GRID)を有効にするをご覧ください。
[マシンタイプ] セクションでマシンタイプを選択します。
省略可: デフォルト値のブートディスクのタイプまたはイメージを変更するには、[ブートディスク] セクションで [変更] をクリックします。プロンプトに従ってブートディスクを変更します。
[詳細オプション] セクションを開き、次の操作を行います。
[管理] セクションを開きます。
[予約] リストで、[使用しない] を選択します。
[作成] をクリックします。
--maintenance-policy
フラグがTERMINATE
に設定されています。--reservation-affinity
フラグがnone
に設定されています。INSTANCE_TEMPLATE_NAME
: 作成するインスタンス テンプレートの名前。IMAGE_PROJECT
: イメージを含むイメージ プロジェクト。例:debian-cloud
サポートされているイメージ プロジェクトの詳細については、公開イメージをご覧ください。IMAGE_FAMILY
: イメージ ファミリー。これにより、非推奨ではない最新の OS イメージが指定されます。たとえば、debian-12
を指定すると、Debian 12 イメージ ファミリーの最新バージョンが使用されます。イメージ ファミリーの使用の詳細については、イメージ ファミリーのベスト プラクティスをご覧ください。debian-12-buster-v20240701
など、特定のバージョンの OS イメージを使用する場合は、--image-family
フラグを--image
フラグに置き換えます。REGION
: インスタンス テンプレートを作成するリージョン。MACHINE_TYPE
: GPU をサポートするマシンタイプ。N1 マシンタイプを指定する場合は、--accelerator
フラグを設定して、VM にアタッチする GPU の数とタイプを指定します。リージョン インスタンス テンプレートを作成するには:
regionInstanceTemplates.insert
メソッドグローバル インスタンス テンプレートを作成するには:
instanceTemplates.insert
メソッドscheduling.onHostMaintenance
フィールドを追加して、TERMINATE
に設定します。reservationAffinity.consumeReservationType
フィールドを追加し、NO_RESERVATION
に設定します。PROJECT_ID
: インスタンス テンプレートを作成するプロジェクトの ID。REGION
: インスタンス テンプレートを作成するリージョン。INSTANCE_TEMPLATE_NAME
: 作成するインスタンス テンプレートの名前。IMAGE_PROJECT
: イメージを含むイメージ プロジェクト。例:debian-cloud
サポートされているイメージ プロジェクトの詳細については、公開イメージをご覧ください。IMAGE
: 次のいずれかを指定します。OS イメージの特定のバージョン。例:
debian-12-bookworm-v20240617
。イメージ ファミリー。
family/IMAGE_FAMILY
の形式にする必要があります。これにより、非推奨ではない最新の OS イメージが指定されます。たとえば、family/debian-12
を指定すると、Debian 12 イメージ ファミリーの最新バージョンが使用されます。イメージ ファミリーの使用の詳細については、イメージ ファミリーのベスト プラクティスをご覧ください。
MACHINE_TYPE
: GPU をサポートするマシンタイプ。N1 マシンタイプを指定する場合は、リクエスト本文にguestAccelerators
フィールドを含めて、VM に関連付けられる GPU の数とタイプを指定します。MIG の更新タイプを追従型に設定する(デフォルト)。
MIG で自動スケーリングを構成している場合は、自動スケーリングの構成を削除します。
リージョン MIG を使用している場合は、ターゲット分配形態を
ANY_SINGLE_ZONE
に設定します。Google Cloud コンソールの [インスタンス グループ] ページに移動します。
[インスタンス グループの作成] をクリックします。
[インスタンス グループの作成] ページが開きます。
[名前] フィールドに、MIG の名前を入力します。
[インスタンス テンプレート] リストで、前のセクションで作成したインスタンス テンプレートを選択します。リージョン インスタンス テンプレートを選択すると、[リージョン] リストはインスタンス テンプレートのリージョンに設定されます。
[ロケーション] セクションで、ゾーン MIG またはリージョン MIG を作成するかどうかを次のように指定します。
ゾーン MIG を作成するには、[単一ゾーン] を選択します。リージョン MIG を作成する場合は、[複数のゾーン] を選択します。
MIG のリージョンとゾーンを選択します。
リージョン MIG を作成する場合は、次の操作を行います。
[ターゲット分配形態] フィールドで、[任意のシングルゾーン] を選択します。このオプションは、後続の手順で自動スケーリング構成を削除した後にのみ選択できます。
任意の単一ゾーン オプションを選択したら、表示されたダイアログで [インスタンスの再分配を無効にする] をクリックします。
自動スケーリングの構成を削除します。
[自動スケーリング] セクションで、[自動スケーリング モード] リストをクリックし、[自動スケーリングの構成を削除] をクリックします。
確認ダイアログで [削除] をクリックします。
次のように修復を無効にします。
[VM インスタンスのライフサイクル] セクションで、[障害発生時のデフォルトのアクション] リストをクリックします。
[対応なし] を選択します。
次のいずれかを行います。
この時点でサイズ変更リクエストを作成する場合は、次の操作を行います。
[インスタンス数] フィールドに、一度に作成する VM の数を入力します。
[Use resize request to create VMs all at once] チェックボックスをオンにします。
[リクエストされた実行時間] フィールドと [単位] リストで、VM の実行期間を指定します。期間は 1 時間から 7 日の範囲で指定してください。
それ以外の場合は、[インスタンス数] フィールドに「
0
」と入力します。後で、サイズ変更リクエストを作成して、グループに VM を追加できます。
[作成] をクリックします。
ゾーン MIG を作成するには、次のコマンドを実行します。
gcloud compute instance-groups managed create INSTANCE_GROUP_URL \ --template=INSTANCE_TEMPLATE_NAME \ --size=0 \ --zone=ZONE \ --default-action-on-vm-failure=do_nothing
リージョン MIG を作成するには、次のコマンドを実行します。
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --template=INSTANCE_TEMPLATE_URL \ --size=0 \ --region=REGION \ --target-distribution-shape=any-single-zone \ --instance-redistribution-type=none \ --default-action-on-vm-failure=do_nothing
INSTANCE_GROUP_NAME
: 作成する MIG の名前。INSTANCE_TEMPLATE_URL
: 前のセクションで作成したインスタンス テンプレートの部分的な URL。リージョン インスタンス テンプレートを使用して MIG を作成する場合は、テンプレートのリージョン内にのみ MIG を作成できます。次のいずれかの値を指定します。リージョン インスタンス テンプレートの場合:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_NAME
グローバル インスタンス テンプレートの場合:
INSTANCE_TEMPLATE_NAME
ZONE
: MIG を作成するゾーン。REGION
: MIG を作成するリージョン。ゾーン MIG を作成するには、次のように
instanceGroupManagers.insert
メソッドを使用してPOST
リクエストを送信します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers { "versions": [ { "instanceTemplate": "INSTANCE_TEMPLATE_URL" } ], "name": "INSTANCE_GROUP_NAME", "targetSize": 0, "instanceLifecyclePolicy": { "defaultActionOnFailure": "DO_NOTHING" } }
リージョン MIG を作成するには、次のように
regionInstanceGroupManagers.insert
メソッドを使用してPOST
リクエストを送信します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers { "versions": [ { "instanceTemplate": "INSTANCE_TEMPLATE_URL" } ], "name": "INSTANCE_GROUP_NAME", "targetSize": 0, "distributionPolicy": { "targetShape": "ANY_SINGLE_ZONE" }, "updatePolicy": { "instanceRedistributionType": "NONE" }, "instanceLifecyclePolicy": { "defaultActionOnFailure": "DO_NOTHING" } }
PROJECT_ID
: 前のセクションで作成したインスタンス テンプレートが配置されているプロジェクトの ID。INSTANCE_TEMPLATE_URL
: 前のセクションで作成したインスタンス テンプレートの部分的な URL。リージョン インスタンス テンプレートを使用して MIG を作成する場合は、テンプレートのリージョン内にのみ MIG を作成できます。次のいずれかの値を指定します。リージョン インスタンス テンプレートの場合:
regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_NAME
グローバル インスタンス テンプレートの場合:
global/instanceTemplates/INSTANCE_TEMPLATE_NAME
ZONE
: MIG を作成するゾーン。REGION
: MIG を作成するリージョン。INSTANCE_GROUP_NAME
: 作成する MIG の名前。Google Cloud コンソールの [インスタンス グループ] ページに移動します。
[名前] 列で、サイズ変更リクエストを作成する MIG の名前をクリックします。
MIG の概要ページが開きます。
[サイズ変更リクエスト] 行で、
[サイズ変更リクエストを編集] をクリックします。[
サイズ変更の新規リクエスト] をクリックします。[サイズ変更の新規リクエスト] ペインが表示されます。
[名前] フィールドに、サイズ変更リクエストの名前を入力します。
[必要な追加インスタンス数] フィールドに、一度に MIG に追加する VM の数を入力します。
[リクエストされた実行時間] フィールドと [単位] フィールドで、リクエストされた VM の実行期間を指定します。期間は 1 時間から 7 日の範囲で指定してください。
[作成] をクリックします。
ゾーン MIG でサイズ変更リクエストを作成するには、
instance-groups managed resize-requests create
コマンドを使用します。gcloud compute instance-groups managed resize-requests create INSTANCE_GROUP_NAME \ --resize-request=RESIZE_REQUEST_NAME \ --resize-by=COUNT \ --requested-run-duration=RUN_DURATION \ --zone=ZONE
リージョン MIG でサイズ変更リクエストを作成するには、
beta instance-groups managed resize-requests create
コマンドを使用します。gcloud beta compute instance-groups managed resize-requests create INSTANCE_GROUP_NAME \ --resize-request=RESIZE_REQUEST_NAME \ --resize-by=COUNT \ --requested-run-duration=RUN_DURATION \ --region=REGION
INSTANCE_GROUP_NAME
: サイズ変更リクエストを作成するために構成された MIG の名前。RESIZE_REQUEST_NAME
: サイズ変更リクエストの名前。指定された MIG 内で一意である必要があります。それ以外の場合、サイズ変更リクエストは作成されません。COUNT
: MIG に一度に追加する VM の数。RUN_DURATION
: リクエストされた VM を実行する期間。値は、日数、時間、分、秒として指定し、その後にそれぞれd
、h
、m
、s
を配置する必要があります。たとえば、30 分の場合は30m
を指定し、1 日と 2 時間 3 分 4 秒の場合は1d2h3m4s
を指定します。値は 10 分~7 日の範囲で指定してください。ZONE
: MIG が配置されているゾーン。REGION
: MIG が配置されているリージョン。ゾーン MIG でサイズ変更リクエストを作成するには、
instanceGroupManagerResizeRequests.insert
メソッドを使用してPOST
リクエストを送信します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests
リージョン MIG でサイズ変更リクエストを作成するには、
beta.regionInstanceGroupManagerResizeRequests.insert
メソッドを使用してPOST
リクエストを送信します。POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests
PROJECT_ID
: 指定した MIG が配置されているプロジェクトの ID。ZONE
: MIG が配置されているゾーン。REGION
: MIG が配置されているリージョン。INSTANCE_GROUP_NAME
: サイズ変更リクエストを作成するために構成された MIG の名前。RESIZE_REQUEST_NAME
: サイズ変更リクエストの名前。指定された MIG 内で一意である必要があります。それ以外の場合、サイズ変更リクエストは作成されません。COUNT
: MIG に一度に追加する VM の数。RUN_DURATION
: リクエストされた VM の実行時間(秒単位)。値は600
(600 秒、10 分)から604800
(604,800 秒、7 日間)の範囲で指定する必要があります。MIG でサイズ変更リクエストを表示、キャンセル、削除する方法を確認する。
MIG とマネージド VM に関する情報を表示する方法を確認する。
- VM と GPU の実際の使用量と予測される使用量を表示する方法を確認する。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
必要なロール
MIG でサイズ変更リクエストを作成するために必要な権限を取得するには、プロジェクトに対する Compute インスタンス管理者(v1)(
roles/compute.instanceAdmin.v1
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。この事前定義ロールには、MIG でサイズ変更リクエストを作成するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
MIG でサイズ変更リクエストを作成するには、次の権限が必要です。
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
サイズ変更リクエスト用に MIG を準備する
MIG でサイズ変更リクエストを作成するには、次のセクションで説明するように、インスタンス テンプレートと MIG を構成する必要があります。
インスタンス テンプレートの作成
MIG でサイズ変更リクエストを作成する場合は、MIG で次の構成のインスタンス テンプレートを使用する必要があります。
MIG でサイズ変更リクエストを作成するように構成されたインスタンス テンプレートを作成するには、次のいずれかの方法を選択します。
コンソール
gcloud
MIG でサイズ変更リクエストを作成するように構成されたインスタンス テンプレートを作成するには、次のフラグを指定して
instance-templates create
コマンドを使用します。たとえば、次のコマンドを使用してリージョン インスタンス テンプレートを作成します。グローバル インスタンス テンプレートを作成する場合は、
--instance-template-region
フラグを使用せずに同じコマンドを使用します。gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --image-project=IMAGE_PROJECT \ --image-family=IMAGE_FAMILY \ --instance-template-region=REGION \ --machine-type=MACHINE_TYPE \ --maintenance-policy=TERMINATE \ --reservation-affinity=none
次のように置き換えます。
REST
MIG でサイズ変更リクエストを作成するように構成されたインスタンス テンプレートを作成するには、次のいずれかのメソッドに
POST
リクエストを送信します。リクエストの本文で、次の操作を行います。
たとえば、リージョン インスタンス テンプレートを作成するには、次のように
POST
リクエストを送信します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates { "name": "INSTANCE_TEMPLATE_NAME", "properties": { "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "machineType": "MACHINE_TYPE", "networkInterfaces": [ { "network": "global/networks/default" } ], "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" }, "scheduling": { "onHostMaintenance": "TERMINATE" } } }
次のように置き換えます。
インスタンス テンプレートの作成の詳細については、インスタンス テンプレートを作成するをご覧ください。
MIG を作成または更新する
前のセクションの説明に従ってインスタンス テンプレートを作成したら、そのインスタンス テンプレートを使用して次のように MIG を作成するか、MIG を更新します。また、サイズ変更リクエスト用に MIG を準備するには、次のことを行う必要があります。
サイズ変更リクエストと互換性のある MIG を作成するには、次のいずれかのオプションを選択します。
コンソール
gcloud
--default-action-on-vm-failure
フラグをdo_nothing
に設定してinstance-groups managed create
コマンドを使用します。リージョン MIG を作成する場合は、--target-distribution-shape
フラグをany-single-zone
に設定し、--instance-redistribution-type
フラグをnone
に設定することも必要です。次のように置き換えます。
REST
次のように置き換えます。
MIG でサイズ変更リクエストを作成する
サイズ変更リクエストを作成する前に、前のセクションの説明に従って MIG を準備してください。
サイズ変更リクエストを作成してリクエストが承認され、リクエストされたすべてのリソースが使用可能になると、MIG はリクエストされた数の VM を一度に作成します。VM は、指定された実行期間の終了後に MIG によって削除されるまで、またはユーザーがそれらを削除するまで実行されます。
MIG でサイズ変更リクエストを作成するには、次のいずれかのオプションを選択します。
コンソール
gcloud
次のように置き換えます。
REST
リクエスト本文に、次のものを含めます。
{ "name": "RESIZE_REQUEST_NAME", "resizeBy": COUNT, "requestedRunDuration": { "seconds": "RUN_DURATION" } }
次のように置き換えます。
サイズ変更リクエストを作成した後、サイズ変更リクエストの詳細を表示して、ステータスの確認やトラブルシューティングを行うことができます。
次のステップ
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2024-12-05 UTC。
-