お客様所有ライセンスの使用


このページでは、Compute Engine での専用のハードウェア要件があるお客様所有ライセンスの使用(BYOL: Bring Your Own License)を Google Cloud がサポートする仕組みについて説明します。既存のライセンスを含むイメージを Google Cloud に移行する前に、ライセンスの利用規約をご確認ください。

専用のハードウェア要件を持つ既存の物理コアまたは物理プロセッサのライセンスを使用するには、お客様所有のメディアを移行し、ライセンスに準拠する単一テナントノードなどのハードウェア構成でそのメディアを実行する必要があります。既存のライセンスを含むイメージは、単一テナントノードをサポートするリージョンに移行できます。既存のライセンスを使用する場合は追加料金はかからないものの、契約に基づいてライセンスに対して支払う必要があります。

単一テナントノードは、プロジェクトのみのために VM をホストすることに特化した物理サーバーです。物理サーバーとコアの数の最小限化の要件など、さまざまなワークロードの要件をサポートするために、単一テナントノードを設定できます。使用許諾契約を確認のうえ、お客様のワークロードに最適な構成オプションを選択してください。

お客様所有ライセンスの使用をサポートし、ライセンスに関連するコンプライアンス要件の管理するために、Google Cloud では、イメージのインポート、専用ハードウェア(単一テナントノード)での VM の管理、物理コアの使用量の最小化、レポート用の物理コアの使用状況の追跡を目的としたツールが用意されています。

既存のライセンスを持つイメージを Google Cloud に移行するには、次の操作を行います。

  1. ライセンス契約に従ってイメージを準備する。

  2. ライセンスを有効にする。

  3. 仮想ディスク ファイルをインポートし、それらのディスク ファイルからイメージを作成する。

  4. 単一テナントノード テンプレートを作成する。

  5. ノード テンプレートから単一テナントノード グループを作成する。

  6. インポートした仮想ディスク ファイルを使用して、ノードグループ内の VM をプロビジョニングする。

  7. VM のライセンス使用状況を追跡する。ライセンスの使用状況の報告に役立つツールとして、Google はライセンスの使用状況と物理コアおよびプロセッサの使用状況の両方を追跡できるツールを提供しています。

  8. ライセンスの使用状況をベンダーに報告する。

ライセンスに関してサポートが必要な場合やご質問がある場合は、ライセンスの販売元にお問い合わせください。既存のライセンスを含むイメージを Google Cloud に移行する方法についてサポートが必要な場合、またはご不明な点がある場合は、Google Cloud サポートにお問い合わせください。

RHEL や SLES の Linux BYOS、Microsoft アプリケーションに関連するライセンスなど、単一テナントノードを必要としないライセンス シナリオもあります。SharePoint Server や SQL Server などの Microsoft アプリケーションからライセンスを移行する場合は、Microsoft ライセンス モビリティを使用します。

始める前に

  1. ノードグループのメンテナンス ポリシーを確認する

  2. 追加の CPU 割り当てをリクエストする: 新しいプロジェクトには 72 基の CPU 割り当てを受けられます。ノードグループをサポートするのに十分な CPU 割り当てがあることを確認します。たとえば、n1-node-96-624 ノードタイプには 96 基の CPU が含まれており、ノードグループでノードの最小数(2)を使用する場合、CPU 割り当ては 192 基以上でなければなりません。設定とワークロードのニーズによっては、VM または IP アドレスの割り当て調整をリクエストする必要があります。

  3. Cloud Build API を有効にする: OS イメージをインポートするには、Cloud Build API を有効にする必要があります。この API を有効にすると、Compute Engine がプロジェクトに適切な IAM ロールを付与し、プロジェクトにイメージをインポートできるようになります。プロジェクトに付与されているロールを一覧表示するには、gcloud projects get-iam-policy コマンドを使用します。プロジェクトにロールを付与する方法については、Compute Engine リソースへのアクセスの管理をご覧ください。

  4. Cloud Logging API を有効にする: ライセンス契約で物理サーバーの使用状況を追跡する必要がある場合は、この API を有効にします。この API を有効にして、BigQuery を使用し、物理コア数などのサーバー使用状況に関する情報をインポートして表示することを、強くおすすめします。物理コア数を確認する方法については、サーバーの使用量の判断をご覧ください。

オフライン仮想ディスクからイメージをインポートして作成する

既存のライセンスの VM をプロビジョニングするには、お客様所有のメディアを使用する必要があります。Google Cloud のプレミアム イメージに基づいたイメージは、お客様所有ライセンスの使用の対象ではありません。これは、プレミアム イメージには Google による従量課金制ライセンスが必要なためです。

オンプレミス環境に、必要なカスタマイズ(ソフトウェア構成、ライセンスなど)が行われた仮想ディスク(ゴールデン ディスクまたはゴールデン イメージ)がある場合、仮想ディスクのインポート ツールを使用すると、次のことができます。

  1. カスタマイズした仮想ディスクをサポートされているオペレーティング システムでインポートし、それらのディスクに基づいてイメージを作成する。

  2. 適切なライセンス構成を行う。

  3. Google Cloud との互換性に必要なパッケージとドライバをインストールする。

VM の仮想ディスク ファイルをインポートする前に、VM 内から事前チェックツールをダウンロードして、実行し、ファイルに互換性の問題がないことを確認します。また、サードパーティのソフトウェアは Compute Engine ドライバのインストールと干渉する可能性があるため、イメージをインポートする前にサードパーティ ソフトウェアを削除することをおすすめします。

独自のライセンスで VM を起動するには、使用する OS で仮想ディスクをインポートします。Cloud Storage バケットとローカル ワークステーションから仮想ディスクをインポートできます。ローカル ワークステーションから仮想ディスク ファイルをインポートする際に、イメージ インポート ツールはイメージ ファイルを Cloud Storage にアップロードし、必要であれば新しい Cloud Storage バケットを作成します。次に、インポート ツールでファイルが Compute Engine にコピーされ、起動可能なイメージが仮想ディスク ファイルから作成されます。

Cloud Storage に保存されているファイルと Compute Engine のイメージには料金が発生します。イメージがインポートされ、VM として正常に起動することを確認したら、Cloud Storage から仮想ディスク ファイルを削除できます。

Console

  1. Cloud Console で、[イメージ] ページに移動します。

    [イメージ] ページに移動

  2. [イメージを作成] をクリックします。

  3. イメージの名前を指定します。

  4. [ソース] で、[仮想ディスク(VMDK、VHD)] を選択します。

  5. [Cloud Storage ファイル] で [参照] を選択し、インポートするイメージの Cloud Storage のロケーションを参照します。

  6. [仮想ディスクのオペレーティング システム] で、インポートするイメージのオペレーティング システムを選択します。

  7. 起動可能なイメージをインポートするために、[ゲスト パッケージをインストールする] が選択されていることを確認します。

  8. [OS ライセンス] で [所有ライセンスキーを使用する] を選択します。

  9. [作成] をクリックしてイメージをインポートします。

gcloud

gcloud compute images import を実行して仮想ディスク ファイルをインポートし、仮想ディスク ファイルからディスク イメージを作成します。

gcloud compute images import IMAGE_NAME \
  --source-file VMDK_NAME \
  --os OS

以下を置き換えます。

  • IMAGE_NAME: 仮想ディスク ファイルから作成されたイメージに付ける名前。

  • VMDK_NAME: イメージのインポートと作成を行う仮想ディスクの名前。VMDK ファイルは次の場所からインポートできます。

    • ローカル ファイル: ローカル ファイルからインポートする場合は、ファイルへの絶対パスまたは相対パスを使用します。仮想ディスクのサイズとネットワーク接続の速度によっては、アップロードに数十分かかることがあります。

    • Cloud Storage: Cloud Storage からインポートする場合、Cloud Storage バケットは仮想ディスクのインポートに使用しているプロジェクトと同じである必要があります。また、ファイルへのフルパスとして gs://BUCKET_NAME/OBJECT_NAME を指定し、BUCKET_NAME は Cloud Storage バケットの名前で置き換え、OBJECT_NAME は Cloud Storage オブジェクトの名前で置き換える必要があります。

  • OS: ディスクイメージのオペレーティングシステム。サポートされているオペレーティング システムである必要があります。

ライセンスの有効化

互換性のある OS をインポートしていることを確認したら、お客様所有のライセンスの使用や、Google が提供するゲスト OS イメージとライセンス インポート環境の使用が許可されていることを、ライセンス契約で確認する必要があります。また、ライセンス契約に従って、ゲスト OS イメージをインポートする準備を行う必要があります。

ライセンスを有効にするには、アクティベーション キーで起動スクリプトを使用するか、Cloud Key Management Service を設定します。Compute Engine のライセンス サーバーに対して、既存のライセンスを持つイメージを有効にすることはできません。

イメージをインポートしてライセンスを有効にしたら、インポートしたイメージに基づいて単一テナントノードに VM をプロビジョニングします。

単一テナントノード テンプレートを作成する

イメージをインポートしたら、ノード テンプレートを設定します。このノード テンプレートを使用して、イメージを実行する単一テナントノード グループを作成します。

Console

  1. Google Cloud Console で、[ノード テンプレート] ページに移動します。

    [ノード テンプレート] ページに移動

  2. [ノード テンプレートを作成] をクリックします。

  3. ノード テンプレートの名前を入力します。

  4. ノード テンプレートのリージョンを選択します。

  5. このノード テンプレートに基づいて作成されたノードグループ内のノードのノードタイプを選択します。

  6. 必要に応じて、ノード アフィニティ ラベルを指定します。

  7. [作成] をクリックして、ノード テンプレートの作成を完了します。

gcloud

gcloud compute sole-tenancy node-templates create を使用して、単一テナントノード テンプレートを作成します。

gcloud compute sole-tenancy node-templates create TEMPLATE_NAME \
  --node-type NODE_TYPE \
  --region REGION

以下を置き換えます。

  • TEMPLATE_NAME: 作成するノード テンプレートの名前。

  • NODE_TYPE: ノードグループ内のノードの単一テナントノードのタイプ。ノードグループ内のノードはすべて同一で、ノード テンプレートで指定したパラメータから作成されます。

  • REGION: ノード テンプレートを作成するリージョン。

API

nodeTemplates.insert を使用して、単一テナントノード テンプレートを作成します。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/nodeTemplates

{
   "name": "TEMPLATE_NAME",
   "nodeType": "NODE_TYPE"
   "nodeAffinityLabels": {
      "KEY": "VALUE"
   }
}

以下を置き換えます。

  • PROJECT_ID: プロジェクトの ID。

  • REGION: ノード テンプレートを作成するリージョン。

  • TEMPLATE_NAME: 作成するノード テンプレートの名前。

  • NODE_TYPE: ノードグループ内のノードの単一テナントノードのタイプ。ノードグループ内のノードはすべて同一で、ノード テンプレートで指定したパラメータから作成されます。

  • KEY: VALUE: Key-Value ペアとして表示されるアフィニティ ラベルのカンマ区切りリスト。ノード テンプレートの作成時には、そのノード テンプレートにのみアフィニティ ラベルを指定できます。

単一テナントノード グループを作成する

以前の手順で作成した単一テナントノードのテンプレートを使用して、単一テナントノードを作成します。単一テナントノード グループは、単一テナントノード テンプレートで指定されたプロパティを継承します。また、指定しなければならない追加の値があります。

Console

  1. Google Cloud Console で、[ノードグループ] ページに移動します。

    [ノードグループ] ページに移動

  2. [ノードグループを作成] をクリックします。

  3. ノードグループの名前を入力します。

  4. ノードグループのリージョンゾーンを選択します。同じゾーン内のノード テンプレートに基づいてノードグループのみを作成できます。

  5. ノードグループのベースとなるノード テンプレートを選択します。ノード テンプレートとノードグループは同じリージョンに存在する必要があるため、ノードグループのテンプレートを選択するときは、ノードグループを作成するリージョンからテンプレートを選択します。

  6. ノードグループのオートスケーラーの [自動スケーリング モード] には、次のいずれかを選択します。

    • 自動スケーリングを構成しない: ノードグループのサイズを手動で管理します。

    • 自動スケーリング: ノードグループにノードを自動的に追加する、またはノードグループからノードを自動的に削除します。

    • 自動スケーリング(アウトのみ): 追加の容量が必要な場合にノードをノードグループに追加します。

  7. ノードグループのノード数を指定します。ノードグループのオートスケーラーを有効にする場合は、ノードグループのサイズの範囲を指定するか、ノードグループのノード数を指定します。どちらの値も、後から手動で変更できます。

  8. 単一テナントノード グループの [メンテナンス ポリシー] に、次のいずれかの値を指定します。メンテナンス ポリシーを使用すると、ホスト メンテナンス イベント中のノードグループ上の VM の動作を構成できます。詳細については、メンテナンス ポリシーをご覧ください。

    • デフォルト
    • 再起動
    • ノードグループ内で移行
  9. [作成] をクリックします。

gcloud

gcloud compute sole-tenancy node-groups create コマンドを使用して、単一テナントノード グループを作成します。

gcloud compute sole-tenancy node-groups create GROUP_NAME \
  --node-template TEMPLATE_NAME \
  --target-size GROUP_SIZE \
  --zone ZONE \
  --maintenance-policy MAINTENANCE_POLICY

以下を置き換えます。

  • GROUP_NAME: 作成する単一テナントノード グループの名前。

  • TEMPLATE_NAME: ノードグループの作成に使用するノード テンプレートの名前。

  • GROUP_SIZE: ノードグループの初期サイズ。ノードグループ オートスケーラーでは、単一テナントノードのサイズが自動的に管理されます。サイズを手動で管理することもできます。

  • ZONE: ノードグループを作成するゾーン。ノード テンプレートと同じリージョンに存在する必要があります。

  • MAINTENANCE_POLICY: ノードグループのメンテナンス ポリシー。migrate-within-node-grouprestart-in-placedefault のいずれかに設定します。値を指定しない場合、メンテナンス ポリシーには default が指定されます。

API

nodeGroups.insert を使用して、単一テナントノード グループを作成します。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/nodeGroups?initialNodeCount=GROUP_SIZE

{
  "nodeTemplate": "/regions/REGION/nodeTemplates/TEMPLATE_NAME",
  "name": "GROUP_NAME",
  "maintenancePolicy": "MAINTENANCE_POLICY"
}

以下を置き換えます。

  • PROJECT_ID: ノードグループを作成するプロジェクトの ID。

  • ZONE: ノードグループを作成するゾーン。ノード テンプレートと同じリージョンに存在する必要があります。

  • GROUP_SIZE: ノードグループの初期サイズ。ノードグループ オートスケーラーでは、単一テナントノードのサイズが自動的に管理されます。サイズを手動で管理することもできます。

  • REGION: ノード テンプレートを含むリージョン。

  • TEMPLATE_NAME: ノードグループの作成に使用するノード テンプレートの名前。

  • GROUP_NAME: 作成する単一テナントノード グループの名前。

  • MAINTENANCE_POLICY: ノードグループのメンテナンス ポリシー。MIGRATE_WITHIN_NODE_GROUPRESTART_IN_PLACEDEFAULT のいずれかに設定します。値を指定しない場合、メンテナンス ポリシーには DEFAULT が指定されます。

単一テナント VM のプロビジョニング

ノードグループの VM をプロビジョニングし、VM の再起動動作を指定します。メンテナンス イベント中に同じノードグループ内でホストされた VM を再起動するようにノードグループに指定したことがある場合、そのノードグループに新しい VM インスタンスを作成する際に、新しい VM インスタンスが次のいずれかを行うように指定します。

  • メンテナンス イベントによる再起動後に移行する。

  • 停止して同じホストで再起動する。同じホストが使用できない場合、新しいサーバーがプロビジョニングされ、以前のホストの物理 ID は再利用されません。

Console

ノード アフィニティ ラベルを使用した場合は、マネージド インスタンス グループを使用し、[単一テナンシー] 設定でノード アフィニティを指定することで複数の VM を作成するか、次の手順を使用して、ノードグループの詳細ページで VM インスタンスを作成します。

  1. Google Cloud Console で、[単一テナントノード] ページに移動します。

    [単一テナントノード] ページに移動

  2. VM をプロビジョニングするノードグループの名前をクリックします。

  3. 次のいずれかの方法で、単一テナントノードに VM を作成します。

    • 単一テナントノード グループ内の任意の場所に VM を作成するには、[インスタンスを作成] をクリックします。

    • 特定の単一テナントノードに VM を作成するには、単一テナントノード グループの [名前] > 単一テナントノードの [名前] > [インスタンスを作成] の順にクリックします。

  4. 単一テナント VM を構成します。すでにノードグループまたは特定のノードを選択したため、[リージョン][ゾーン][ノード アフィニティのラベル] はすでに指定されています。

  5. [マシン ファミリー]、[シリーズ]、[マシンタイプ] を指定して、[マシンの構成] を選択します。単一テナントノードのタイプに対応する [シリーズ] を選択します。

  6. 以前にインポートした仮想ディスク イメージである、単一テナント VM のブートディスクを選択します。

  7. [管理] タブをクリックして、次の操作を行います。

    • [可用性ポリシー] > [ホスト メンテナンス時] で、VM の再起動動作を選択します。

    • [自動再起動] で [オン(推奨)] または [オフ] を選択します。

  8. [作成] をクリックします。

gcloud

gcloud compute instances create コマンドを使用して、単一テナントノード グループに単一テナント VM をプロビジョニングします。

gcloud compute instances create VM_NAME \
  --machine-type MACHINE_TYPE
  --image IMAGE_NAME \
  --zone ZONE \
  --node-group GROUP_NAME \
  RESTART_BEHAVIOR \
  --maintenance-policy MAINTENANCE_POLICY

以下を置き換えます。

  • VM_NAME: 作成する VM の名前。

  • MACHINE_TYPE: 新しい VM のマシンタイプ。

  • IMAGE_NAME: VM 作成に使用するイメージ。これはインポート プロセス中に作成されるイメージです。

  • ZONE: VM を作成するゾーン。

  • GROUP_NAME: VM をプロビジョニングするノードグループの名前。

  • RESTART_BEHAVIOR: この VM の再起動動作。--restart-on-failure または --no-restart-on-failure に設定します。

  • MAINTENANCE_POLICY: メンテナンス イベント中の VM の動作。MIGRATE または TERMINATE に設定します。

API

instances.insert メソッドを使用して、単一テナントノード グループに単一テナント VM をプロビジョニングします。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/VM_ZONE/instances

{
  "name": "VM_NAME",
  "machineType": "/zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
  "scheduling": {
    "nodeAffinities": [
      {
        "key": "node-group",
        "operator": "IN",
        "values": [
        "GROUP_NAME"
        ]
      }
    ],
    "onHostMaintenance": "MAINTENANCE_POLICY",
    "automaticRestart": "AUTOMATIC_RESTART"
  },
  "networkInterfaces": [
    {
     "network": "/global/networks/NETWORK",
     "subnetwork": "/regions/region/subnetworks/SUBNETWORK"
    }
  ],
  "disks": [
    {
      "boot": true,
      "initializeParams": {
        "sourceImage": "/projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
       }
    }
  ]
}

以下を置き換えます。

  • PROJECT_ID: VM を作成するプロジェクトの ID。

  • VM_ZONE: VM を作成するゾーン。

  • VM_NAME: 新しい VM の名前。

  • MACHINE_TYPE_ZONE: マシンタイプを含むゾーン。

  • MACHINE_TYPE: VM をプロビジョニングするマシンタイプ。

  • GROUP_NAME: VM をプロビジョニングするノードグループの名前。

  • MAINTENANCE_POLICY: メンテナンス イベント中の VM の動作。MIGRATE または TERMINATE に設定します。

  • AUTOMATIC_RESTART: Compute Engine が VM を停止したときに VM を自動的に再起動するかどうかを指定します。デフォルト値は true です。

  • NETWORK: VM を接続するネットワークの名前。

  • SUBNETWORK: VM を接続するサブネットワークの名前。

  • IMAGE_PROJECT: ソースイメージを含むイメージ プロジェクト。

  • IMAGE_FAMILY: ソースイメージのイメージ ファミリー。

次のステップ