このドキュメントでは、Compute Engine を使用して VM を一括作成する際のインスタンスの柔軟性について説明します。
リージョンで仮想マシン(VM)を一括作成する場合、アプリケーションが単一のマシンタイプに制限されていない場合は、インスタンスの柔軟性を構成することで、必要な数の VM のプロビジョニングの成功率を高めることができます。インスタンスの柔軟性により、ワークロードに適した 1 つ以上のマシンタイプを指定できます。Compute Engine は、容量と割り当ての可用性に基づいて、これらのマシンタイプのいずれかを使用して VM をプロビジョニングします。
インスタンスの柔軟性を使用する
インスタンスの柔軟性を構成するには、リージョン一括挿入リクエストで 1 つ以上のインスタンス選択を定義して、適切なマシンタイプをリストします。たとえば、REST リクエストでは instanceFlexibilityPolicy オブジェクトを含めます。このオブジェクト内で、1 つ以上の instanceSelections オブジェクトを定義します。各オブジェクトには、マシンタイプのリストが含まれます。
Compute Engine はリクエストを受信すると、まずマシンタイプとそのゾーン互換性を検証し、無効なエントリを除外します。有効な構成が 1 つ以上存在する場合、オペレーションは続行されます。
Compute Engine は、使用可能なハードウェア、割り当て、予約に基づいて VM のプロビジョニングを試みます。インスタンスの選択にランクを構成すると、ランクの低い選択が優先されます。各ランク内で、Compute Engine は未使用の予約と Spot VM のガイダンスを考慮して、プリエンプションの可能性が低いマシンタイプを選択します。
ターゲット分配形態が定義されている場合のゾーンの選択
リージョン bulkInsert リクエストでインスタンスの柔軟性を使用する場合は、ターゲット分配形態を指定して、リージョン内のゾーン間で VM を分散する方法を制御できます。Compute Engine は、この形状に基づいて、次のように VM をプロビジョニングするゾーンを選択します。
ANY_SINGLE_ZONE: Compute Engine は、優先度の高いマシンタイプで最も容量の多い単一のゾーンを選択します。BALANCED: Compute Engine は、使用可能なリソースのあるゾーン間で VM をできるだけ均等に分散します。各ゾーン内で、Compute Engine は優先度の高いマシンタイプを優先します。ANY: Compute Engine が使用可能なリソースがあるゾーンを選択します。ランクが構成されている場合、Compute Engine は優先度の高いマシンタイプで VM をプロビジョニングするゾーンを優先します。
詳細については、リージョンに VM を一括作成するをご覧ください。
最小 VM プロビジョニングとインスタンスの柔軟性
bulkInsert リクエストで必要な VM の最小数(minCount)の値を定義すると、API は少なくともその数の VM を作成しようとします。Compute Engine が最小限必要な数の VM(minCount)をプロビジョニングできない場合、オペレーション全体が失敗し、Compute Engine は VM を作成しません。インスタンスの柔軟性で minCount を使用すると、Compute Engine は次のように、ランクよりも取得可能性に基づいて VM のプロビジョニングを優先します。
- Compute Engine は、優先度の低いマシンを使用することになっても、最大
count個の VM をプロビジョニングすることを優先します。たとえば、リクエストで必要な VM の最小数(minCount=1)が 1、VM の最大数(count=10)が 10 と指定されていて、Compute Engine に優先度の高い VM を 1 つプロビジョニングする容量または優先度の低い VM を 6 つプロビジョニングする容量がある場合、Compute Engine は優先度の低い VM を 6 つプロビジョニングします。 - Compute Engine が異なるインスタンス選択を使用して最大
count個の VM をプロビジョニングできる場合、優先度の高い選択が優先されます。たとえば、リクエストで必要な VM の最小数(minCount=1)が 1、VM の最大数(count=10)が 10 と指定されていて、優先度の高いインスタンス選択または優先度の低いインスタンス選択のいずれかを使用して 6 個の VM をプロビジョニングできる場合、Compute Engine は優先度の高い選択から 6 個の VM をプロビジョニングします。
詳細については、bulkInsert の minCount プロパティをご覧ください。
一括挿入の検証とエラー シナリオ
Compute Engine は、マシンタイプとそのゾーン互換性の初期検証を行い、無効なエントリを検討対象から除外します。この初期チェックの後に有効な構成が 1 つ以上残っている場合、Compute Engine は VM の作成を続行します。
ただし、構成の検証の一部は、インスタンスの柔軟性ポリシーと使用可能な容量に基づいて、プロビジョニングに使用するゾーンとマシンタイプが Compute Engine によって選択された後にのみ実行できます。この後の検証段階で、プロビジョニング用に選択された特定のマシンタイプとゾーンの組み合わせが無効であることが判明した場合、一括挿入リクエスト全体が検証エラーで失敗します。このエラーは、instanceFlexibilityPolicy 内の他の構成が最初は有効であった場合でも発生することがあります。
制限事項
VM の一括作成にインスタンスの柔軟性を使用する場合、次の制限が適用されます。
- インスタンスの柔軟性は、リージョン
bulkInsertリクエストに対してのみ指定できます。ゾーン リクエストでは使用できません。 - インスタンスの柔軟性では、将来の予約、フレックス スタート プロビジョニング モデル、A3 Ultra、A4 以降の GPU などの AI Hypercomputer 機能はサポートされていません。
- インスタンスの柔軟性でカスタム マシンタイプを指定することはできません。
- 最大 10 個のインスタンス選択で、最大 10 個の異なるマシンタイプを指定できます。
次のステップ
- インスタンスの柔軟性を備えた VM を一括作成する方法を学習する。