Azure での Virtual Machine Scale Sets のオーケストレーション モード

仮想マシン スケール セットは、プラットフォームによって管理される仮想マシンの論理グループを提供します。 スケール セットを使用して、仮想マシン構成モデルを作成し、CPU またはメモリの負荷に基づいて追加のインスタンスを自動的に追加または削除し、最新の OS バージョンに自動的にアップグレードします。 従来、スケール セットでは、スケール セットの作成時に提供された VM 構成モデルを使用して仮想マシンを作成できます。スケール セットで管理できるのは、構成モデルに基づいて暗黙的に作成された仮想マシンのみです。

スケール セットのオーケストレーション モードを使用すると、スケール セットでの仮想マシン インスタンスの管理方法をより詳細に制御できます。

重要

オーケストレーション モードは、スケール セットを作成するときに定義され、後で変更または更新することはできません。

均一オーケストレーションによるスケール セット

同一インスタンスの大規模なステートレス ワークロード用に最適化されています。

均一オーケストレーションの Virtual Machine Scale Sets は、仮想マシン プロファイルまたはテンプレートを使って、目的の容量にスケールアップします。 個々の仮想マシン インスタンスを一部管理またはカスタマイズできますが、均一では同一の VM インスタンスを使用します。 個々の均一 VM インスタンスは、仮想マシン スケール セット VM API コマンドを介して公開されます。 個々のインスタンスには、標準の Azure IaaS VM API コマンド、Azure Resource Manager タグ付け RBAC アクセス許可などの Azure 管理機能、Azure Backup、Azure Site Recovery との互換性はありません。 均一オーケストレーションでは、インスタンスを 100 個未満に構成した場合に、障害ドメインの高可用性の保証が得られます。 均一オーケストレーションは一般提供されていて、メトリックベースの自動スケーリング、インスタンス保護、自動 OS アップグレードなど、あらゆるスケール セット管理およびオーケストレーションをサポートしています。

フレキシブル オーケストレーションによるスケール セット

同一または複数の仮想マシンの種類を使用して、大規模に高可用性を実現します。

Azure ではフレキシブル オーケストレーションを使用することで、Azure VM エコシステム全体で統合されたエクスペリエンスを実現できます。 フレキシブル オーケストレーションでは、リージョン内の障害ドメインまたは可用性ゾーン内で VM を分散することで、(最大 1,000 個の VM まで) 高可用性を保証します。 これにより、以下のようなクォーラムベースまたはステートフル ワークロードを実行するのに欠かせない障害ドメインを分離したまま、アプリケーションをスケールアウトできます。

  • クォーラムベースのワークロード
  • オープンソース データベース
  • ステートフル アプリケーション
  • 高可用性と大規模を要件とするサービス
  • 仮想マシンの種類の混在、またはスポットとオンデマンドの VM の併用が求められるサービス
  • 既存の可用性セット アプリケーション

フレキシブル オーケストレーション モードの変更点

フレキシブル オーケストレーションの主なメリットの 1 つは、スケール セットの子仮想マシンではなく標準の Azure IaaS VM を介してオーケストレーション機能を利用できる点です。 つまり、フレキシブル オーケストレーション インスタンスを管理する際には、(均一オーケストレーションで使用する仮想マシン スケール セット VM API ではなく) すべての標準 VM API を使用できます。 フレキシブル オーケストレーションと均一オーケストレーションにおけるインスタンス管理には、いくつかの違いがあります。 一般に、可能な場合は標準の Azure IaaS VM API を使用することをお勧めします。 このセクションでは、フレキシブル オーケストレーションによって VM インスタンスを管理する際のベスト プラクティスの例を紹介します。

フレキシブル オーケストレーション モードは、すべての VM サイズで使用できます。 フレキシブル オーケストレーション モードは、B、D、E、F シリーズを使っている場合や、スケール セットがインスタンス間に最大限に拡散するよう構成されている場合 (platformFaultDomainCount=1) のような、メモリ保持更新またはライブ マイグレーションをサポートする VM サイズに対して、最高のスケールと構成可能性を提供します。 現在、G、H、L、M、N シリーズの VM などのメモリ保持更新をサポートしない VM サイズで、インスタンスが複数の障害ドメインに分散されている場合、フレキシブル オーケストレーション モードには追加の制約があります。 特定の VM SKU がメモリ保持更新をサポートしているかどうかは、Compute Resource SKU API を使って調べることができます。

機能 メモリ保持更新がサポートされている、または、最大拡散のスケール セット (platformFaultDomainCount=1) メモリ保持更新がサポートされていない、かつ、固定拡散 (platformFaultDomainCount > 1)
Virtual Machine Scale Sets のインスタンスの最大数 1000 200
オペレーティング システムの混在 はい はい
スポットとオンデマンドのインスタンスの混在 はい いいえ
汎用と特殊の SKU の種類の混在 はい (FDCount = 1) いいえ
障害ドメインの最大数 リージョン – 3 (リージョンの障害ドメインの最大カウントに応じて)
ゾーン ベース – 1
リージョン ベース – 3
ゾーン ベース – 1
複数のゾーンへのインスタンスの拡散 はい はい
特定のゾーンへの VM の割り当て はい はい
特定の障害ドメインへの VM の割り当て はい いいえ
更新ドメイン いいえ いいえ
1 つの配置グループ 省略可能。 これは、最初にデプロイされる VM に基づいて false に設定されます 任意。 これは、最初にデプロイされる VM に基づいて true に設定されます

標準の Azure 仮想マシンを使用したスケールアウト

フレキシブル オーケストレーション モードの Virtual Machine Scale Sets は、標準の Azure VM を管理します。 標準の Azure API とコマンドを使用して、仮想マシンのライフサイクルだけでなく、ネットワーク インターフェイスとディスクも完全に制御できます。 均一オーケストレーション モードで作成された仮想マシンは、仮想マシン スケール セットの VM API コマンドを使用して公開および管理されます。 個々のインスタンスには、標準の Azure IaaS VM API コマンド、Azure Resource Manager タグ付け RBAC アクセス許可などの Azure 管理機能、Azure Backup、Azure Site Recovery との互換性はありません。

VM 作成時の障害ドメインの割り当て

フレキシブル オーケストレーションのスケール セットでは障害ドメインの数を選択できます。 既定では、フレキシブル スケール セットに VM を追加すると、Azure によってインスタンスが障害ドメインに対して均一に分散されます。 Azure に障害ドメインの割り当てを任せることが推奨されますが、高度またはトラブルシューティングのシナリオでは、この既定の動作をオーバーライドして、インスタンスが配置される障害ドメインを指定できます。

az vm create –vmss "myVMSS"  –-platform-fault-domain 1

インスタンスの命名

VM を作成し、それをフレキシブル スケール セットに追加する場合、Azure の名前付け規則内においてインスタンス名を完全に制御できます。 自動スケーリングを通じて自動的に VM がスケール セットに追加される場合、プレフィックスを付加します。名前の最後には、Azure によって一意の番号が追加されます。

インスタンスの稼働状態についてのクエリ

推奨されるのは、Azure Resource Graph を使用して仮想マシン スケール セット内のすべての VM に対してクエリを実行する方法です。 Azure Resource Graph には、サブスクリプション全体で大規模に Azure リソースに対してクエリを実行する効率的な機能が備わっています。

resources
| where type =~ 'Microsoft.Compute/virtualMachines'
| where properties.virtualMachineScaleSet.id contains "demo"
| extend powerState = properties.extended.instanceView.powerState.code
| project name, resourceGroup, location, powerState
| order by resourceGroup desc, name desc

Azure Resource Graph を使用したリソースへのクエリ実行は、Azure リソースに対してクエリを実行するのに便利で効率的な方法です。リソース プロバイダーへの API 呼び出しを最小限に抑えられます。 Azure Resource Graph で得られるのは最終的に一貫したキャッシュであり、新しいまたは更新されたリソースが最大 60 秒間反映されない場合があります。 次のようにすることができます。

  • リソース グループまたはサブスクリプション内の VM を一覧表示する。
  • 展開オプションを使用して、サブスクリプション内のすべての VM のインスタンス ビュー (障害ドメインの割り当て、稼働およびプロビジョニングの状態) を取得する。
  • VM の取得 API およびコマンドを使用して、単一インスタンスのモデルとインスタンスのビューを取得する。

スケール セット VM のバッチ操作

仮想マシン スケール セット VM API ではなく標準の VM コマンドを使用して、インスタンスを起動、停止、再起動、削除します。 仮想マシン スケール セット VM のバッチ操作 (すべて起動、すべて停止、すべて再イメージ化など) は、フレキシブル オーケストレーション モードでは使用されません。

アプリケーションの正常性を監視する

アプリケーションの稼働状況の監視では、アプリケーションから Azure にハートビートを提供し、自分のアプリケーションが正常であるのか、それとも異常であるのかを判断できます。 Azure による異常な VM インスタンスの自動置換を利用できます。 フレキシブル スケール セット インスタンスの場合、仮想マシンにアプリケーション正常性拡張機能をインストールして構成する必要があります。 均一スケール セット インスタンスの場合、アプリケーション正常性拡張機能を使用することも、Azure Load Balancer のカスタム正常性プローブを使用して正常性を測定することもできます。

スケール セット VM API の変更の一覧表示

Virtual Machine Scale Sets では、スケール セットに属するインスタンスを一覧表示できます。 フレキシブル オーケストレーションでは、Virtual Machine Scale Sets VM のリスト コマンドを使用して、スケール セット VM の ID を一覧表示できます。 その後、Virtual Machine Scale Sets VM の取得コマンドを呼び出して、スケール セットでの VM インスタンスの動作について詳細を取得できます。 VM の完全な詳細を取得するには、標準の VM 取得コマンドまたは Azure Resource Graph を使用します。

ブート診断データの取得

標準の VM API およびコマンドを使用して、インスタンスのブート診断データとスクリーンショットを取得します。 Virtual Machine Scale Sets VM のブート診断 API およびコマンドは、フレキシブル オーケストレーション モードのインスタンスでは使用されません。

VM 拡張機能

均一オーケストレーション モードのインスタンス向けの拡張機能でなく、標準の仮想マシン向けの拡張機能を使用します。

フレキシブル、均一、可用性セットの比較

次の表では、フレキシブル オーケストレーション モード、均一オーケストレーション モード、可用性セットを機能ごとに比較しています。

基本的なセットアップ

特徴量 スケール セットのフレキシブル オーケストレーションによるサポート対象 スケール セットの均一オーケストレーションによるサポート対象 可用性セットによるサポート対象
仮想マシンのタイプ 標準の Azure IaaS VM (Microsoft.compute/virtualmachines) スケール セット固有の VM (Microsoft.compute/virtualmachinescalesets/virtualmachines) 標準の Azure IaaS VM (Microsoft.compute/virtualmachines)
最大インスタンス数 (FD の保証あり) 1000 100 200
サポートされている SKU すべての SKU すべての SKU すべての SKU
VM、NIC、ディスクに対する完全な制御権 はい Virtual Machine Scale Sets VM API による制限付きの制御 はい
必要な RBAC アクセス許可 コンピューティング Virtual Machine Scale Sets 書き込み、コンピューティング VM 書き込み、ネットワーク コンピューティング Virtual Machine Scale Sets 書き込み 該当なし
テナント間共有イメージ ギャラリー いいえ はい はい
Accelerated Networking はい はい はい
スポットのインスタンスと価格 はい。スポットと通常の両方の優先度のインスタンスを使用できます はい。インスタンスは、すべてスポットとすべて通常のいずれかにする必要があります いいえ。通常の優先度のインスタンスのみ
オペレーティング システムの混在 はい。同一のフレキシブル スケール セット内で Linux と Windows が共存できます いいえ。インスタンスのオペレーティング システムは同一です はい。同一の可用性セット内でLinuxとWindowsが共存できます
ディスクの種類 マネージド ディスクのみ、すべてのストレージの種類 マネージド ディスクとアンマネージド ディスク マネージド ディスクとアンマネージド ディスク。 Ultradisk はサポートされていません
ユーザーが管理するキーによるディスク サーバー側暗号化 はい はい はい
書き込みアクセラレータ はい はい はい
近接配置グループ はい。近接配置グループのドキュメントをお読みください はい。近接配置グループのドキュメントをお読みください はい
Azure 専用ホスト いいえ はい はい
マネージド ID ユーザー割り当て ID のみ1 システム割り当てまたはユーザー割り当て N/A (個々のインスタンスでマネージド ID を指定できます)
グループに対する既存の VM の追加/削除 いいえ いいえ いいえ
Service Fabric いいえ はい いいえ
Azure Kubernetes Service (AKS) / AKE いいえ はい いいえ
UserData はい はい UserData を個々の VM に指定できます。
VM NIC とディスクを削除または保持するオプション はい いいえ (常に削除) はい
Ultra Disks はい はい いいえ

1 均一スケール セットの場合、GET VMSS 応答には IDクライアントIDと、プリンシパルID への参照が含まれます。 フレキシブル スケール セットの場合、応答には ID の参照のみを取得します。 クライアントID プリンシパルID を取得するためのIdentityへの呼び出しを行うことができます。

自動スケールとインスタンスのオーケストレーション

特徴量 スケール セットのフレキシブル オーケストレーションによるサポート対象 スケール セットの均一オーケストレーションによるサポート対象 可用性セットによるサポート対象
セット内の VM の一覧表示 はい はい はい。AvSet 内の VM を一覧表示します
自動スケーリング (手動、メトリック ベース、スケジュール ベース) はい はい いいえ
VM インスタンスを削除する際の NIC とディスクの自動削除 はい はい いいえ
アップグレード ポリシー (仮想マシン スケール セット) いいえ。アップグレード ポリシーは、作成中に null または [] である必要があります 自動、ローリング、手動 該当なし
自動 OS 更新 (仮想マシン スケール セット) いいえ はい 該当なし
ゲスト内セキュリティ パッチ はい。VM ゲストの自動パッチ適用に関する記事を参照 いいえ はい
終了通知 (仮想マシン スケール セット) はい。終了通知のドキュメントをお読みください はい。終了通知のドキュメントをお読みください なし
アプリケーション正常性の監視 アプリケーション正常性拡張機能 アプリケーション正常性拡張機能または Azure ロード バランサー プローブ アプリケーション正常性拡張機能
インスタンスの修復 (仮想マシン スケール セット) はい。インスタンスの修復のドキュメントをお読みください はい。インスタンスの修復のドキュメントをお読みください なし
インスタンス保護 いいえ。Azure リソースのロックを使用します はい いいえ
スケールイン ポリシー いいえ はい いいえ
VMSS インスタンス ビューの取得 いいえ はい なし
VM バッチ操作 (すべて開始、すべて停止、サブセットの削除など) 部分的なバッチ削除がサポートされています。 その他の操作は、VM API を使用して各インスタンスでトリガーできます。 はい いいえ

高可用性

特徴量 スケール セットのフレキシブル オーケストレーションによるサポート対象 スケール セットの均一オーケストレーションによるサポート対象 可用性セットによるサポート対象
可用性 SLA 障害ドメイン間で分散しているインスタンスの場合は 99.95%。複数のゾーンに分散しているインスタンスの場合は 99.99%。 単一配置グループの FD > 1 の場合は 99.95%。複数のゾーンに分散するインスタンスの場合は 99.99% 99.95%
可用性ゾーン インスタンスが 1 つ、2 つ、または 3 つの可用性ゾーンに分散して配置されるように指定します インスタンスが 1 つ、2 つ、または 3 つの可用性ゾーンに分散して配置されるように指定します サポートされていません
特定の可用性ゾーンに対する VM の割り当て はい いいえ いいえ
障害ドメイン - 最大拡散 (Azure によってインスタンスが最大限に拡散されます) はい はい いいえ
障害ドメイン - 固定拡散 2 から 3 個の FD (リージョンの最大 FD 数によって異なります)。ゾーンのデプロイの場合は 1 個 2、3、5 FD。ゾーンのデプロイの場合は 1、5 2 から 3 個の FD (リージョンの最大 FD 数によって異なります)
特定の障害ドメインへの VM の割り当て はい いいえ いいえ
更新ドメイン 非推奨 (プラットフォームのメンテナンスが FD ごとに実行されました) 5 更新ドメイン 最大 20 個の更新ドメイン
メンテナンス実行 VM API を使用して各インスタンスのメンテナンスをトリガーします はい 該当なし
容量予約 Yes はい はい

ネットワーク

機能 スケール セットのフレキシブル オーケストレーションによるサポート対象 スケール セットの均一オーケストレーションによるサポート対象 可用性セットによるサポート対象
既定の送信接続 いいえ。明示的な送信接続が必要です はい はい
Azure Load Balancer Standard SKU はい はい はい
Application Gateway はい はい はい
Infiniband ネットワーク いいえ はい。単一の配置グループのみ はい
Basic ロード バランサー いいえ はい はい
ネットワーク ポートの転送 はい (個々のインスタンスの NAT 規則) はい (NAT プール) はい (個々のインスタンスの NAT 規則)

バックアップと回復

特徴量 スケール セットのフレキシブル オーケストレーションによるサポート対象 スケール セットの均一オーケストレーションによるサポート対象 可用性セットによるサポート対象
Azure Backup はい いいえ はい
Azure Site Recovery はい (PowerShell を使用) いいえ はい
Azure アラート はい はい はい
VM Insights 個々の VM にインストールできます はい Yes

サポートされていないパラメーター

フレキシブル オーケストレーション モードの Virtual Machine Scale Sets では、次の仮想マシン スケール セット パラメーターは現在サポートされていません。

  • 1 つの配置グループ - singlePlacementGroup=False を選択する必要があります
  • Ultra ディスク構成: diskIOPSReadWritediskMBpsReadWrite
  • 仮想マシン スケール セットのオーバープロビジョニング
  • イメージベースの OS の自動アップグレード
  • SLB 正常性プローブを使用したアプリケーションの正常性 - インスタンスでアプリケーション正常性拡張機能を使用してください
  • 仮想マシン スケール セットのアップグレード ポリシー - null または空にする必要があります
  • Azure Dedicated Host へのデプロイ
  • 非管理対象ディスク
  • 仮想マシン スケール セットのスケールイン ポリシー
  • 仮想マシン スケール セットのインスタンス保護
  • Basic Load Balancer
  • Standard Load Balancer NAT プール経由のポートの転送 - 特定のインスタンスに対して NAT 規則を構成できます

フレキシブル オーケストレーションでのスケール セットのトラブルシューティング

ご自分のトラブルシューティング シナリオに適した解決策を見つけてください。

InvalidParameter. 指定した障害ドメインの数 3 は、1 から 2 の範囲でなければなりません。

InvalidParameter. The specified fault domain count 3 must fall in the range 1 to 2.

原因: 選択したリージョンまたはゾーンで platformFaultDomainCount パラメーターが無効です。

解決策: 有効な platformFaultDomainCount 値を選択する必要があります。 ゾーン デプロイの場合、platformFaultDomainCount の最大値は 1 です。 ゾーンが指定されていないリージョン デプロイの場合、platformFaultDomainCount の最大値はリージョンによって異なります。 スクリプトでリージョンあたりの障害ドメインの最大数を判断するには、VM の可用性の管理に関するページを参照してください。

OperationNotAllowed. 仮想マシン スケール セットは、1 つまたは複数の VM が含まれているため、削除できません。 Please delete or detach the VM(s) before deleting the Virtual Machine Scale Set.

OperationNotAllowed. Deletion of Virtual Machine Scale Set isn't allowed as it contains one or more VMs. Please delete or detach the VM(s) before deleting the Virtual Machine Scale Set.

原因: 1 つ以上の仮想マシンが関連付けられているフレキシブル オーケストレーション モードのスケール セットを削除しようとしています。

解決策: フレキシブル オーケストレーション モードのスケール セットに関連付けられているすべての仮想マシンを削除すると、スケール セットを削除できます。

InvalidParameter. The value 'True' of parameter 'singlePlacementGroup' is not allowed. Allowed values are: False.

InvalidParameter. The value 'True' of parameter 'singlePlacementGroup' is not allowed. Allowed values are: False.

原因:singlePlacementGroupパラメーターが True に設定されています。

解決策:singlePlacementGroupFalse に設定する必要があります。

OutboundConnectivityNotEnabledOnVM. 仮想マシンの送信接続が構成されていません。

OutboundConnectivityNotEnabledOnVM. No outbound connectivity configured for virtual machine.

原因: 送信インターネット接続を使用せずに、フレキシブル オーケストレーション モードで仮想マシン スケール セットを作成しようとしています。

解決策: お使いのアプリケーションに最適な方法で、仮想マシン スケール セットのセキュリティで保護された送信アクセスを有効にします。 送信アクセスは、サブネット上の NAT ゲートウェイを使用したり、ロード バランサー バックエンド プールにインスタンスを追加したり、インスタンスごとに明示的なパブリック IP を追加したりすることで有効にできます。 高度にセキュリティで保護されたアプリケーションの場合は、ファイアウォールまたは仮想ネットワーク アプリケーションを介してカスタムのユーザー定義ルートを指定できます。 詳細については、既定の送信アクセスに関するページを参照してください。

フレキシブル オーケストレーション モードの開始

登録して、Virtual Machine Scale Sets のフレキシブル オーケストレーション モードを使い始めます。

よく寄せられる質問

  • フレキシブル オーケストレーションでは、どのくらいのスケーリングがサポートされますか?

    フレキシブル オーケストレーション モードでは、最大 1,000 個の VM をスケール セットに追加できます。

  • 可用性セットまたは均一オーケストレーションと比較すると、フレキシブル オーケストレーションの可用性はどのくらいですか?

    可用性属性 フレキシブル オーケストレーション 均一オーケストレーション 可用性セット
    可用性ゾーンをまたいだデプロイ はい はい いいえ
    リージョン内における障害ドメインの可用性の保証 はい。最大 1,000 個のインスタンスをリージョン内の最大 3 つの障害ドメインに分散できます。 障害ドメインの最大数はリージョンによって異なります はい。最大 100 個のインスタンス はい。最大 200 個のインスタンス
    配置グループ フレキシブル モードでは常に複数の配置グループ (singlePlacementGroup = false) を使用します 単一の配置グループまたは複数の配置グループを選択できます 該当なし
    更新ドメイン なし。メンテナンスまたはホストの更新は障害ドメインごとに行われます 最大 5 つの更新ドメイン 最大 20 個の更新ドメイン
  • 障害ドメインの可用性が保証されるインスタンスの絶対最大数はいくつですか。

    機能 フレキシブル オーケストレーションによるサポート対象 均一オーケストレーション (一般提供) によるサポート対象 AvSets (一般提供) によるサポート対象
    最大インスタンス数 (FD 可用性の保証あり) 1000 3000 200

次のステップ