単一テナントノード

このページでは、単一テナントノードについて説明します。単一テナントノードの VM をプロビジョニングする方法については、単一テナントノードでの VM のプロビジョニングをご覧ください。

単一テナンシーを使用すると、単一テナントノードに独占的にアクセスできます。単一テナントノードは、プロジェクトの VM をホストすることに特化した物理 Compute Engine サーバーです。単一テナントノードを使用すると、VM を他のプロジェクトの VM から物理的に分離できます。また、同じホスト ハードウェア上に VM をグループ化することもできます。単一テナントノードで実行されている VM は、透過性スケジューリングやブロック ストレージなど、他の VM と同じ Compute Engine 機能を使用できますが、ハードウェアが分離されます。物理サーバー上の VM を完全に制御するため、各単一テナントノードは、ノードをサポートする物理サーバーとの 1 対 1 マッピングを維持します。

単一テナンシーは特定のタイプのワークロードに適しています。たとえば、パフォーマンス要件があるゲーム ワークロードは、独自のハードウェア上に分離されているという点でメリットが得られます。また、セキュリティおよびコンプライアンス上の要件がある金融やヘルスケアのワークロードや、ライセンスに関する要件が伴う Windows のワークロードにも適しています。

単一テナントノード内では、さまざまなサイズのマシンタイプに複数の VM をプロビジョニングでき、専用ホスト ハードウェアの基盤となるリソースを効率的に使用できます。また、ホスト ハードウェアを他のプロジェクトと共有しないため、他のワークロードや VM からの物理的な分離が必要なワークロードでセキュリティやコンプライアンスの要件を満足できます。ワークロードが必要とするのが一時的な単一テナンシーのみの場合、必要に応じて VM テナントを変更できます。

単一テナントノードは、コアごとまたはプロセッサごとのライセンスが必要なお客様所有ライセンスの使用(BYOL)シナリオでの専用ハードウェア要件を満たす上で役立ちます。単一テナントノードを使用すると基盤となるハードウェアを可視化できるため、コアとプロセッサの使用状況を追跡できます。使用状況を追跡するため、Compute Engine は VM がスケジュールされている物理サーバーの ID を報告します。これにより、Cloud Logging を使用して、VM の過去のサーバー使用状況を表示できます。

単一テナントノードでは、メンテナンス ポリシーを構成することでホスト メンテナンス イベント中の VM の動作を制御できます。メンテナンス ポリシーにより、単一テナントノードにプロビジョニングされた VM が特定の物理サーバーとアフィニティを維持するか、または VM を物理サーバーの固定グループ内に移動するかを指定できます。

ノード テンプレート

ノード テンプレートは、ノードグループの各ノードのプロパティを定義するリージョン リソースです。ノード テンプレートからノードグループを作成すると、ノード テンプレートのプロパティがノードグループの各ノードに不変にコピーされます。

ノード テンプレートを作成するときに、ノードタイプを指定し、必要に応じてノード アフィニティ ラベルを指定します。ノード アフィニティ ラベルはノード テンプレートにのみ指定できます。ノードグループにノード アフィニティ ラベルを指定することはできません。

ノードタイプ

ノード テンプレートを構成するときに、ノード テンプレートに基づいて作成されたノードグループ内のすべてのノードに適用するノードタイプを指定します。ノード テンプレートによって参照される単一テナントノード タイプは、そのテンプレートを使用するノードグループで作成されたノードに対し、vCPU コアとメモリの合計量を指定します。たとえば、n2-node-80-640 ノードタイプには 80 基の vCPU と 640 GB のメモリが指定されています。このタイプのノードは、VM シェイプの合計がノードの容量に達するまで、それぞれ別個のマシンタイプで動作する、シェイプの異なる複数の VM に対応できます。

ノード テンプレートを使用してノードグループを作成すると、ノードグループ内の各ノードはノード テンプレートのノードタイプの仕様を継承します。ノードタイプは、ノードグループ全体に一律に適用されるのではなく、ノードグループ内のノードに個別に適用されます。したがって、ノードタイプがいずれも n2-node-80-640 のノードを 2 つ含むノードグループを作成すると、各ノードに 80 基の vCPU と 640 GB のメモリが割り当てられます。

ワークロードの要件に応じて、さまざまなサイズのマシンタイプで実行される複数のより小さな VM をノードに配置することもできます。そのようなマシンタイプには、事前定義されたマシンタイプカスタム マシンタイプ拡張メモリを持つマシンタイプがあります。ノードがインスタンスでいっぱいの場合、そのノードでは追加のインスタンスはスケジュールできません。

次の表に、使用可能なすべてのノードタイプを示します。プロジェクトで使用可能なノードタイプのリストを表示するには、gcloud compute sole-tenancy node-types list コマンドまたは nodeTypes.list REST リクエストを実行します。これらのノードタイプの料金については、単一テナントノードの料金をご覧ください。

ノードタイプ プロセッサ vCPU GB vCPU:GB ソケット コア:ソケット 合計コア数
c2-node-60-240 Cascade Lake 60 240 1:4 2 18 36
m1-node-96-1433 Skylake 96 1433 1:14.9 2 28 56
n1-node-96-624 Skylake 96 624 1:6.5 2 28 56
n1-node-96-1433 Skylake 96 1433 1:14.9 2 28 56
n2-node-80-640 Cascade Lake 80 640 1:8 2 24 48
n2d-node-224-896 AMD EPYC Rome 224 896 1:4 2 64 128

どのノードでも、異なるシェイプの VM をスケジューリングできます。n ノードは汎用ノードであり、カスタム マシンタイプのインスタンスをスケジューリングできます。おすすめのノードタイプについては、マシンタイプに関する推奨事項をご覧ください。パフォーマンスについて詳しくは、CPU プラットフォームをご覧ください。

Compute Engine によって古いノードタイプが新しいノードタイプに置き換えられることがあります。Compute Engine がノードタイプを置き換えた場合、置き換えられたノードタイプを指定するテンプレートから追加のノードグループを作成することはできません。Compute Engine がノードタイプを置き換える際には、使用できなくなったノードタイプを指定する既存のノード テンプレートをレビューして修正する必要があります。

ノードグループと VM のプロビジョニング

単一テナントノード テンプレートは、ノードグループのプロパティを定義します。Google Cloud ゾーンにノードグループを作成する前に、ノード テンプレートを作成する必要があります。グループを作成するときに、ノードグループの VM インスタンスのメンテナンス ポリシーと、ノードグループのノード数を指定します。ノードグループには 0 以上のノードを含めることができます。たとえば、グループ内のノードで VM インスタンスを実行する必要がない場合、ノードグループのノード数を 0 に減らすか、ノードグループ オートスケーラーを有効にしてノードグループのサイズを自動で管理します。

単一テナントノードに VM をプロビジョニングする前に、単一テナントノード グループを作成する必要があります。ノードグループは、特定のゾーン内の単一テナントノードの同種のセットです。マシンタイプに 2 つ以上の vCPU があれば、ノードグループには、さまざまなサイズのマシンタイプで実行される複数の VM を含めることができます。

ワークロードの要件に合わせてグループのサイズが自動的に調整されるよう、ノードグループの作成時に自動スケーリングを有効にします。ワークロードの要件が静的な場合は、ノードグループのサイズを手動で指定できます。

ノードグループを作成した後に、グループまたはグループ内の特定のノードに VM をプロビジョニングできます。ノード アフィニティ ラベルを使用すると、アフィニティ ラベルが一致する任意のノードで VM をスケジュールできます。

ノードグループに VM をプロビジョニングし、必要に応じてアフィニティ ラベルを割り当てて特定のノードグループまたはノードに VM をプロビジョニングしたら、VM の管理に役立つようリソースのラベル付けを検討します。ラベルは VM を分類する Key-Value ペアであり、VM を集約して表示できるため料金の把握などに役立ちます。たとえば、ラベルを使用して、VM の役割、テナンシー、ライセンス タイプ、ロケーションをマークできます。

メンテナンス ポリシー

さまざまなワークロード要件を処理するため、ノードグループの作成時に VM のメンテナンス ポリシーを指定できます。単一テナントノードのメンテナンス ポリシーを使用すると、ノードグループの VM をメンテナンス イベント後に移行する方法と、移行するかどうかを構成できます。選択するメンテナンス ポリシーは、ライセンスやコンプライアンスの要件などによって異なります。また、物理サーバーの使用を制限できる構成も選択できます。これらのすべてのメンテナンス ポリシーを使用しても、VM は専用のハードウェア上に残ります。次のリストで、これらのメンテナンス ポリシーについて説明します。

  • デフォルト: このポリシーで構成されたノードグループの VM は、非単一テナント VM の従来のメンテナンス動作に従います。すなわち、VM のホストの [ホスト メンテナンス時] 設定に応じて、VM はホスト メンテナンス イベント前にノードグループの新しい単一テナントノードにライブ マイグレーションされ、この新しい単一テナントノードはお客様の VM のみを実行します。この設定は、VM の移行を物理サーバーの固定プール内に制限するものではありません。この設定は、物理サーバーの要件がなく既存のライセンスを必要としない一般的なワークロードに推奨されます。

  • 再起動: VM は終了し、メンテナンス イベント後に同じ物理ホストで再起動します。ワークロードがライブ マイグレーションを必要とせず、4~6 週間ごとにホスト メンテナンスによる約 1 時間のダウンタイムが許容でき、VM が単一ホストへの物理サーバー アフィニティを維持する必要がある場合には、このポリシーを検討してください。

  • ノードグループ内での移行: VM の [ホスト メンテナンス時] 設定に応じて、VM はホスト メンテナンス イベント前にノードグループ内の別のノードにライブ マイグレーションされます。デフォルトの設定とは異なり、VM が一意的に使用する物理サーバーの数を制限するため、これらの移行は物理サーバーの一定のセット内で行われます。VM の移行に十分な容量を確保するため、Compute Engine は単一テナントノード 20 個ごとに 1 つのノードを予約します。ワークロードがダウンタイムを許容しないためライブ マイグレーションを行う必要がある場合、ワークロードにコアまたはプロセッサ ベースのライセンス要件がある場合、または追加の単一テナントノードをプロビジョニングする場合、このポリシーを検討してください。

ハードウェア障害

まれに、サーバーで重大なハードウェア障害が発生することがあります。その場合、Compute Engine は物理サーバーとその一意の識別子を廃止し、物理サーバーへのアクセスを取り消します。そして、新しい一意の識別子で置換ノードを割り当て、VM を置換ノードに移します。単一テナントノードの構成によっては、Compute Engine が VM を再起動することがあります。

ノード アフィニティとアンチアフィニティ

単一テナントノードでは、VM が他のプロジェクトの VM とホスト ハードウェアを共有することはありません。ただし、同じ単一テナントノード上で複数のワークロードをグループ化することや、ワークロードを互いに異なるノードに分離する必要が生じることも考えられます。たとえば、コンプライアンス要件を満たすため、アフィニティ ラベルを使用して機密性の高いワークロードを機密性の低いワークロードから分離する場合です。

VM の作成時に、1 つ以上のノード アフィニティ ラベルを参照し、ノード アフィニティまたはアンチアフィニティを指定して単一テナンシーをリクエストします。ノード テンプレートの作成時にカスタム ノード アフィニティ ラベルを指定すると、Compute Engine は各ノードに複数のデフォルト アフィニティ ラベルを自動的に追加します。VM の作成時にアフィニティを指定すると、ノードグループ内の特定のノードで複数の VM を同時にスケジュールできます。VM の作成時にアンチアフィニティを指定すると、特定の VM がノードグループ内の同じノードまたは複数のノードで同時にスケジュールされないようにできます。

ノード アフィニティ ラベルは、ノードに割り当てられた Key-Value ペアであり、ノード テンプレートから継承されます。アフィニティ ラベルを使用すると、次のことができます。

  • 個々の VM インスタンスをノードに割り当てる方法を制御する。
  • テンプレートから作成された VM インスタンス(マネージド インスタンス グループによって作成されたものなど)をノードに割り当てる方法を制御する。
  • 機密性の高い VM インスタンスを特定のノードまたはノードグループにグループ化し、他の VM から分離する。

デフォルト アフィニティ ラベル

Compute Engine は、各ノードに 2 つのデフォルト アフィニティ ラベルを割り当てます。

  • ノードグループ名のラベル:
    • キー: compute.googleapis.com/node-group-name
    • 値: ノードグループの名前。
  • ノード名のラベル:
    • キー: compute.googleapis.com/node-name
    • 値: 個々のノードの名前

カスタム アフィニティ ラベル

ノード テンプレートを作成するときに、カスタムのノード アフィニティ ラベルを作成できます。これらのアフィニティ ラベルは、ノード テンプレートから作成されたノードグループ内のすべてのノードに割り当てられます。ノードグループを作成した後に、ノードグループ内のノードにカスタム アフィニティ ラベルを追加することはできません。

アフィニティ ラベルの使用方法については、ノード アフィニティの構成をご覧ください。

料金

単一テナントノードのコストを最小限に抑えるため、Compute Engine では確約利用割引継続利用割引を提供しています。また、単一テナントノードの vCPU とメモリについてはすでに課金されているため、単一テナントノードの VM に追加料金はかかりません。

対象

単一テナントノードは、一部のゾーンでのみ使用可能です。高可用性を確保するため、異なるゾーンの単一テナントノードで VM をスケジュールします。

制限事項

次のステップ