次の方法で共有


Azure Compute Fleet の属性ベースの VM 選択 (プレビュー)

重要

属性ベースの仮想マシン選択は現在プレビュー段階です。 プレビュー版は、追加使用条件に同意することを条件に使用できます。 この機能の一部の側面は、一般公開 (GA) 前に変更される可能性があります。

属性ベースの仮想マシン (VM) 選択機能を使用すると、インスタンス要件を VM 属性のセット (メモリ、vCPU、ストレージなど) として構成できます。 これらの要件は、すべての適切な Azure VM サイズと一致するため、VM 構成の作成と保守が簡略化されます。 また、この機能を使用すると、新しい VM 世代が使用できるようになったときに、それをシームレスに利用することもできます。 さらに、Azure Spot Virtual Machines を介してより広い範囲の容量にアクセスすることもできます。 Compute Fleet サービスを利用すると、指定された属性に一致する VM が選択されて起動されるため、VM サイズを手動で選択する必要がなくなります。

属性ベースの VM 選択のフロー図を示すスクリーンショット。

属性ベースの VM 選択は、ステートレス Web サービス、大規模なバッチ処理、ビッグ データ クラスター、継続的インテグレーション パイプラインなどのシナリオに最適です。 財務リスクのモデリング、ログ処理、イメージのレンダリングなどのワークロードでは、数十万の同時コアまたはインスタンスを実行する機能を利用できます。 Spot Virtual Machines を利用する場合、多数の VM サイズと種類を個別に指定する代わりに、リリースされた新しいオプションも含め、関連するすべてのオプションをシンプルな属性構成に含めることができるようになりました。

前提条件

属性ベースの VM 選択を使用するには、Azure Compute Fleet プレビュー機能にサインアップする必要があります。 サインアップ フォームの入力が完了し、承認されると、次の手順とオンボードの詳細が送られてきます。

メリット

  • スポット VM に最適な柔軟性: Compute Fleet により、さまざまな VM サイズから選択して Spot Virtual Machines をデプロイするときに最適な柔軟性が提供されます。 このプロセスは、VM サイズを選択する際の柔軟性を確保して、スポットの使用に関するベスト プラクティスに従います。これにより、Azure Spot VMs が、必要とされるコンピューティング容量を満たして割り当てる可能性が高まります。
  • 簡略化された VM の種類の選択:使用可能な VM サイズは多岐にわたるため、ワークロードに最適なものを見つけるのは複雑な作業になる可能性があります。 VM 属性を指定すると、Azure Virtual Machine Scale Sets は、ワークロードの要件を満たす VM サイズを自動的に選択できます。 この自動化により、プロセスが簡略化され、適切なリソースが確実に選択されます。
  • 新しい VM サイズの自動導入: Azure Virtual Machine Scale Sets では、新しい世代の VM サイズが使用可能になると、それを自動的に組み込むことができます。 これらの新しい VM サイズは、指定された要件を満たし、選択された割り当て戦略と一致する場合、スケール セットによってシームレスに使用されるため、手動で更新することなく、最新の進歩によるデプロイの利点を確実に得ることができます。

プロセス

属性ベースの VM 選択のしくみ このプロセスには、"VM の種類の決定" と、それに続く "割り当て戦略の適用" の 2 つの主要な手順が含まれます。

  • VM の種類の決定: 属性ベースの選択により、指定された属性、選択された Azure リージョン、可用性ゾーンに基づいて、VM の種類の一覧が生成されます。
  • 割り当て戦略の適用: Compute Fleet により、選択された割り当て戦略が、生成された VM の一覧に適用されます。

Azure Spot VMs の場合、属性ベースの選択では、容量最適化と最適価格の両方の割り当て戦略がサポートされます。 Standard VM の場合、属性ベースの選択では、最低価格の割り当て戦略がサポートされます。 Compute Fleet は、属性構成を、適切な VM の種類の一覧に解決し、最初は最低価格の VM を起動して容量要求のオンデマンド部分を満たした後、必要に応じて、次の最低価格の VM に進みます。

属性ベースの選択機能を使用すると、VM の種類をより柔軟に構成でき、広範なインスタンスの種類の一覧は必要なくなります。 この方法では、選択した Azure リージョンに新しい VM 世代が導入されたときに、それらが自動的に利用されます。 さらに、属性ベースの選択を使用すると、スポット要求を使用してより多くの容量に効率的にアクセスする機能が強化されます。

属性ベースの選択により、VM サイズの管理は、より簡単かつスケーラブルになり、ワークロードは確実に、最適化された価格とパフォーマンスでスムーズに実行されます。

サポートされている VM 属性

サポートされている VM 属性の一覧と構成の例を次に示します。

vCpuCount

  • 必須
  • VMAttributes が指定されている場合に指定する必要がある
  • vCpuCount の範囲を min から max まで指定する
  • 指定する場合は、min(uint) または max(uint) のいずれかが必須
"vCpuCount": {
	"value": {
		"min": 2, 
		"max": 24
	}
}

memoryInGiB

  • 必須
  • VMAttributes が指定されている場合に指定する必要がある
  • memoryInGiB の範囲を min から max まで指定する
  • 指定する場合は、min(double) または max(double) のいずれかが必須
"memoryInGiB": { 
	"value": {  
		"min": 0,
		"max": 1024
	}
}

memoryInGiBPerVCpu

  • 省略可能
  • memoryInGiBPerVCpu の範囲を min から max まで指定する
  • 指定する場合は、min(double) または max(double) のいずれかが必須
"memoryInGiBPerVCpu": { 
	"value": {  
		"min": 0,
		"max": 8 
	} 
}

localStorageSupport

  • 省略可能
  • ローカル ストレージをサポートする VM サイズを使用して Compute Fleet を構築する必要があるかどうかを指定する
  • 可能な値:
    • Excluded - ローカル ストレージをサポートする VM サイズを含めない
    • Required - ローカル ストレージをサポートする VM サイズのみを含める
    • Included - ローカル ストレージをサポートする VM サイズとサポートしない VM サイズを含める (localStorageSupport が指定されていない場合の既定値)
"localStorageSupport": "Included"

localStorageInGiB

  • 省略可能
  • localStorageInGiB の範囲を min から max まで指定する
  • 指定する場合は、min(double) または max(double) のいずれかが必須
  • この VM 属性を使用するには、localStorageSupportIncluded または Required に設定する必要がある
  • localStorageSupportExcluded に設定した場合は、この VM 属性を使用できない
"localStorageInGiB": { 
	"value": {  
		"min": 0,
		"max": 100 
	}
}

localStorageDiskTypes

  • 省略可能
  • localStorageDiskTypes を一覧として指定する
  • 有効な値は、SSDHDD
  • この VM 属性を使用するには、localStorageSupportIncluded または Required に設定する必要がある
  • localStorageSupportExcluded に設定した場合は、この VM 属性を使用できない
  • 指定されない場合、localStorageDiskTypes の既定値は有効な値の "いずれか"
"localStorageDiskTypes": { 
	"value": [ 
		"SSD", 
		"HDD" 
	] 
}

dataDiskCount

  • 省略可能
  • dataDiskCount の範囲を min から max まで指定する
  • 指定する場合は、min(uint) または max(uint) のいずれかが必須
"dataDiskCount": { 
	"value": {  
		"min": 0, 
		"max": 10 
	} 
}

networkInterfaceCount

  • 省略可能
  • networkInterfaceCount の範囲を min から max まで指定する
  • 指定する場合は、min(uint) または max(uint) のいずれかが必須
"networkInterfaceCount": { 
	"value": {  
		"min": 0, 
		"max": 10 
	} 
}

networkBandwidthInMbps

  • 省略可能
  • networkBandwidthInMbps の範囲を min から max まで指定する
  • 指定する場合は、min(double) または max(double) のいずれかが必須
"networkBandwidthInMbps": { 
	"value": {  
		"min": 0, 
		"max": 500 
	} 
}

rdmaSupport

  • 省略可能
  • リモート ダイレクト メモリ アクセス (RDMA) をサポートする VM サイズを使用して Compute Fleet を構築する必要があるかどうかを指定する
  • 可能な値:
    • Excluded - RDMA をサポートする VM サイズを含めない (rdmaSupport を指定しない場合の既定値)
    • Required - RDMA をサポートする VM サイズのみを含める
    • Included - RDMA をサポートする VM サイズとサポートしない VM サイズを含める
"rdmaSupport": "Included"

rdmaNetworkInterfaceCount

  • 省略可能
  • rdmaNetworkInterfaceCount の範囲を min から max まで指定する
  • 指定する場合は、min(uint) または max(uint) のいずれかが必須
  • この VM 属性を使用するには、rdmaSupportIncluded または Required に設定する必要がある
  • rdmaSupportExcluded に設定した場合は、この VM 属性を使用できない
"rdmaNetworkInterfaceCount": { 
	"value": {  
		"min": 0, 
		"max": 10 
	} 
}

acceleratorSupport

  • 省略可能
  • アクセラレータをサポートする VM サイズを使用して Compute Fleet を構築する必要があるかどうかを指定する
  • 可能な値:
    • Excluded - アクセラレータをサポートする VM サイズを含めない (acceleratorSupport を指定しない場合の既定値)
    • Required - アクセラレータをサポートする VM サイズのみを含める
    • Included - アクセラレータをサポートする VM サイズとサポートしない VM サイズを含める
"acceleratorSupport": "Required"

acceleratorManufacturers

  • 省略可能
  • acceleratorManufacturers を一覧として指定する
  • 有効な値は、AMDNvidiaXilinx
  • この VM 属性を使用するには、acceleratorSupportIncluded または Required に設定する必要がある
  • acceleratorSupportExcluded に設定した場合は、この VM 属性を使用できない
  • 指定されない場合、acceleratorManufacturers の既定値は有効な値の "いずれか"
"acceleratorManufacturers": { 
	"value": { 
		"Nvidia", 
		"Xilinx" 
	} 
}

acceleratorCount

  • 省略可能
  • acceleratorCount の範囲を min から max まで指定する
  • 指定する場合は、min(uint) または max(uint) のいずれかが必須
  • この VM 属性を使用するには、acceleratorSupportIncluded または Required に設定する必要がある
  • acceleratorSupportExcluded に設定した場合は、この VM 属性を使用できない
"acceleratorCount": { 
	"value": {  
		"min": 0, 
		"max": 10 
	} 
}

acceleratorTypes

  • 省略可能
  • acceleratorTypes を一覧として指定する
  • 有効な値は、GPUFPGA
  • この VM 属性を使用するには、acceleratorSupportIncluded または Required に設定する必要がある
  • acceleratorSupportExcluded に設定した場合は、この VM 属性を使用できない
  • 指定されない場合、acceleratorTypes の既定値は有効な値の "いずれか"
"acceleratorTypes": { 
	"value": { 
		"GPU", 
		"FPGA" 
	} 
}

vmCategories

  • 省略可能
  • vmCategories を一覧として指定する
  • 有効な 値は次のとおりです。
    • GeneralPurpose
    • ComputeOptimized
    • MemoryOptimized
    • StorageOptimized
    • GpuAccelerated
    • FpgaAccelerated
    • HighPerformanceCompute
  • 指定されない場合、vmCategories の既定値は GeneralPurpose
"vmCategories": { 
	"value": { 
		"GeneralPurpose", 
		"ComputeOptimized" 
	}
}

architectureTypes

  • 省略可能
  • architectureTypes を一覧として指定する
  • 有効な値は、X64Arm64
  • 指定されない場合、architectureTypes の既定値は、有効な値の "いずれか"
"architectureTypes": { 
	"value": { 
		"Arm64", 
		"x64" 
	} 
}

cpuManufacturers

  • 省略可能
  • cpuManufacturers を一覧として指定する
  • 有効な値は、IntelAMDMicrosoftAmpere
  • 指定されない場合、cpuManufacturers の既定値は、有効な値の "いずれか"
"cpuManufacturers": { 
	"value": { 
		"Microsoft", 
		"Intel" 
	} 
}

burstableSupport

  • 省略可能
  • バースト可能な容量をサポートする VM サイズを使用して Compute Fleet を構築する必要があるかどうかを指定する
  • 可能な値:
    • Excluded - バースト可能な容量をサポートする VM サイズを含めない (acceleratorSupport を指定しない場合の既定値)
    • Required - バースト可能な容量をサポートする VM サイズのみを含める
    • Included - バースト可能な容量をサポートする VM サイズとサポートしない VM サイズを含める
"burstableSupport": "Excluded"

excludedVMSizes

  • 省略可能
  • Compute Fleet の構築時に除外する必要がある VM サイズを指定する
  • すべての excludedVMSizes は、VM 属性と一致している場合でも無視される
  • excludedVMSizes VM 属性を指定する場合、VMSizesProfile を指定することはできず、その逆も同様
  • 制限は、100 個の VM サイズ
"excludedVMSizes": { 
	"value": { 
		"Standard_F1", 
		"Standard_F2" 
	} 
}

VMSizesProfile

  • 省略可能
  • Compute Fleet の構築時に除外する必要がある VM サイズを指定する
  • 他のすべての VM サイズは、VM 属性と一致している場合でも無視される
  • VMSizesProfile を指定する場合、excludedVMSizes を指定できず、その逆も同様
  • 制限は、100 個の VM サイズ
"VMSizesProfile": { 
	"value": { 
		{"name": "Standard_F1"}, 
		{"name": "Standard_F2"} 
	} 
}

次のステップ