トレーニング
モジュール
Virtual Machine Scale Sets を使用してスケーラブルなアプリケーションを構築する - Training
Virtual Machine Scale Sets のコストを最小限に抑えながら、負荷の変化に合わせてアプリケーションを自動的に調整できるようにします。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
注意
このドキュメントでは、均一オーケストレーション モードで実行される Virtual Machine Scale Sets について説明します。 新しいワークロードにはフレキシブル オーケストレーションを使用することをお勧めします。 詳細については、「Azure の仮想マシン スケール セットのオーケストレーション モード」を参照してください。
最大 1,000 個の VM に対応できる Azure Virtual Machine Scale Sets を作成できるようになりました。 このドキュメントの "大規模な Virtual Machine Scale Set" とは、100 個を超える VM にスケーリングできるスケール セットとして定義されています。 この機能はスケール セット プロパティで設定されています (singlePlacementGroup=False)。
大規模なスケール セットのある部分 (負荷分散や障害ドメインなど) の動作は、標準的なスケール セットとは異なります。 このドキュメントでは、大規模なスケール セットの特性を説明するほか、アプリケーションでこれらをうまく使用するために知っておくべきことについても説明します。
クラウド インフラストラクチャの大規模なデプロイでは、一般的な手法として一連の "スケール ユニット" を作成します。たとえば、複数の VNET やストレージ アカウントに複数の VM のスケール セットを作成します。 この手法では、単一の VM に比べて管理が容易になります。また、複数のスケール ユニットは、多くのアプリケーション、特に、他のスタック可能なコンポーネント (複数の仮想ネットワークやエンドポイントなど) を必要とするアプリケーションに役立ちます。 ただし、アプリケーションに 1 つの大規模クラスターが必要な場合は、最大 1,000 個の VM で構成される 1 つのスケール セットをデプロイすることがより簡単になります。 シナリオの例には、一元化されたビッグ データのデプロイや、ワーカー ノードの大規模なプールのシンプルな管理を必要とするコンピューティング グリッドが含まれます。 大規模なスケール セットを Virtual Machine Scale Set の接続されたデータ ディスクと組み合わせて使用すると、数千の vCPU と数ペタバイトのストレージで構成されるスケーラブルなインフラストラクチャを 1 回の操作でデプロイできます。
"大規模な" スケール セットを特別なものにするのは、VM の数ではなく、それに含まれる "配置グループ" の数です。 配置グループは、Azure 可用性セットに似た構造で、独自の障害ドメインとアップグレード ドメインが備わっています。 既定では、スケール セットは、最大サイズが 100 個の VM である 1 つの配置グループで構成されます。 singlePlacementGroup というスケール セット プロパティが false に設定されている場合、そのスケール セットは、複数の配置グループで構成することができ、0 ~ 1,000 個の VM が含まれます。 既定値の true に設定されている場合、スケール セットは 1 つの配置グループで構成され、0 ~ 100 個の VM が含まれます。
アプリケーションで大規模なスケール セットを効率的に使用できるかどうかを判断するには、次の要件を検討してください。
Azure portal でスケール セットを作成する場合は、最大で 1,000 の "インスタンス数" の値を指定します。 インスタンスが 100 を超える場合は、 [インスタンス数が 100 を超えるスケールを有効にする] が [はい] に設定されます。その場合、複数の配置グループへのスケーリングが許可されます。
大きな仮想マシン スケール セットは、Azure CLI の az vmss create コマンドを使って作成できます。 このコマンドを実行すると、instance-count 引数に基づいて、サブネット サイズなど、インテリジェントな既定値が設定されます。
az group create -l southcentralus -n biginfra
az vmss create -g biginfra -n bigvmss --image Ubuntu2204 --instance-count 1000
vmss create コマンドでは、構成値を指定しない場合に既定で特定の構成値が使用されます。 オーバーライドできる使用可能なオプションを表示するには、次のように入力します。
az vmss create --help
Azure Resource Manager テンプレートを構成して大規模なスケール セットを作成している場合、このテンプレートによって Azure Managed Disks に基づいたスケール セットが作成されることを確認してください。 Microsoft.Compute/virtualMachineScaleSets リソースの properties セクションで、singlePlacementGroup プロパティを false に設定できます。 次の JSON フラグメントは、スケール セット テンプレートの先頭部分を示しています。これには、VM 容量が 1,000 であることと "singlePlacementGroup" : false 設定が含まれています。
{
"type": "Microsoft.Compute/virtualMachineScaleSets",
"location": "australiaeast",
"name": "bigvmss",
"sku": {
"name": "Standard_DS1_v2",
"tier": "Standard",
"capacity": 1000
},
"properties": {
"singlePlacementGroup": false,
"upgradePolicy": {
"mode": "Automatic"
}
大規模なスケール セットのテンプレートの完全な例については、https://github.com/gbowerman/azure-myriad/blob/main/bigtest/bigbottle.json を参照してください。
既存の仮想マシン スケール セットが 100 個を超える VM にスケーリングできるようにするには、スケール セット モデルで singlePlacementGroup プロパティを false に変更する必要があります。 このプロパティの変更は、Azure リソース エクスプローラーを使用してテストできます。 既存のスケール セットを探し、 [編集] を選択して、singlePlacementGroup プロパティを変更します。 このプロパティが表示されていない場合は、スケール セットの表示に以前のバージョンの Microsoft.Compute API を使用している可能性があります。
注意
スケール セットは、1 つの配置グループのみのサポート (既定の動作) から複数の配置グループのサポートに変更できますが、その逆の変換を行うことはできません。 そのため、変換する前に、大規模なスケール セットのプロパティを理解しておく必要があります。
トレーニング
モジュール
Virtual Machine Scale Sets を使用してスケーラブルなアプリケーションを構築する - Training
Virtual Machine Scale Sets のコストを最小限に抑えながら、負荷の変化に合わせてアプリケーションを自動的に調整できるようにします。