このドキュメントでは、Flex Start の仮想マシン(VM)インスタンスを使用するマネージド インスタンス グループ(MIG)を作成する方法について説明します。Flex Start VM は最大 7 日間中断なく実行され、GPU などの需要の高いリソースを割引価格で取得できます。これらの機能により、Flex Start VM は、モデルのファインチューニングやバッチ推論などの短期間のワークロードを実行するための費用対効果の高いソリューションになります。
このドキュメントの手順では、リソースが使用可能になると個々の Flex Start VM を作成する MIG を作成する方法について説明します。そのため、MIG は最初にリクエストされた VM の一部のみを作成し、後で容量が許す限り残りの VM を追加することがあります。MIG で Flex Start VM を一度にすべて作成する場合は、代わりに MIG でのサイズ変更リクエストについてをご覧ください。
MIG の作成に使用できる他の方法については、MIG を作成するための基本的なシナリオをご覧ください。
始める前に
- リクエストするリソースに十分な割り当てがあることを確認します。詳細については、数量に基づく割り当てをご覧ください。
-
まだ設定していない場合は、認証を設定します。認証では、 Cloud de Confiance by S3NS サービスと API にアクセスするための ID が確認されます。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。
このページのサンプルをどのように使うかに応じて、タブを選択してください。
コンソール
Cloud de Confiance コンソールを使用して Cloud de Confiance by S3NS サービスと API にアクセスする場合、認証を設定する必要はありません。
gcloud
-
Google Cloud CLI をインストールし、 フェデレーション ID を使用して gcloud CLI にログインします。ログイン後、次のコマンドを実行して Google Cloud CLI を初期化します。
gcloud init
-
- デフォルトのリージョンとゾーンを設定します。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Google Cloud CLI をインストールし、 フェデレーション ID を使用して gcloud CLI にログインします。
詳細については、 Cloud de Confiance 認証ドキュメントの REST を使用して認証するをご覧ください。
必要なロール
Flex Start VM を使用する MIG の作成に必要な権限を取得するには、プロジェクトに対する Compute インスタンス管理者(v1) (roles/compute.instanceAdmin.v1)IAM ロールを付与するよう管理者に依頼します。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
この事前定義ロールには、Flex Start VM を使用する MIG の作成に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
Flex Start VM を使用する MIG を作成するには、次の権限が必要です。
-
インスタンス テンプレートを作成する: プロジェクトに対する
compute.instanceTemplates.create -
MIG を作成する: プロジェクトに対する
compute.instanceGroupManagers.create
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
Flex Start VM を使用する MIG を作成する
Flex Start VM を使用する MIG を作成するには、次の手順を完了する必要があります。
Flex-start VM の作成用に構成されたインスタンス テンプレートを作成する
このセクションで説明するように、Flex Start VM の作成用に構成されたインスタンス テンプレートを作成する必要があります。テンプレートを作成したら、それを使用して MIG を作成します。
Flex Start VM の作成用に構成されたインスタンス テンプレートを作成するには、次のいずれかのオプションを選択します。
コンソール
Cloud de Confiance コンソールで、[インスタンス テンプレート] ページに移動します。
[インスタンス テンプレートを作成] をクリックします。[インスタンス テンプレートの作成] ページが表示されます。
[名前] フィールドに、インスタンス テンプレートの名前を入力します。
[ロケーション] セクションで、作成するインスタンス テンプレートのタイプを選択します。
リージョン インスタンス テンプレートの場合は、[リージョン] を選択し、テンプレートを作成するリージョンを選択します。Flex Start VM で使用するマシンタイプに基づいて、サポートされているリージョンを指定します。
グローバル インスタンス テンプレートの場合は、[グローバル] を選択します。
[マシンの構成] セクションで、Flex Start VM でサポートされているマシンシリーズを選択します。
[プロビジョニング モデル] セクションで、次の操作を行います。
[VM プロビジョニング モデル] リストで、[Flex Start] を選択します。
インスタンス テンプレートによって作成される VM の実行時間を設定するには、[時間を入力] フィールドに VM の実行時間を入力します。値は 1 時間(
1)~ 7 日間(168)の範囲で指定してください。VM が実行期間の終了に達すると、Compute Engine は作成時間に基づいて各 VM を個別に削除します。
省略可: デフォルト値のブートディスクのタイプまたはイメージを変更するには、[ブートディスク] セクションで [変更] をクリックします。プロンプトに従ってブートディスクを変更します。
[作成] をクリックします。
gcloud
Flex Start VM の作成用に構成されたインスタンス テンプレートを作成するには、gcloud compute 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 \
--instance-termination-action=DELETE \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--max-run-duration=RUN_DURATION \
--provisioning-model=FLEX_START \
--reservation-affinity=none
次のように置き換えます。
INSTANCE_TEMPLATE_NAME: 作成するインスタンス テンプレートの名前。IMAGE_PROJECT: イメージを含むイメージ プロジェクト。例:debian-cloudサポートされているイメージ プロジェクトの詳細については、公開イメージをご覧ください。IMAGE_FAMILY: 最新の非推奨ではない OS イメージを指定するイメージ ファミリー。たとえば、debian-12を指定すると、Debian 12 イメージ ファミリーの最新バージョンが使用されます。イメージ ファミリーの使用の詳細については、イメージ ファミリーのベスト プラクティスをご覧ください。REGION: インスタンス テンプレートを作成するリージョン。Flex-start VM で使用するマシンタイプに基づいて、サポートされているリージョンを指定します。MACHINE_TYPE: Flex Start VM に使用する GPU マシンタイプまたは H4D マシンタイプ。N1 マシンタイプを指定する場合は、--acceleratorフラグを設定して、VM にアタッチする GPU の数とタイプを定義する必要があります。RUN_DURATION: リクエストされた VM を実行する期間。VM の実行時間が終了すると、Compute Engine は作成時間に基づいて各 VM を個別に削除します。実行時間は、日数、時間、分、秒として指定し、その後にそれぞれd、h、m、sを続ける必要があります。たとえば、30 分の場合は30mを指定し、1 日と 2 時間 3 分 4 秒の場合は1d2h3m4sを指定します。値は 10 分~ 7 日の範囲で指定してください。
REST
Flex Start VM の作成用に構成されたインスタンス テンプレートを作成するには、次のいずれかの POST リクエストを送信します。
リージョン インスタンス テンプレートを作成する:
regionInstanceTemplates.insertメソッドグローバル インスタンス テンプレートを作成する:
instanceTemplates.insertメソッド
たとえば、リージョン インスタンス テンプレートを作成するには、次のようにリクエストを送信します。
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": {
"instanceTerminationAction": "DELETE",
"maxRunDuration": {
"seconds": RUN_DURATION
},
"onHostMaintenance": "TERMINATE",
"provisioningModel": "FLEX_START"
}
}
}
次のように置き換えます。
PROJECT_ID: インスタンス テンプレートを作成するプロジェクトの ID。REGION: インスタンス テンプレートを作成するリージョン。Flex-start VM で使用するマシンタイプに基づいて、サポートされているリージョンを指定します。INSTANCE_TEMPLATE_NAME: インスタンス テンプレートの名前。IMAGE_PROJECT: イメージを含むイメージ プロジェクト(例:debian-cloud)。サポートされているイメージ プロジェクトの詳細については、公開イメージをご覧ください。IMAGE: 次のいずれかを指定します。OS イメージの特定のバージョン。例:
debian-12-bookworm-v20240617。イメージ ファミリー。
family/IMAGE_FAMILYの形式にする必要があります。この値により、非推奨ではない最新の OS イメージが指定されます。たとえば、family/debian-12を指定すると、Debian 12 イメージ ファミリーの最新バージョンが使用されます。イメージ ファミリーの使用の詳細については、イメージ ファミリーのベスト プラクティスをご覧ください。
MACHINE_TYPE: VM に使用する GPU マシンタイプ。N1 マシンタイプを指定する場合は、guestAcceleratorsフィールドを含めて、VM にアタッチする GPU の数とタイプを定義する必要があります。RUN_DURATION: リクエストされた VM の実行時間(秒単位)。VM の実行時間が終了すると、Compute Engine は作成時間に基づいて各 VM を個別に削除します。実行期間は600(600 秒、10 分)から604800(604,800 秒、7 日間)の範囲で指定する必要があります。
インスタンス テンプレートを作成したら、テンプレートの詳細を表示してプロパティを確認できます。
リージョン MIG またはゾーン MIG を作成する
このセクションの説明に従って、リージョン MIG またはゾーン MIG を作成します。自動スケーリングを構成せず、修復をオフにする必要があります。リクエストされたリソースが使用できない場合、Compute Engine はリクエストが成功するか、MIG の VM の数を減らすか、MIG を削除するまで、リソースの割り当てを試行し続けます。
リージョン MIG またはゾーン MIG を作成するには、次のいずれかのオプションを選択します。
コンソール
Cloud de Confiance コンソールで、[インスタンス グループ] ページに移動します。
[インスタンス グループを作成] をクリックします。[インスタンス グループの作成] ページが表示されます。
[名前] フィールドに、MIG の名前を入力します。
[インスタンス テンプレート] リストで、前のセクションで作成したインスタンス テンプレートを選択します。
[インスタンス数] フィールドに、MIG で作成する Flex Start VM の数を入力します。ワークロードに特定の VM 名が必要な場合は、
0と入力して VM を作成しないようにします。MIG を作成したら、特定の名前の VM を追加します。[ロケーション] セクションで、ゾーン MIG またはリージョン MIG を作成するかどうかを次のように指定します。
ゾーン MIG を作成するには、[単一ゾーン] を選択します。リージョン MIG を作成する場合は、[マルチゾーン] を選択します。
MIG のリージョンとゾーンを選択します。
リージョン MIG を作成する場合は、次の操作を行います。
[ターゲット分配形態] フィールドで、[任意のシングルゾーン] を選択します。
表示されたダイアログで、[インスタンスの再分配を無効化] をクリックします。
自動スケーリング構成を削除するには、[自動スケーリング] セクションで次の操作を行います。
[自動スケーリングを構成] をクリックします。
[自動スケーリング モード] リストで、[自動スケーリングの構成を削除] をクリックします。
確認ダイアログで [削除] をクリックします。
修復を無効にするには、[障害発生時のアクション] セクションの [障害発生時のデフォルトのアクション] リストで、[アクションなし] を選択します。
[作成] をクリックします。
gcloud
MIG を作成するには、gcloud compute instance-groups managed create コマンドを使用します。
作成する MIG のタイプに基づいて、コマンドに次のフラグを指定します。
ゾーン MIG を作成するには、
--zoneフラグを含めます。gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --default-action-on-vm-failure=do-nothing \ --size=SIZE \ --template=INSTANCE_TEMPLATE_URL \ --zone=ZONEリージョン MIG を作成するには、
--regionフラグと--target-distribution-shapeフラグを指定します。gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --default-action-on-vm-failure=do-nothing \ --size=SIZE \ --template=INSTANCE_TEMPLATE_URL \ --region=REGION \ --target-distribution-shape=SHAPE
次のように置き換えます。
INSTANCE_GROUP_NAME: MIG の名前。INSTANCE_TEMPLATE_URL: 前のセクションで作成したインスタンス テンプレートの URL。この URL には、インスタンス テンプレートの ID または名前を含めることができます。次のいずれかの値を指定します。リージョン インスタンス テンプレートの場合:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_IDグローバル インスタンス テンプレートの場合:
INSTANCE_TEMPLATE_ID
SIZE: MIG で作成する Flex Start VM の数。ワークロードに特定の VM 名が必要な場合は、0を指定して VM を作成しないようにします。MIG を作成したら、特定の名前の VM を追加します。ZONE: ゾーン MIG を作成するゾーン。リージョン インスタンス テンプレートを使用して MIG を作成する場合は、テンプレートと同じリージョン内のゾーンを指定する必要があります。REGION: リージョン MIG を作成するリージョン。リージョン インスタンス テンプレートを使用して MIG を作成する場合は、テンプレートのリージョンと同じリージョンを指定する必要があります。SHAPE: MIG がリージョン MIG のゾーン間で Flex Start VM を分散する方法。次のいずれかの値を指定します。可用性に基づいて複数のゾーンに VM を作成するには:
ANY可用性に基づいて単一のゾーンに VM を作成するには:
ANY_SINGLE_ZONE
詳細については、リージョン MIG のターゲット分配形態をご覧ください。
REST
MIG を作成するには、次のいずれかのメソッドに POST リクエストを送信します。
ゾーン MIG を作成するには、
instanceGroupManagers.insertメソッドに次のリクエストを送信します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers { "name": "INSTANCE_GROUP_NAME", "versions": [ { "instanceTemplate": "INSTANCE_TEMPLATE_URL" } ], "instanceLifecyclePolicy": { "defaultActionOnFailure": "DO_NOTHING" }, "targetSize": SIZE }リージョン MIG を作成するには、
regionInstanceGroupManagers.insertメソッドに次のリクエストを送信します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers { "name": "INSTANCE_GROUP_NAME", "instanceTemplate": "INSTANCE_TEMPLATE_URL", "instanceLifecyclePolicy": { "defaultActionOnFailure": "DO_NOTHING" }, "targetSize": SIZE, "distributionPolicy": { "targetShape": "SHAPE" } }
次のように置き換えます。
PROJECT_ID: リージョン MIG またはゾーン MIG を作成するプロジェクトの ID。ZONE: ゾーン MIG を作成するゾーン。リージョン インスタンス テンプレートを使用して MIG を作成する場合は、テンプレートと同じリージョン内のゾーンを指定する必要があります。REGION: リージョン MIG を作成するリージョン。リージョン インスタンス テンプレートを使用して MIG を作成する場合は、テンプレートのリージョンと同じリージョンを指定する必要があります。INSTANCE_GROUP_NAME: MIG の名前。INSTANCE_TEMPLATE_URL: 前のセクションで作成したインスタンス テンプレートの URL。この URL には、インスタンス テンプレートの ID または名前を含めることができます。次のいずれかの値を指定します。リージョン インスタンス テンプレートの場合:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_IDグローバル インスタンス テンプレートの場合:
INSTANCE_TEMPLATE_ID
SIZE: MIG で作成する Flex Start VM の数。ワークロードに特定の VM 名が必要な場合は、0を指定して VM を作成しないようにします。MIG を作成したら、特定の名前の VM を追加します。SHAPE: MIG がリージョン MIG のゾーン間で Flex Start VM を分散する方法。次のいずれかの値を指定します。可用性に基づいて複数のゾーンに VM を作成するには:
ANY可用性に基づいて単一のゾーンに VM を作成するには:
ANY_SINGLE_ZONE
詳細については、リージョン MIG のターゲット分配形態をご覧ください。
次のステップ
MIG とマネージド VM に関する情報を表示する方法を確認する。
VM と GPU の実際の使用量と予測される使用量を表示する方法を確認する。