このドキュメントでは、プロジェクトにのみ存在するカスタム イメージから Compute Engine インスタンスを作成する方法について説明します。 インスタンスには、ブートローダー、ブート ファイル システム、OS イメージが含まれています。ソースディスク、イメージ、スナップショット、Cloud Storage に保存されているイメージからカスタム イメージを作成し、そのイメージを使用してインスタンスを作成できます。デフォルトでは、カスタム イメージは作成されたプロジェクトにのみ属します。
始める前に
- Google Cloud CLI または Compute Engine API を使用してイメージからインスタンスを作成する場合、1 秒あたりのインスタンスには 20 個の上限が存在します。1 秒間にこれ以上のインスタンスを作成する必要がある場合は、イメージ リソースの 割り当て上限の引き上げをリクエストします。
-
まだ設定していない場合は、認証を設定します。認証とは、 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.instances.create
-
カスタム イメージを使用してインスタンスを作成する: イメージに対する
compute.images.useReadOnly
Google Cloud コンソールで、[インスタンスを作成] ページに移動します。
プロンプトが表示されたら、プロジェクトを選択して [続行] をクリックします。
[インスタンスの作成] ページが表示され、[マシン構成] ペインが表示されます。
[マシンの構成] ペインで、次の操作を行います。
- [名前] フィールドに、インスタンスの名前を指定します。詳細については、リソースの命名規則をご覧ください。
省略可: [ゾーン] フィールドで、このインスタンスのゾーンを選択します。
デフォルトでは [すべて] が選択されています。このデフォルト選択を変更しない場合、マシンタイプと可用性に基づいてゾーンが自動的に選択されます。
インスタンスのマシン ファミリーを選択します。 Google Cloud コンソールに、選択したマシンファミリーで使用可能なマシンシリーズが表示されます。使用できるマシン ファミリー オプションは次のとおりです。
- 汎用
- コンピューティング最適化
- メモリ最適化
- ストレージ最適化
- GPU
[シリーズ] 列で、インスタンスのマシンシリーズを選択します。
前の手順でマシン ファミリーとして [GPU] を選択した場合は、必要な GPU タイプを選択します。選択した GPU タイプにマシンシリーズが自動的に選択されます。
[マシンタイプ] セクションで、インスタンスのマシンタイプを選択します。
ナビゲーション メニューで [OS とストレージ] をクリックします。表示された [オペレーティング システムとストレージ] ペインで、次の操作を行い、ブートディスクを構成します。
- [変更] をクリックします。[ブートディスク] ペインが表示され、[公開イメージ] タブが表示されます。
- [カスタム イメージ] をクリックします。[カスタム イメージ] タブが表示されます。
- イメージ プロジェクトを選択するには、[変更] をクリックし、イメージを含むプロジェクトを選択します。
- [イメージ] リストで、インポートするイメージを選択します。
- [ブートディスクの種類] リストで、ブートディスクの種類を選択します。
- [サイズ(GB)] フィールドに、ブートディスクのサイズを指定します。
- 省略可: 詳細な構成オプションについては、[ 詳細設定を表示] セクションを開きます。
- ブートディスクのオプションを確認して [オペレーティング システムとストレージ] ペインに戻るには、[選択] をクリックします。
ナビゲーション メニューで [ネットワーキング] をクリックします。表示された [ネットワーキング] ペインで、次の操作を行います。
- [ファイアウォール] セクションに移動します。
インスタンスへの HTTP または HTTPS トラフィックを許可するには、[HTTP トラフィックを許可する] または [HTTPS トラフィックを許可する] を選択します。
Compute Engine によってネットワーク タグがインスタンスに追加されます。また、対応する上り(内向き)ファイアウォール ルールが作成され、
tcp:80
(HTTP)またはtcp:443
(HTTPS)で着信するすべてのトラフィックが許可されます。このネットワーク タグでファイアウォール ルールがインスタンスに関連付けられます。詳細については、Cloud Next Generation Firewall のドキュメントでファイアウォール ルールの概要をご覧ください。
省略可: その他の構成オプションを指定します。詳細については、インスタンス作成時の構成オプションをご覧ください。
インスタンスを作成して起動するには、[作成] をクリックします。
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
gcloud compute instances create
コマンドを実行して、カスタム イメージを使用するインスタンスを作成します。gcloud compute instances create VM_NAME \ --image-project IMAGE_PROJECT \ IMAGE_FLAG \ --subnet SUBNET
次のように置き換えます。
VM_NAME
: VM の名前IMAGE_PROJECT
: イメージを含む Google Cloud プロジェクトの IDIMAGE_FLAG
: 次のいずれかを指定します。- カスタム イメージを指定するには、
--image IMAGE_NAME
フラグを使用します。例:
--image my-debian-image-v2
- カスタム イメージをカスタム イメージ ファミリーの一部として作成した場合は、
--image-family IMAGE_FAMILY_NAME
フラグを使用してそのカスタム イメージ ファミリーを指定します。これにより、カスタム イメージ ファミリー内の最新の非推奨ではない OS イメージと OS バージョンから VM が作成されます。たとえば、
--image-family my-debian-family
を指定すると、Compute Engine はカスタムmy-debian-family
イメージ ファミリーの最新の OS イメージから VM を作成します。
- カスタム イメージを指定するには、
SUBNET
: サブネットとインスタンスが同じプロジェクト内にある場合は、SUBNET
をインスタンスと同じリージョンにあるサブネットの名前に置き換えます。
- Google Cloud コンソールで、[VM インスタンス] ページに移動します。
- [インスタンスを作成] をクリックします。
- 必要なパラメータを指定します。
- ページの上部または下部で [同等のコード] をクリックし、[Terraform] タブをクリックして Terraform コードを表示します。
PROJECT_ID
: VM を作成するプロジェクトの IDZONE
: VM を作成するゾーンMACHINE_TYPE_ZONE
: 新しい VM に使用するマシンタイプを含むゾーンMACHINE_TYPE
: 新しい VM のマシンタイプ(事前定義またはカスタム)VM_NAME
: 新しい VM の名前IMAGE_PROJECT
: カスタム イメージを含むプロジェクトの名前IMAGE
: 次のいずれかを指定します。IMAGE
: カスタム イメージの名前。 例:"sourceImage": "projects/my-project-1234/global/images/my-debian-image-v2"
IMAGE_FAMILY
: カスタム イメージ ファミリーの一部としてカスタム イメージを作成した場合は、そのカスタム イメージ ファミリーを指定します。これにより、カスタム イメージ ファミリー内の最新の非推奨ではない OS イメージから VM が作成されます。たとえば、
"sourceImage": "projects/my-project-1234/global/images/family/my-debian-family"
を指定すると、Compute Engine はカスタムmy-debian-family
イメージ ファミリーの OS イメージの最新バージョンから VM を作成します。
NETWORK_NAME
: VM に使用する VPC ネットワーク。default
を指定して、デフォルト ネットワークを使用できます。ENABLE_SECURE_BOOT
: 省略可。Shielded VM 機能をサポートしているイメージを選択した場合は、Compute Engine がデフォルトで仮想トラステッド プラットフォーム モジュール(vTPM)と整合性モニタリングを有効にします。Compute Engine は、デフォルトではセキュアブートを有効にしません。true
にenableSecureBoot
を指定すると、Compute Engine は 3 つの Shielded VM 機能をすべて有効にした VM を作成します。Compute Engine が VM を起動した後、Shielded VM のオプションを変更するには、VM を停止する必要があります。- カスタム イメージとカスタム イメージを共有する方法の詳細を確認する。
- インスタンスのステータスを確認して、使用可能になるタイミングを確認する方法について学習する。
- インスタンスに接続する方法を確認する。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
必要なロール
カスタム イメージからインスタンスを作成するために必要な権限を取得するには、プロジェクトに対する Compute インスタンス管理者(v1) (
roles/compute.instanceAdmin.v1
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。この事前定義ロールには、カスタム イメージからインスタンスを作成するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
カスタム イメージからインスタンスを作成するには、次の権限が必要です。
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
カスタム イメージからインスタンスを作成する
カスタム イメージがまだない場合は、まずカスタム イメージを作成する必要があります。
カスタム イメージからインスタンスを作成する手順は次のとおりです。
コンソール
gcloud
Terraform
Terraform コードを生成するには、 Google Cloud コンソールの同等のコード コンポーネントを使用します。Go
このサンプルを試す前に、Compute Engine クイックスタート: クライアント ライブラリの使用に記載されている Go の設定手順に沿って操作します。詳細については、Compute Engine Go API リファレンス ドキュメントをご覧ください。
Compute Engine に対して認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Java
このサンプルを試す前に、Compute Engine クイックスタート: クライアント ライブラリの使用に記載されている Java の設定手順に沿って操作します。詳細については、Compute Engine Java API リファレンス ドキュメントをご覧ください。
Compute Engine に対して認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Node.js
このサンプルを試す前に、Compute Engine クイックスタート: クライアント ライブラリの使用に記載されている Node.js の設定手順に沿って操作します。詳細については、Compute Engine Node.js API リファレンス ドキュメントをご覧ください。
Compute Engine に対して認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Python
このサンプルを試す前に、Compute Engine クイックスタート: クライアント ライブラリの使用に記載されている Python の設定手順に沿って操作します。詳細については、Compute Engine Python API リファレンス ドキュメントをご覧ください。
Compute Engine に対して認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
REST
API でカスタム イメージを使用してインスタンスを作成するプロセスは、一般公開されているイメージを使用してインスタンスを作成する場合と同じです。
カスタム イメージからインスタンスを作成するには、
instances.insert
メソッドを使用します。POST https://compute.googleapis.com/compute/v1/projects/
PROJECT_ID
/zones/ZONE
/instances { "machineType":"zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "name":"VM_NAME
", "disks":[ { "initializeParams":{ "sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE" }, "boot":true } ], "networkInterfaces":[ { "network":"global/networks/NETWORK_NAME" } ], "shieldedInstanceConfig":{ "enableSecureBoot":"ENABLE_SECURE_BOOT" } }次のように置き換えます。
次のステップ
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-01-23 UTC。
-