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 およびコマンドを使用して、単一インスタンスのモデルとインスタンスのビューを取得する。
アプリケーションの正常性を監視する
アプリケーションの稼働状況の監視では、アプリケーションから Azure にハートビートを提供し、自分のアプリケーションが正常であるのか、それとも異常であるのかを判断できます。 Azure による異常な VM インスタンスの自動置換を利用できます。 フレキシブル オーケストレーションを使っている場合は、アプリケーションの監視を構成するときに、アプリケーション正常性拡張機能をインストールして構成する必要があります。 均一スケール セット インスタンスの場合は、アプリケーション正常性拡張機能または正常性プローブを使用できます。
スケール セット VM API の変更の一覧表示
Virtual Machine Scale Sets では、スケール セットに属するインスタンスを一覧表示できます。 フレキシブル オーケストレーションでは、Virtual Machine Scale Sets VM のリスト コマンドを使用して、スケール セット VM の ID を一覧表示できます。 その後、Virtual Machine Scale Sets VM の取得コマンドを呼び出して、スケール セットでの VM インスタンスの動作について詳細を取得できます。 スケール セット内の多数の VM の詳細を取得するには、Azure Resource Graph または標準の LIST VM API とコマンドを使用します。 標準の GET VM API とコマンドを使用して、1 つのインスタンスに関する情報を取得します。
ブート診断データの取得
標準の 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) |
必要な最小 API バージョン | 2021-03-01 | 2015-06-01 | 2015-06-01 |
最大インスタンス数 (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 はサポートされていません |
ユーザーが管理するキーによるディスク サーバー側暗号化 | はい | イエス | はい |
書き込みアクセラレータ | はい | イエス | はい |
近接配置グループ | 1 つの可用性ゾーンを使用しているか、または何も使用していない場合、はい。 デプロイ後に変更することはできません。 近接配置グループのドキュメントをお読みください | 1 つの可用性ゾーンを使用しているか、または何も使用していない場合、はい。 デプロイ後にすべてのインスタンスを停止して変更できます。 近接配置グループのドキュメントをお読みください | はい |
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 とディスクの自動削除 | はい | はい | いいえ |
アップグレード ポリシー (仮想マシン スケール セット) | 自動、ローリング、手動 | 自動、ローリング、手動 | 該当なし |
自動 OS 更新 (仮想マシン スケール セット) | いいえ | イエス | 該当なし |
ゲスト内セキュリティ パッチ | はい。VM ゲストの自動パッチ適用に関する記事を参照 | いいえ | Yes |
終了通知 (仮想マシン スケール セット) | はい。終了通知のドキュメントをお読みください | はい。終了通知のドキュメントをお読みください | なし |
アプリケーション正常性の監視 | アプリケーション正常性拡張機能 | アプリケーション正常性拡張機能または Azure ロード バランサー プローブ | アプリケーション正常性拡張機能 |
インスタンスの修復 (仮想マシン スケール セット) | はい。インスタンスの修復のドキュメントをお読みください | はい。インスタンスの修復のドキュメントをお読みください | なし |
インスタンス保護 | はい | はい | いいえ |
スケールイン ポリシー | はい | はい | いいえ |
VMSS インスタンス ビューの取得 | いいえ | イエス | なし |
VM バッチ操作 (すべて開始、すべて停止、サブセットの削除など) | はい | はい | いいえ |
高可用性
機能 | スケール セットのフレキシブル オーケストレーションによるサポート対象 | スケール セットの均一オーケストレーションによるサポート対象 | 可用性セットによるサポート対象 |
---|---|---|---|
可用性 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 つの配置グループ -
null
に設定すると、自動で正しい値が選択されます - Ultra ディスク構成:
diskIOPSReadWrite
、diskMBpsReadWrite
- 仮想マシン スケール セットのオーバープロビジョニング
- イメージベースの OS の自動アップグレード
- SLB 正常性プローブを使用したアプリケーションの正常性 - インスタンスでアプリケーション正常性拡張機能を使用してください
- 仮想マシン スケール セットのアップグレード ポリシー - null または空にする必要があります
- 非管理対象ディスク
- Basic Load Balancer
- Standard Load Balancer NAT プール経由のポートの転送 - NAT 規則を構成できます
- システム割り当てマネージド ID - 代わりにユーザー割り当てマネージド ID を使用します
フレキシブル オーケストレーション モードの開始
登録して、Virtual Machine Scale Sets のフレキシブル オーケストレーション モードを使い始めます。
よく寄せられる質問
フレキシブル オーケストレーションでは、どのくらいのスケーリングがサポートされますか?
フレキシブル オーケストレーション モードでは、最大 1,000 個の VM をスケール セットに追加できます。
可用性セットまたは均一オーケストレーションと比較すると、フレキシブル オーケストレーションの可用性はどのくらいですか?
可用性属性 フレキシブル オーケストレーション 均一オーケストレーション 可用性セット 可用性ゾーンをまたいだデプロイ はい はい いいえ リージョン内における障害ドメインの可用性の保証 はい。最大 1,000 個のインスタンスをリージョン内の最大 3 つの障害ドメインに分散できます。 障害ドメインの最大数はリージョンによって異なります はい。最大 100 個のインスタンス はい。最大 200 個のインスタンス 配置グループ 該当なし 単一の配置グループまたは複数の配置グループを選択できます 該当なし 更新ドメイン なし。メンテナンスまたはホストの更新は障害ドメインごとに行われます 最大 5 つの更新ドメイン 最大 20 個の更新ドメイン 障害ドメインの可用性が保証されるインスタンスの絶対最大数はいくつですか。
機能 フレキシブル オーケストレーションによるサポート対象 均一オーケストレーション (一般提供) によるサポート対象 AvSets (一般提供) によるサポート対象 最大インスタンス数 (FD 可用性の保証あり) 1000 3000 200