仮想アプライアンスのインポート

仮想アプライアンスは、仮想マシン(VM)のディスク イメージとハードウェア構成を含むパッケージです。

広く使用されている仮想アプライアンスの形式は OVF 形式です。仮想アプライアンスを OVF 形式でパッケージ化すると、OVF パッケージが生成されます。OVF パッケージは、.ovf 記述子ファイルや、ディスクなどの他のリソースのコレクションを格納するフォルダです。OVF パッケージを 1 つのファイルにアーカイブしたものを OVA ファイルといいます。

OVF パッケージまたは OVA 単一ファイルのどちらにある場合でも、OVF 形式の VM を Compute Engine にインポートできます。インポート方法の選択で、仮想アプライアンスの使用がユースケースに最適かどうか判断してください。

仮想アプライアンスをインポートすると、記述子ファイルに保存されている情報に基づいて Compute Engine に VM インスタンスが作成され、起動します。

始める前に

Cloud Build API を有効にする

仮想アプライアンス インポート ツールでは Cloud Build を使用します。

ほとんどの場合、gcloud compute images import はこれらの権限を Cloud Build サービス アカウントに付与しようとします。ただし、これらの権限を手動で付与して、必要な権限が有効になるようにすることもできます。

Console

  1. Cloud Build API を有効にします。

    Cloud Build API を有効にする

    Console から Cloud Build API を有効にすると、Compute Engine は Cloud Build サービス アカウントに次の役割を付与し、Cloud Build サービスが Compute Engine にインスタンスをインポートできるようにします。

    • roles/iam.serviceAccountTokenCreator
    • roles/compute.admin
    • roles/iam.serviceAccountUser

    インポート ツールでは、デフォルトの Compute Engine サービス アカウントも使用されます。デフォルトで、Compute Engine サービス アカウントには Cloud IAM プロジェクト編集者の役割が付与されています。この役割を削除すると、インポート プロセスが失敗することがあります。役割をサービス アカウントに再び追加するには、アクセス権の付与をご覧ください。Compute Engine のデフォルトのサービス アカウントについて詳しくは、Compute Engine のデフォルトのサービス アカウントをご覧ください。

gcloud

gcloud コマンドライン ツールを使用して Cloud Build サービスを設定する手順は次のとおりです。

  1. Cloud Build を有効にします。

    gcloud services enable cloudbuild.googleapis.com

    インポート ツールでは、デフォルトの Compute Engine サービス アカウントも使用されます。デフォルトで、Compute Engine サービス アカウントには Cloud IAM プロジェクト編集者の役割が付与されています。この役割を削除すると、インポート プロセスが失敗することがあります。役割をサービス アカウントに再び追加するには、アクセス権の付与をご覧ください。Compute Engine のデフォルトのサービス アカウントについて詳しくは、Compute Engine のデフォルトのサービス アカウントをご覧ください。

  2. Cloud Build API のサービス アカウントに compute.admin 役割を追加します。

    gcloud projects add-iam-policy-binding project-id \
       --member serviceAccount:project-num@cloudbuild.gserviceaccount.com \
       --role roles/compute.admin
    
  3. Cloud Build API のサービス アカウントに iam.serviceAccountUser 役割を追加します。

    gcloud projects add-iam-policy-binding project-id \
       --member serviceAccount:project-num@cloudbuild.gserviceaccount.com \
       --role roles/iam.serviceAccountUser
    
  4. Cloud Build API のサービス アカウントに iam.serviceAccountTokenCreator 役割を追加します。

    gcloud projects add-iam-policy-binding project-id \
       --member serviceAccount:project-num@cloudbuild.gserviceaccount.com \
       --role roles/iam.serviceAccountTokenCreator
    

    以下を置き換えます。

要件

ソース VM の要件

OVF ファイルの作成に使用する VM は、次の要件を満たす必要があります。

  • 仮想ディスクは VMDK または VHD 形式である必要があります。
  • 仮想ディスクに MBR ブートを構成する必要があります。UEFI はサポートされていません。
  • 仮想ディスクは暗号化しないでください。

仮想マシンが要件を満たしていることを確認するには、事前チェックツールを実行します。

OVF ファイルの要件

OVF ファイルは、次の要件を満たしている必要があります。

  • OVF ファイルは、OVF 仕様書に記載されている Level 1 ポータビリティを提供する必要があります。Level 2 ポータビリティの仮想アプライアンスはインポートできますが、ソース ハイパーバイザ固有の詳細など、カスタム拡張はインポート時に無視されます。
  • OVF ファイルに含める仮想マシンは、1 つのみにする必要があります。複数の仮想マシンが存在する場合は、最初の仮想マシンのみがインポートされます。
  • OVF ファイルの最初のディスクは起動可能にする必要があります。

インポート ツールでインポートされる構成

OVF 規格では、仮想化プロバイダに依存しない方法で仮想アプライアンスをパッケージ化するためのプロセスが指定されています。OVF 仮想アプライアンス パッケージには、1 つの .ovf 記述子ファイルと、仮想ディスクなどの他のリソースのコレクションが含まれています。

OVF 仮想アプライアンスを Compute Engine にインポートすると、記述子ファイルの次の構成が処理され、インポートされます。

  • OVF パッケージの DiskSection 要素から取得された仮想ディスクの情報。
  • OVF パッケージの ResourceAllocationSection から取得された CPU およびメモリ

    CPU またはメモリの構成が Compute Engine のサポート範囲を超えている場合、インポート プロセスはその値を Compute Engine でサポートされる最大値に設定します。

  • OVF パッケージの BootDeviceSection 要素から取得されたブートディスクの詳細。

  • OVF パッケージの OperatingSystemSection 要素から取得されたゲスト OS の詳細。

    ゲスト OS の情報は、インポートされたインスタンスに正しいドライバとゲスト環境パッケージをインストールするために使用されます。OVF 内のゲスト OS 情報が正しくない場合、インポートは失敗します。ゲスト OS 情報を上書きするには、--os フラグを使用します。

インポートされたインスタンスには、外部 IP のない単一のネットワーク アダプタが設定されます。OVF ファイルで指定されたネットワーク構成に関係なく、このネットワーク アダプタが使用されます。

制限事項

仮想アプライアンスをインポートするときに、記述子ファイルの次のセクションは無視されます(インポートされません)。

  • NetworkSection
  • AnnotationSection
  • ProductSection
  • EulaSection
  • StartupSection
  • DeploymentOptionSection
  • InstallSection
  • EnvironmentFilesSection
  • SharedDiskSection
  • ScaleOutSection
  • PlacementGroupSection
  • PlacementSection
  • EncryptionSection

サポートされているオペレーティング システム

記述子ファイルOperatingSystemSection に次のいずれかのオペレーティング システムを指定します。

Linux ディストリビューションとバージョン

  • CentOS 6、CentOS 7
  • Debian 8、Debian 9
  • Red Hat Enterprise Linux 6、Red Hat Enterprise Linux 7
  • Ubuntu 14.04 LTS、Ubuntu 16.04 LTS

Linux ディストリビューションの場合、ブートディスクに GRUB がインストールされている必要があります。

Windows バージョン

  • Windows Server 2008 R2 SP1
  • Windows Server 2012、Windows Server 2012 R2、Windows Server 2012 R2 Core
  • Windows Server 2016、Windows Server 2016 Core
  • Windows Server 2019、Windows Server 2019 Core
  • Windows 7 SP1(32 ビット版と 64 ビット版、BYOL のみ)
  • Windows 8.1(32 ビット版と 64 ビット版、BYOL のみ)
  • Windows 10、バージョン 1709、1803、1903、1909(32 ビット版と 64 ビット版、BYOL のみ)

Windows オペレーティング システムの場合、PowerShell バージョン 3 以降がインストールされている必要があります。バージョン 3.0 より前の PowerShell では、インポート処理中に起動スクリプトとシャットダウン スクリプトに問題が発生する可能性があります。

BYOL のサポート

デフォルトでは、Windows サーバーおよび Red Hat Enterprise Linux(RHEL)オペレーティング システムを使用する OVF ファイルがインポートされ、追加料金が発生するプレミアム OS のオンデマンド課金が構成されます。

RHEL のお客様所有ソフトウェア サブスクリプションを選択する場合、お客様所有ライセンスを使用する(BYOL)ライセンス アプライアンスとして仮想アプライアンスをインポートできます。

アプライアンスを BYOL ライセンス アプライアンスとしてインポートするには、import コマンドを実行するときに、[--os] フラグに次のいずれかの BYOL 値を指定します。

  • rhel-6-byol
  • rhel-7-byol
  • windows-2008r2-byol
  • windows-2012-byol
  • windows-2012r2-byol
  • windows-2016-byol
  • windows-2019-byol
  • windows-7-x64-byol
  • windows-7-x86-byol
  • windows-8-x64-byol
  • windows-8-x86-byol
  • windows-10-x64-byol
  • windows-10-x86-byol

OVA ファイルのインポート

  1. 仮想アプライアンスを Cloud Storage に追加します。
  2. Cloud Storage から Compute Engine に OVA ファイルをインポートするには、gcloud compute instances import コマンドを使用します。

    gcloud compute instances import instance-name \
       --source-uri=gs:path-to-OVA-file
    

    以下を置き換えます。

    • instance-name: 作成するインスタンスの名前。
    • path-to-OVA-file: Cloud Storage 上の OVA ファイルへのパス。

    たとえば、OVA ファイル Ubuntu.ova をインポートして、my-instance という名前のインスタンスを作成するには、次のコマンドを実行します。

    gcloud compute instances import my-instance \
        --source-uri=gs://my-bucket/Ubuntu.ova
    

    OS の値を指定するよう求められる場合もあります。オペレーティング システムを指定するには、--os フラグを追加する必要があります。たとえば、OVA ファイル Ubuntu.ova をインポートして、Ubuntu 16.04 を実行する my-instance という名前のインスタンスを作成するには、次のコマンドを実行します。

    gcloud compute instances import my-instance \
        --os=ubuntu-1604
        --source-uri=gs://my-bucket/Ubuntu.ova
    

OVF ファイルのインポート

  1. 仮想アプライアンスを Cloud Storage に追加します。
  2. Cloud Storage から Compute Engine に OVF ファイルをインポートするには、gcloud compute instances import コマンドを使用します。

    ディレクトリに存在する OVF ファイルが 1 つだけの場合は、記述子ファイルのパスまたは OVF ファイルを含むディレクトリのパスを指定します。

    • 記述子ファイルのパスを使用して OVF ファイルをインポートするには、次のコマンドを実行します。

      gcloud compute instances import instance-name \
       --source-uri=gs:path-to-OVF-file
      
    • ディレクトリ パスを使用して OVF ファイルをインポートするには、次のコマンドを実行します。

      gcloud compute instances import instance-name \
       --source-uri=gs:path-to-OVF-directory
      

    以下を置き換えます。

    • instance-name: 作成するインスタンスの名前。
    • path-to-OVF-file: Cloud Storage 上の OVA ファイルへのパス。
    • path-to-OVF-directory: Cloud Storage 上の OVA ファイルを含むディレクトリへのパス。

    次に例を示します。

    • my-ovf-directory ディレクトリに my-instance という名前のインスタンスを作成する OVF ファイル Ubuntu.ovf をインポートするには、次のコマンドを実行します。

      gcloud compute instances import my-instance \
       --source-uri=gs://my-bucket/my-ovf-directory/Ubuntu.ovf
      
    • my-ovf-directory ディレクトリから my-instance という名前のインスタンスを作成する OVF ファイルをインポートするには、次のコマンドを実行します。

      gcloud compute instances import my-instance \
       --source-uri=gs://my-bucket/my-ovf-directory
      

    OS の値を指定するよう求められる場合もあります。オペレーティング システムを指定するには、--os フラグを追加する必要があります。たとえば、OVF ファイル Ubuntu.ovf をインポートして、Ubuntu 16.04 を実行する my-instance という名前のインスタンスを作成するには、次のコマンドを実行します。

    gcloud compute instances import my-instance \
       --os=ubuntu-1604 \
       --source-uri=gs://my-bucket/my-ovf-directory/Ubuntu.ovf
    

カスタム設定でのインポート

カスタム CPU とメモリ

OVF ファイルで指定された CPU またはメモリ構成をオーバーライドする場合は、--custom-cpu フラグと --custom-memory フラグを指定します。

たとえば、Ubuntu 1404 を実行し、2 つの CPU と 2048 MB のメモリを持つ my-instance という名前のインスタンスをインポートするには、次のコマンドを実行します。

gcloud compute instances import my-instance \
    --os=ubuntu-1404 --source-uri=gs://my-bucket/Ubuntu.ova \
    --custom-cpu=2 --custom-memory=2048MB

カスタム ネットワーク

カスタム ネットワークを使用するようにプロジェクトが設定されている場合は、--network フラグを指定する必要があります。ネットワークがカスタム サブネット モードで構成されている場合は、--subnet フラグと --zone フラグも指定する必要があります。

たとえば、次のプロパティを持つインスタンスをインポートするとします。

  • インスタンス名: my-instance
  • オペレーティング システム: Ubuntu 1404
  • ネットワーク: custom-vpc network
  • サブネット: company-vpc-us-east1-c
  • ゾーン: us-east1-c

次のコマンドを実行します。

gcloud compute instances import my-instance --os ubuntu-1404 \
    --source-uri=gs://my-bucket/Ubuntu.ova \
    --network company-vpc \
    --subnet company-vpc-us-east1-c \
    --zone us-east1-c

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Compute Engine ドキュメント