マシンイメージを使用すると、Compute Engine で実行される VM インスタンス用に、すべての構成、メタデータ、権限、データを 1 つ以上のディスクから格納できます。マシンイメージを使用するタイミングと方法については、マシンイメージをご覧ください。
このドキュメントでは、仮想アプライアンスからマシンイメージをインポートする手順を説明します。
始める前に
- マシンイメージをインポートするプロジェクトに信頼できるイメージのポリシーが定義されている場合は、パブリッシャーの許可リストに
projects/compute-image-import
とprojects/compute-image-tools
を追加します。 - 別のプロジェクトから仮想アプライアンスをインポートする場合は、プロジェクト間でのインポートをご覧ください。
- Compute Engine の仮想アプライアンスのインポートに関するガイドで、ソース VM と OVF ファイルの要件を確認します。
- マシンイメージをインポートする前に要件を満たす方法については、VM イメージのインポートとエクスポートの前提条件をご覧ください。
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- マシンイメージは、プロジェクト間で共有できます。ただし、共有 VPC ネットワークはサポートされていません。
- この機能は、VPC Service Controls で保護されているプロジェクトではサポートされていません。
- 200 TB を超えるディスクがアタッチされているソース VM からマシンイメージを作成することはできません。
MACHINE_IMAGE_NAME
: インポートするマシンイメージの名前。SOURCE_URI
: Cloud Storage 上の OVA ファイルまたは OVF ファイルへのパス。OS
: OVA ファイルのオペレーティング システム。このフラグはデフォルトで省略可能ですが、必要になる場合もあります。このフラグを指定することをおすすめします。仮想アプライアンスを Cloud Storage にアップロードします。
POST
リクエストを Cloud Build API に送信します。POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout": "7200s", "steps":[ { "args":[ "-machine-image-name=MACHINE_IMAGE_NAME", "-ovf-gcs-path=SOURCE_URI", "-os=OS", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":"gce-ovf-machine-image-import" }
以下を置き換えます。
PROJECT_ID
: OVA ファイルのインポート先にするプロジェクトのプロジェクト ID。MACHINE_IMAGE_NAME
: インポートするマシンイメージの名前。例:my-machine-image
。SOURCE_URI
: OVA ファイルの URI、または Cloud Storage に保存されている OVF パッケージを含むディレクトリ。例:gs://my-bucket/my-instance.ova
。OS
: OVA ファイルのオペレーティング システム。例:ubuntu-1604
。このフラグはデフォルトで省略可能ですが、必要になる場合もあります。このフラグを指定することをおすすめします。
さらに
args
値を指定できます。「Compute Engine OVF import GitHub」ページのオプション フラグに関するセクションをご覧ください。- オペレーティング システム:
Ubuntu 1404
- CPU:
2 CPUs
- メモリ:
2048 MB
- オペレーティング システム:
Ubuntu 1404
- CPU:
2 CPUs
- メモリ:
2048 MB
- オペレーティング システム:
Ubuntu 1404
- ネットワーク:
custom-vpc-network
- サブネット:
company-vpc-us-east1-c
- ゾーン:
us-east1-c
- オペレーティング システム:
Ubuntu 1404
- ネットワーク:
custom-vpc-network
- サブネット:
company-vpc-us-east1-c
- ゾーン:
us-central1-c
仮想アプライアンスを Cloud Storage に追加します。
インポート プロセスでは、マシンイメージのオペレーティング システムにパッケージ マネージャーをインストールする必要があります。これらのパッケージ マネージャーでは、Google Cloud の外部にあるパッケージ リポジトリにリクエストを送信する必要がある場合があります。これらの更新へのアクセスを許可するには、Cloud NAT を構成する必要があります。詳細については、Cloud Router を使用した NAT 構成の作成をご覧ください。
限定公開の Google アクセスを構成します。詳細については、限定公開の Google アクセスの構成をご覧ください。
Google Cloud CLI または Cloud Build API を使用してマシンイメージをインポートします。
仮想アプライアンスからマシンイメージをインポートすると、一時的な VM がプロジェクトに作成されます。これらの一時的な VM に外部 IP アドレスが割り当てられないようにするには、追加のフラグまたは引数を指定する必要があります。
必須フラグや引数の詳細については、次のタブをクリックしてください。
MACHINE_IMAGE_NAME
: インポートするマシンイメージの名前。SOURCE_URI
: Cloud Storage 上にある OVA または OVF ファイルの URI。例:gs://my-bucket/Ubuntu.ova
。OS
: OVA ファイルのオペレーティング システム。このフラグはデフォルトで省略可能ですが、必要になる場合もあります。このフラグを指定することをおすすめします。サポートされている値の一覧については、gcloud compute machine-images import
コマンドの--os
フラグ オプションをご覧ください。ZONE
: マシンイメージをインポートするゾーン。空のままにすると、プロジェクトのデフォルト ゾーンが使用されます。PROJECT_ID
: マシンイメージをインポートするプロジェクトのプロジェクト ID。MACHINE_IMAGE_NAME
: インポートするマシンイメージの名前。例:my-machine-image
。SOURCE_URI
: Cloud Storage に保管されている OVA ファイルの URI例:gs://my-bucket/my-machine.ova
OS
: OVA ファイルのオペレーティング システム(ubuntu-1604
など)。このフラグはデフォルトではオプションですが、必要になる場合もあります。このフラグを指定することをおすすめします。サポートされている値の一覧については、gcloud compute instances import
コマンドの--os
フラグ オプションをご覧ください。ZONE
: マシンイメージをインポートするゾーン。仮想アプライアンスを Cloud Storage に追加します。
サービス アカウントを作成して最小限のロールを割り当てます。サービス アカウントの作成に関する詳細については、サービス アカウントの作成と管理をご覧ください。
少なくとも、指定した Compute Engine サービス アカウントには次のロールが割り当てられている必要があります。
roles/compute.storageAdmin
roles/storage.objectViewer
これらの最低限必要なロールは、
--compute-service-account
フラグで指定されるサービス アカウントに必要です。詳細については、Compute Engine サービス アカウントに必要なロールを付与するをご覧ください。gcloud compute machine-images import
コマンドを使用して、仮想アプライアンスからマシンイメージをインポートします。gcloud compute machine-images import MACHINE_IMAGE_NAME \ --source-uri=gs:SOURCE_URI \ --os=OS \ --compute-service-account=TEMP_SERVICE_ACCOUNT_EMAIL \ --service-account=SERVICE_ACCOUNT_EMAIL \ --scopes=SCOPES
以下を置き換えます。
MACHINE_IMAGE_NAME
: インポートするマシンイメージの名前。SOURCE_URI
: Cloud Storage 上の OVA ファイルまたは OVF ファイルへのパス。OS
: OVA ファイルのオペレーティング システム。このフラグはデフォルトで省略可能ですが、必要になる場合もあります。このフラグを指定することをおすすめします。TEMP_SERVICE_ACCOUNT_EMAIL
: 前の手順で作成したカスタム サービス アカウントに関連付けられているメールアドレス。このサービス アカウントは一時的な VM によって使用されます。指定しない場合、VM はデフォルトの Compute Engine サービス アカウントを使用します。SERVICE_ACCOUNT_EMAIL
: このマシンイメージから作成された VM に接続するカスタム サービス アカウントに関連付けられたメールアドレス。このサービス アカウントには権限の制限がないため、必要に応じてカスタマイズできます。指定しない場合は、デフォルトの Compute Engine サービス アカウントが VM に接続されます。SCOPES
:--service-account
オプションのアクセスレベルを指定します。指定しない場合、デフォルトのスコープが使用されます。詳細については、--scopes
フラグをご覧ください。
仮想アプライアンスを Cloud Storage に追加します。
サービス アカウントを作成して最小限のロールを割り当てます。サービス アカウントの作成に関する詳細については、サービス アカウントの作成と管理をご覧ください。
少なくとも、指定した Compute Engine サービス アカウントには次のロールが割り当てられている必要があります。
roles/compute.storageAdmin
roles/storage.objectViewer
これらの最低限必要なロールは、
-compute-service-account
引数で指定されるサービス アカウントに必要です。詳細については、Compute Engine サービス アカウントに必要なロールを付与するをご覧ください。POST
リクエストを Cloud Build API に送信します。POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout":"7200s", "steps":[ { "args":[ "-machine-image-name=MACHINE_IMAGE_NAME", "-ovf-gcs-path=SOURCE_URI", "-os=OS", "-zone=ZONE", "-compute-service-account=TEMP_SERVICE_ACCOUNT_EMAIL", "-service-account=SERVICE_ACCOUNT_EMAIL", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":"gce-ovf-machine-image-import" }
以下を置き換えます。
PROJECT_ID
: マシンイメージをインポートするプロジェクトのプロジェクト ID。MACHINE_IMAGE_NAME
: インポートするマシンイメージの名前。例:my-machine-image
。SOURCE_URI
: Cloud Storage に保管されている OVA ファイルの URI例:gs://my-bucket/my-machine.ova
OS
: OVA ファイルのオペレーティング システム(ubuntu-1604
など)。このフラグはデフォルトではオプションですが、必要になる場合もあります。このフラグを指定することをおすすめします。サポートされている値の一覧については、gcloud compute instances import
コマンドの--os
フラグ オプションをご覧ください。ZONE
: マシンイメージをインポートするゾーン。TEMP_SERVICE_ACCOUNT_EMAIL
: 前の手順で作成したカスタム サービス アカウントに関連付けられているメールアドレス。このサービス アカウントは一時的な VM によって使用されます。指定しない場合、VM はデフォルトの Compute Engine サービス アカウントを使用します。SERVICE_ACCOUNT_EMAIL
: このマシンイメージから作成された VM に接続するカスタム サービス アカウントに関連付けられたメールアドレス。このサービス アカウントには権限の制限がないため、必要に応じてカスタマイズできます。指定しない場合は、デフォルトの Compute Engine サービス アカウントが VM に接続されます。SCOPES
:--service-account
オプションのアクセスレベルを指定します。指定しない場合、デフォルトのスコープが使用されます。詳細については、--scopes
フラグをご覧ください。
- マシンイメージの詳細を確認する
- マシンイメージから VM インスタンスを作成する
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
制限事項
サポートされているオペレーティング システム
オペレーティング システムのサポートについては、オペレーティング システムの詳細をご覧ください。
マシンイメージをインポートする
仮想アプライアンスからマシンイメージをインポートするには、Google Cloud CLI または REST を使用します。
gcloud
gcloud compute machine-images import
コマンドを使用して、仮想アプライアンスからマシンイメージをインポートします。gcloud compute machine-images import MACHINE_IMAGE_NAME \ --source-uri=gs:SOURCE_URI \ --os=OS
以下を置き換えます。
例
たとえば、次の
gcloud
コマンドを使用すると、gs://my-bucket
ディレクトリに保存されていて、centos-7
を実行するmy-ova
というソース OVA ファイルからmy-machine-image
というマシンイメージをインポートできます。gcloud compute machine-images import my-machine-image \ --source-uri=gs://my-bucket/my-ova/ \ --os=centos-7
REST
OVF オーバーライドを使用してマシンイメージをインポートする
カスタム CPU とメモリ
gcloud
OVF ファイルで指定された CPU またはメモリ構成をオーバーライドするには、Google Cloud CLI の手順に沿ってマシンイメージをインポートする際に、
--custom-cpu
フラグと--custom-memory
フラグを指定します。例
my-machine-image
という名前のマシンイメージには、OVF ファイルの設定に適用される次のオーバーライドがあります。これらのオーバーライドを使用して
my-machine-image
をインポートするには、次のコマンドを実行します。gcloud compute machine-images import my-machine-image \ --os=ubuntu-1404 --source-uri=gs://my-bucket/Ubuntu.ova \ --custom-cpu=2 --custom-memory=2048MB
REST
OVF ファイルで指定された CPU またはメモリ構成をオーバーライドするには、Compute Engine API のステップに従い、マシンイメージをインポートし、
-machine-type
引数を指定します。この-machine-type
は、使用する事前定義またはカスタム マシンタイプです。例
my-machine-image
という名前のマシンイメージには、OVF ファイルの設定に適用される次のオーバーライドがあります。これらのオーバーライドを使用して
my-machine-image
をインポートするには、Compute Engine API に次のリクエストを行います。POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout":"7200s", "steps":[ { "args":[ "-machine-image-name=my-machine-image", "-ovf-gcs-path=gs://my-bucket/Ubuntu.ova", "-os=ubuntu-1404", "-machine-type=custom-2-2048", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":"gce-ovf-machine-image-import" }
PROJECT_ID
は、実際のプロジェクト ID に置き換えます。カスタム ネットワーク
gcloud
カスタム ネットワークを設定するには、Google Cloud CLI の手順に沿ってマシンイメージをインポートする際に、
--network
フラグを指定します。ネットワークがカスタム サブネット モードで構成されている場合は、--subnet
フラグと--zone
フラグも指定する必要があります。例
my-machine-image
という名前のマシンイメージには、OVF ファイルの設定に適用される次のオーバーライドがあります。これらのオーバーライドを使用して
my-machine-image
をインポートするには、次のサンプル コマンドを実行します。gcloud compute machine-images import my-machine-image \ --os=ubuntu-1404 \ --source-uri=gs://my-bucket/Ubuntu.ova \ --network=custom-vpc-network \ --subnet=company-vpc-us-east1-c \ --zone=us-east1-c
REST
カスタム ネットワークを使用するには、Compute Engine API の手順に沿ってマシンイメージをインポートし、
-network
引数を指定します。ネットワークがカスタム サブネット モードで構成されている場合は、-subnet
引数と-zone
引数も指定する必要があります。例
my-machine-image
という名前のマシンイメージには、OVF ファイルの設定に適用される次のオーバーライドがあります。これらのオーバーライドを使用して
my-machine-image
をインポートするには、Compute Engine API に次のリクエストを行います。POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout":"7200s", "steps":[ { "args":[ "-machine-image-name=my-machine-image", "-ovf-gcs-path=gs://my-bucket/Ubuntu.ova", "-os=ubuntu-1404", "-zone=us-central1-c", "-network=custom-vpc-network", "-subnet=company-vpc-us-east1-c", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUsILD_ID" ] } ], "tags":"gce-ovf-machine-image-import" }
PROJECT_ID
は、実際のプロジェクト ID に置き換えます。外部 IP を許可しないネットワーク内にマシンイメージをインポートする
外部 IP アドレスを許可しないネットワークを使用してマシンイメージをインポートするには、次の手順を行います。
gcloud
--no-address
フラグを指定してgcloud compute machine-images import
コマンドを使用します。gcloud compute machine-images import MACHINE_IMAGE_NAME \ --source-uri=SOURCE_URI \ --os=OS \ --zone=ZONE \ --no-address
以下を置き換えます。
REST
Cloud Build API を使用して、
-no-external-ip
引数を指定します。POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout":"7200s", "steps":[ { "args":[ "-machine-image-name=MACHINE_IMAGE_NAME", "-ovf-gcs-path=SOURCE_URI", "-os=OS", "-zone=ZONE", "-no-external-ip", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":"gce-ovf-machine-image-import" }
以下を置き換えます。
カスタム サービス アカウントを使用してマシンイメージをインポートする
マシンイメージのインポート中に、一時的な仮想マシン(VM)インスタンスがプロジェクトに作成されます。これらの一時的な VM 上のインポート ツールには認証が必要です。
サービス アカウントは VM に接続されている ID です。サービス アカウントのアクセス トークンは、VM メタデータ サーバーからアクセスでき、VM 上のインポート ツールの認証に使用できます。
デフォルトでは、インポート プロセスでデフォルトの Compute Engine サービス アカウントが使用されます。ただし、プロジェクトでデフォルトの Compute Engine サービス アカウントが無効になっている場合や、カスタム Compute Engine サービス アカウントを使用する場合は、サービス アカウントを作成してインポート プロセスで指定する必要があります。
gcloud
REST
次のステップ
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2024-11-20 UTC。
-