重要
現在、別のテナントによって共有されたイメージから、フレキシブル オーケストレーション モードを使用して仮想マシン スケール セットを作成することはできません。
Azure Compute Gallery に格納されている特殊化されたイメージ バージョンからスケール セットを作成します。 一般化されたイメージ バージョンを使用してスケール セットを作成する場合は、「一般化されたイメージからスケール セットを作成する」を参照してください。
重要
特殊化されたイメージから新しいスケール セットを作成した場合、VM では、元の VM のコンピューター名が保持されます。 CMID などの他のコンピューター固有の情報も保持されます。 この重複する情報が原因で問題が発生する可能性があります。 特殊化されたイメージを使用する場合は、アプリケーションが依存するコンピューター固有の情報の種類を把握しておいてください。
必要に応じて、これらの例のリソース名を置き換えてください。
ギャラリーからスケール セットを作成する
Azure Compute Gallery に格納されているイメージからスケール セットを作成する方法は、Marketplace イメージを使用してスケール セットを作成するときと同じですが、イメージを選択する際に [すべてのイメージを表示] を選択する必要があります。
[イメージの選択] ページが開きます。 目的のイメージがご自分のギャラリーに存在する場合は [マイ イメージ] を、他のだれかのギャラリーからイメージが共有されている場合は [共有イメージ] を選択します。
CLI をローカルにインストールして使用する場合、このチュートリアルでは、Azure CLI バージョン 2.35.0 以降を実行している必要があります。 バージョンを確認するには、az --version を実行します。 インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。
az sig image-definition list を使用してギャラリー内のイメージ定義を一覧表示すると、定義の名前と ID を確認できます。
resourceGroup=myGalleryRG
gallery=myGallery
az sig image-definition list \
--resource-group $resourceGroup \
--gallery-name $gallery \
--query "[].[name, id]" \
--output tsv
イメージが特殊化されたイメージであることを示す --specialized パラメーターを使用して az vmss create でスケール セットを作成し ます。
--image にイメージ定義 ID を使用して、使用可能なイメージの最新バージョンからスケール セット インスタンスを作成します。 また、--image にイメージ バージョン ID を指定して、特定のバージョンからスケール セット インスタンスを作成することもできます。 特定のイメージ バージョンを使用すると、その特定のイメージ バージョンが使用できない場合 (リージョンから削除されるなどして)、オートメーションが失敗する可能性があることに注意してください。 特定のイメージ バージョンが必要な場合を除き、新しい VM の作成にはイメージ定義 ID の使用をお勧めします。
この例では、最新バージョンの myImageDefinition イメージからインスタンスを作成しています。
az group create --name myResourceGroup --location eastus
az vmss create \
--resource-group myResourceGroup \
--name myScaleSet \
--image "/subscriptions/<Subscription ID>/resourceGroups/myGalleryRG/providers/Microsoft.Compute/galleries/myGallery/images/myImageDefinition" \
--specialized
この例では、イメージ定義 ID を使用して、新しい VM で最新バージョンのイメージが使用されるようにしています。 -ImageReferenceId にイメージ バージョン ID を使用して、特定のバージョンを使用することも可能です。 たとえば、イメージ バージョン 1.0.0 を使用するには、次のように入力します: -ImageReferenceId "/subscriptions/<subscription ID where the gallery is located>/resourceGroups/myGalleryRG/providers/Microsoft.Compute/galleries/myGallery/images/myImageDefinition/versions/1.0.0"。
特定のイメージ バージョンを使用すると、その特定のイメージ バージョンが使用できない場合 (リージョンから削除されるなどして)、オートメーションが失敗する可能性があることに注意してください。 特定のイメージ バージョンが必要な場合を除き、新しい VM の作成にはイメージ定義 ID の使用をお勧めします。
次の例では、SouthCentralUS という場所の myVMSSRG リソース グループに myScaleSet という名前のスケール セットを作成します。 スケール セットは、myGalleryRG リソース グループの myGallery イメージ ギャラリーにある myImageDefinition イメージから作成されます。 メッセージが表示されたら、スケール セット内の VM インスタンスに使用する自分の管理者資格情報を設定してください。
# Get the image definition
$imageDefinition = Get-AzGalleryImageDefinition `
-GalleryName myGallery `
-ResourceGroupName myGalleryRG `
-Name myImageDefinition
# Define variables for the scale set
$resourceGroupName = "myVMSSRG"
$scaleSetName = "myScaleSet"
$location = "South Central US"
# Create a resource group
New-AzResourceGroup -ResourceGroupName $resourceGroupName -Location $location
# Create a networking pieces
$subnet = New-AzVirtualNetworkSubnetConfig `
-Name "mySubnet" `
-AddressPrefix 10.0.0.0/24
$vnet = New-AzVirtualNetwork `
-ResourceGroupName $resourceGroupName `
-Name "myVnet" `
-Location $location `
-AddressPrefix 10.0.0.0/16 `
-Subnet $subnet
$publicIP = New-AzPublicIpAddress `
-ResourceGroupName $resourceGroupName `
-Location $location `
-AllocationMethod Static `
-Name "myPublicIP"
$frontendIP = New-AzLoadBalancerFrontendIpConfig `
-Name "myFrontEndPool" `
-PublicIpAddress $publicIP
$backendPool = New-AzLoadBalancerBackendAddressPoolConfig -Name "myBackEndPool"
$inboundNATPool = New-AzLoadBalancerInboundNatPoolConfig `
-Name "myRDPRule" `
-FrontendIpConfigurationId $frontendIP.Id `
-Protocol TCP `
-FrontendPortRangeStart 50001 `
-FrontendPortRangeEnd 50010 `
-BackendPort 3389
# Create the load balancer and health probe
$lb = New-AzLoadBalancer `
-ResourceGroupName $resourceGroupName `
-Name "myLoadBalancer" `
-Location $location `
-FrontendIpConfiguration $frontendIP `
-BackendAddressPool $backendPool `
-InboundNatPool $inboundNATPool
Add-AzLoadBalancerProbeConfig -Name "myHealthProbe" `
-LoadBalancer $lb `
-Protocol TCP `
-Port 80 `
-IntervalInSeconds 15 `
-ProbeCount 2
Add-AzLoadBalancerRuleConfig `
-Name "myLoadBalancerRule" `
-LoadBalancer $lb `
-FrontendIpConfiguration $lb.FrontendIpConfigurations[0] `
-BackendAddressPool $lb.BackendAddressPools[0] `
-Protocol TCP `
-FrontendPort 80 `
-BackendPort 80 `
-Probe (Get-AzLoadBalancerProbeConfig -Name "myHealthProbe" -LoadBalancer $lb)
Set-AzLoadBalancer -LoadBalancer $lb
# Create IP address configurations
$ipConfig = New-AzVmssIpConfig `
-Name "myIPConfig" `
-LoadBalancerBackendAddressPoolsId $lb.BackendAddressPools[0].Id `
-LoadBalancerInboundNatPoolsId $inboundNATPool.Id `
-SubnetId $vnet.Subnets[0].Id
# Create a configuration
$vmssConfig = New-AzVmssConfig `
-Location $location `
-SkuCapacity 2 `
-SkuName "Standard_DS2" `
-UpgradePolicyMode "Automatic"
# Reference the image version
Set-AzVmssStorageProfile $vmssConfig `
-OsDiskCreateOption "FromImage" `
-ImageReferenceId $imageDefinition.Id
# Complete the configuration
Add-AzVmssNetworkInterfaceConfiguration `
-VirtualMachineScaleSet $vmssConfig `
-Name "network-config" `
-Primary $true `
-IPConfiguration $ipConfig
# Create the scale set
New-AzVmss `
-ResourceGroupName $resourceGroupName `
-Name $scaleSetName `
-VirtualMachineScaleSet $vmssConfig
すべてのスケール セットのリソースと VM を作成および構成するのに数分かかります。
エンド ユーザーとして、コミュニティ ギャラリーのパブリック名を取得するにはポータルを使用する必要があります。 [仮想マシン]>[作成]>[Azure 仮想マシン]>[イメージ]>[すべてのイメージを表示]>[コミュニティ イメージ]>[パブリック イメージ名] に移動します。
必要に応じて、これらの例のリソース名を置き換えてください。
CLI をローカルにインストールして使用する場合、コミュニティ ギャラリーでは、Azure CLI バージョン 2.4.0 以降を実行している必要があります。 バージョンを確認するには、az --version を実行します。 インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。
コミュニティ ギャラリーに共有されているイメージを使用して VM を作成するには、--image に指定するイメージに、次の形式の一意の ID を使用します。
/CommunityGalleries/<community gallery name>/Images/<image name>/Versions/latest
az sig image-definition list-community を使用して、コミュニティ ギャラリーで使用可能なすべてのイメージ定義を一覧表示します。 この例では、"米国西部" の ContosoImage ギャラリー内のすべてのイメージと、VM、OS、OS の状態を作成するために必要な一意の ID を一覧表示します。
az sig image-definition list-community \
--public-gallery-name "ContosoImages-1a2b3c4d-1234-abcd-1234-1a2b3c4d5e6f" \
--location westus \
--query [*]."{Name:name,ID:uniqueId,OS:osType,State:osState}" -o table
コミュニティ ギャラリー内のイメージの一意の ID を --image パラメーターに指定してスケール セットを作成します。 この例では、Flexible スケール セットを作成しています。
az group create --name myResourceGroup --location eastus
imgDef="/CommunityGalleries/ContosoImages-1a2b3c4d-1234-abcd-1234-1a2b3c4d5e6f>/Images/myLinuxImage/Versions/latest"
az vmss create \
--resource-group myResourceGroup \
--name myScaleSet \
--image $imgDef \
--orchestration-mode Flexible
コミュニティ イメージを使用する際は、法的条項への同意を求められます。 ここに示したのは、そのメッセージの例です。
To create the scale set from community gallery image, you must accept the license agreement and privacy statement: http://contoso.com. (If you want to accept the legal terms by default, please use the option '--accept-term' when creating VM/VMSS) (Y/n):
コミュニティ ギャラリー内のイメージからスケール セットを作成する方法は、Marketplace イメージを使用してスケール セットを作成するときと基本的には同じですが、イメージを選択する際に [すべてのイメージを表示] を選択する必要があります。
[イメージの選択] ページが開きます。 [Community images (PREVIEW)] (コミュニティ イメージ (プレビュー)) を選択すると、コミュニティ ギャラリーで利用できるイメージが一覧表示されます。
次のステップ
Azure Image Builder (プレビュー) は、イメージ バージョンの作成の自動化に役立ちます。イメージ バージョンの更新や、既存のイメージ バージョンからの新しいイメージ バージョンの作成に使用することさえできます。
Azure Compute Gallery リソースは、テンプレートを使用して作成することもできます。 いくつかの Azure クイック スタート テンプレートが用意されています。