Azure での SQL Server 仮想マシンのライセンス モデルを変更する方法How to change the licensing model for a SQL Server virtual machine in Azure

このアーティクルでは、新しい SQL VM リソース プロバイダーである、Microsoft.SqlVirtualMachine を使用して Azure での SQL Server 仮想マシンのライセンス モデルを変更する方法を説明します。This article describes how to change the licensing model for a SQL Server virtual machine in Azure using the new SQL VM resource provider - Microsoft.SqlVirtualMachine. SQL Server をホストする仮想マシン (VM) には、従量課金制とライセンス持ち込み (BYOL) の 2 種類のライセンス モデルがあります。There are two licensing models for a virtual machine (VM) hosting SQL Server - pay-as-you-go, and bring your own license (BYOL). そして現在は、Azure portal、Azure CLI、または PowerShell を使用して、SQL Server VM で使用するライセンス モデルを変更することができます。And now, using either the Azure portal, Azure CLI, or PowerShell you can modify which licensing model your SQL Server VM uses.

従量課金制 (PAYG) モデルでは、Azure VM を実行する秒単位のコストに SQL Server ライセンスのコストが含まれます。The pay-as-you-go (PAYG) model means that the per-second cost of running the Azure VM includes the cost of the SQL Server license.

ライセンス持ち込み (BYOL) モデルは Azure ハイブリッド特典 (AHB) とも呼ばれ、ユーザーは SQL Server を実行する VM で自分の SQL Server ライセンスを使用できます。The bring-your-own-license (BYOL) model is also known as the Azure Hybrid Benefit (AHB), and it allows you to use your own SQL Server license with a VM running SQL Server. 価格の詳細については、SQL Server VM 料金ガイドをご参照ください。For more information about prices, see SQL Server VM pricing guide.

2 種類のライセンスモデル間の切り替えによるダウンタイムおよび VM の再起動は、追加コストは発生せず (実際には、AHB の有効化によるコスト削減)、ただちに有効となりますSwitching between the two license models incurs no downtime, does not restart the VM, adds no additional cost (in fact, activating AHB reduces cost) and is effective immediately.

解説Remarks

  • CSP のお客様は、最初に従量課金制の VM をデプロイした後、それをライセンス持ち込みに変換することによって、Azure ハイブリッド特典を利用できます。CSP customers can utilize the AHB benefit by first deploying a pay-as-you-go VM and then converting it to bring-your-own-license.
  • カスタム SQL Server VM イメージをリソース プロバイダーに登録するとき、ライセンスの種類を 'AHUB' として指定します。When registering a custom SQL Server VM image with the resource provider, specify the license type as = 'AHUB'. ライセンスの種類を空白のままにするか、'PAYG' を指定すると、登録は失敗します。Leaving the license type as blank, or specifying 'PAYG' will cause the registration to fail.
  • SQL Server VM リソースを削除する場合は、イメージのハード コーディングされたライセンス設定に戻ります。If you drop your SQL Server VM resource, you will go back to the hard-coded license setting of the image.
  • ライセンス モデルを変更する機能は、SQL VM リソース プロバイダーの機能です。The ability to change the licensing model is a feature of the SQL VM resource provider. Azure portal を介してマーケットプレース イメージをデプロイすると、SQL Server VM がリソース プロバイダーに自動的に登録されます。Deploying a marketplace image through the Azure portal automatically registers a SQL Server VM with the resource provider. ただし、SQL Server を自分でインストールするお客様は、手動で SQL Server VM を登録する必要があります。However, customers who are self-installing SQL Server will need to manually register their SQL Server VM.

制限事項Limitations

  • 現在、ライセンス モデルの変換は、従量課金制の SQL Server VM イメージで始めた場合にのみ可能です。The ability to convert the licensing model is currently only available when starting with a pay-as-you-go SQL Server VM image. ポータルからライセンス持ち込みイメージで始めた場合は、そのイメージを従量課金制に変換することはできません。If you start with a bring-your-own-license image from the portal, you will not be able to convert that image to pay-as-you-go.
  • ライセンス モデルの変更は、Resource Manager モデルを使用してデプロイされた仮想マシンについてのみサポートされます。Changing the licensing model is only supported for virtual machines deployed using the Resource Manager model. クラシック モデルを使用してデプロイされた VM はサポートされません。VMs deployed using the classic model are not supported.
  • ライセンス モデルの変更は、パブリック クラウドのインストールでのみ有効です。Changing the licensing model is only enabled for Public Cloud installations.
  • ライセンス モデルの変更は、1 つの NIC (ネットワーク インターフェイス) を持つ仮想マシンでのみサポートされます。Changing the licensing model is supported only on virtual machines that have a single NIC (network interface). 複数の NIC を持つ仮想マシンでは、手順を実行する前に、まず (Azure portal を使用して) NIC の 1 つを削除する必要があります。On virtual machines that have more than one NIC, you should first remove one of the NICs (by using the Azure portal) before you attempt the procedure. そうしないと、次のようなエラーが発生します。The virtual machine '\<vmname\>' has more than one NIC associated. ライセンス モードを変更した後に NIC を再び VM に追加できる可能性はありますが、SQL 構成ブレードを介して実行された操作は、自動パッチや自動バックアップと同様に、もうサポートされていると見なされなくなります。Otherwise, you will run into an error similar to the following: The virtual machine '\<vmname\>' has more than one NIC associated. Although you might be able to add the NIC back to the VM after you change the licensing mode, operations done through the SQL configuration blade, like automatic patching and backup, will no longer be considered supported.

前提条件Prerequisites

SQL VM リソース プロバイダーを利用するには、SQL IaaS 拡張機能が必要です。The use of the SQL VM resource provider requires the SQL IaaS extension. そのため、SQL VM リソース プロバイダーの利用を続けるには、以下が必要です。As such, to proceed with utilizing the SQL VM resource provider, you need the following:

Azure Portal の場合With the Azure portal

ライセンス モデルをポータルから直接変更できます。You can modify the licensing model directly from the portal.

  1. Azure portal 内で SQL Server VM に移動します。Navigate to your SQL Server VM within the Azure portal.
  2. [設定] ウィンドウで、[SQL Server の構成] を選択します。Select SQL Server configuration in the Settings pane.
  3. [SQL Server ライセンス] ウィンドウで [編集] を選択して、ライセンスを変更します。Select Edit in the SQL Server License pane to modify the license.

ポータルの AHB

注意

このオプションは、ライセンス持ち込みイメージには使用できません。This option is not available for bring-your-own-license images.

Azure CLI の場合With Azure CLI

Azure CLI を使用して、ライセンス モデルを変更することができます。You can use Azure CLI to change your licensing model.

次のコード スニペットでは、従量課金制ライセンス モデルを BYOL (Azure ハイブリッド特典の使用) に切り替えます。The following code snippet switches your pay-as-you-go license model to BYOL (or using Azure Hybrid Benefit):

# Switch your SQL Server VM license from pay-as-you-go to bring-your-own
# example: az sql vm update -n AHBTest -g AHBTest --license-type AHUB

az sql vm update -n <VMName> -g <ResourceGroupName> --license-type AHUB

次のコード スニペットは、BYOL モデルを従量課金制に切り替えます。The following code snippet switches your bring-your-own-license model to pay-as-you-go:

# Switch your SQL Server VM license from bring-your-own to pay-as-you-go
# example: az sql vm update -n AHBTest -g AHBTest --license-type PAYG

az sql vm update -n <VMName> -g <ResourceGroupName> --license-type PAYG

PowerShell の場合With PowerShell

PowerShell を使用してライセンス モデルを変更できます。You can use PowerShell to change your licensing model.

次のコード スニペットでは、従量課金制ライセンス モデルを BYOL (Azure ハイブリッド特典の使用) に切り替えます。The following code snippet switches your pay-as-you-go license model to BYOL (or using Azure Hybrid Benefit):

# Switch your SQL Server VM license from pay-as-you-go to bring-your-own
#example: $SqlVm = Get-AzResource -ResourceType Microsoft.SqlVirtualMachine/SqlVirtualMachines -ResourceGroupName AHBTest -ResourceName AHBTest
$SqlVm = Get-AzResource -ResourceType Microsoft.SqlVirtualMachine/SqlVirtualMachines -ResourceGroupName <resource_group_name> -ResourceName <VM_name>
$SqlVm.Properties.sqlServerLicenseType="AHUB"
<# the following code snippet is only necessary if using Azure Powershell version > 4
$SqlVm.Kind= "LicenseChange"
$SqlVm.Plan= [Microsoft.Azure.Management.ResourceManager.Models.Plan]::new()
$SqlVm.Sku= [Microsoft.Azure.Management.ResourceManager.Models.Sku]::new() #>
$SqlVm | Set-AzResource -Force 

次のコード スニペットでは、BYOL モデルを従量課金制に切り替えます。The following code snippet switches your BYOL model to pay-as-you-go:

# Switch your SQL Server VM license from bring-your-own to pay-as-you-go
#example: $SqlVm = Get-AzResource -ResourceType Microsoft.SqlVirtualMachine/SqlVirtualMachines -ResourceGroupName AHBTest -ResourceName AHBTest
$SqlVm = Get-AzResource -ResourceType Microsoft.SqlVirtualMachine/SqlVirtualMachines -ResourceGroupName <resource_group_name> -ResourceName <VM_name>
$SqlVm.Properties.sqlServerLicenseType="PAYG"
<# the following code snippet is only necessary if using Azure Powershell version > 4
$SqlVm.Kind= "LicenseChange"
$SqlVm.Plan= [Microsoft.Azure.Management.ResourceManager.Models.Plan]::new()
$SqlVm.Sku= [Microsoft.Azure.Management.ResourceManager.Models.Sku]::new() #>
$SqlVm | Set-AzResource -Force 

SQL Server VM を SQL VM リソース プロバイダーに登録するRegister SQL Server VM with the SQL VM resource provider

ある特定の状況で、SQL Server VM を SQL VM リソース プロバイダーに手動で登録する必要がある場合があります。In certain situations, you may need to manually register your SQL Server VM with the SQL VM resource provider. これを行うには、リソース プロバイダーをサブスクリプションに手動で登録する必要がある場合もあります。To do so, you may also need to manually register the resource provider with your subscription.

SQL VM リソース プロバイダーをサブスクリプションに登録するRegister SQL VM resource provider with subscription

自分の SQL Server VM を SQL リソース プロバイダーに登録するには、リソース プロバイダーを自分のサブスクリプションに登録する必要があります。To register your SQL Server VM with the SQL resource provider, you must register the resource provider to your subscription. これは、Azure portal または Azure CLI を使用して行うことができます。You can do so with the Azure portal, or Azure CLI.

Azure Portal の場合With the Azure portal

以下の手順では、Azure portal を使用して SQL リソース プロバイダーを Azure サブスクリプションに登録します。The following steps will register the SQL resource provider to your Azure subscription using the Azure portal.

  1. Azure portal を開き、すべてのサービスに移動します。Open the Azure portal and navigate to All Services.

  2. サブスクリプションに移動し、関心のあるサブスクリプションを選択します。Navigate to Subscriptions and select the subscription of interest.

  3. [サブスクリプション] ブレードで、[リソース プロバイダー] に移動します。In the Subscriptions blade, navigate to Resource providers.

  4. フィルター内にsqlと入力し、SQL 関連のリソース プロバイダーを表示します。Type sql in the filter to bring up the SQL-related resource providers.

  5. 目的となるアクションに応じて、登録再登録、または登録解除のいずれかを Microsoft.SqlVirtualMachine プロバイダーで選択します。Select either Register, Re-register, or Unregister for the Microsoft.SqlVirtualMachine provider depending on your desired action.

    プロバイダーの変更

Azure CLI の場合With Azure CLI

次のコード スニペットは、SQL VM リソース プロバイダーを Azure サブスクリプションに登録します。The following code snippet will register the SQL VM resource provider to your Azure subscription.

# Register the new SQL resource provider to your subscription 
az provider register --namespace Microsoft.SqlVirtualMachine 

PowerShell の場合With PowerShell

次のコード スニペットでは、SQL リソース プロバイダーが自分の Azure サブスクリプションに登録されます。The following code snippet will register the SQL resource provider to your Azure subscription.

# Register the new SQL resource provider to your subscription
Register-AzResourceProvider -ProviderNamespace Microsoft.SqlVirtualMachine

SQL Server VM を SQL リソース プロバイダーに登録するRegister SQL Server VM with SQL resource provider

SQL リソース プロバイダーがサブスクリプションに登録されたら、Azure CLI を使用して SQL Server VM をリソース プロバイダーに登録することができます。Once the SQL VM resource provider has been registered to your subscription, you can then register your SQL Server VM with the resource provider using Azure CLI.

Azure CLI の場合With Azure CLI

Azure CLI で次のコード スニペットを使用して、SQL Server VM を登録します。Register SQL Server VM using Azure CLI with the following code snippet:

# Register your existing SQL Server VM with the new resource provider
az sql vm create -n <VMName> -g <ResourceGroupName> -l <VMLocation>

PowerShell の場合With PowerShell

PowerShell で次のコード スニペットを使用して、SQL Server VM を登録します。Register SQL Server VM using PowerShell with the following code snippet:

# Register your existing SQL Server VM with the new resource provider
# example: $vm=Get-AzVm -ResourceGroupName AHBTest -Name AHBTest
$vm=Get-AzVm -ResourceGroupName <ResourceGroupName> -Name <VMName>
New-AzResource -ResourceName $vm.Name -ResourceGroupName $vm.ResourceGroupName -Location $vm.Location -ResourceType Microsoft.SqlVirtualMachine/sqlVirtualMachines -Proper

既知のエラーKnown errors

SQL IaaS 拡張機能が仮想マシンにインストールされていないSql IaaS Extension is not installed on Virtual Machine

SQL IaaS 拡張機能は、SQL Server VM を SQL VM リソース プロバイダーに登録するために必要な前提条件です。The SQL IaaS extension is a necessary prerequisite for registering your SQL Server VM with the SQL VM resource provider. SQL IaaS 拡張機能をインストールする前に SQL Server VM を登録しようとすると、次のエラーが発生します。If you attempt to register your SQL Server VM before installing the SQL IaaS extension, you will encounter the following error:

Sql IaaS Extension is not installed on Virtual Machine: '{0}'. Please make sure it is installed and in running state and try again later.

この問題を解決するには、SQL Server VM の登録を試みる前に、SQL IaaS 拡張機能をインストールします。To resolve this issue, install the SQL IaaS extension before attempting to register your SQL Server VM.

注意

SQL IaaS 拡張機能をインストールすると SQL Server サービスが再起動されるため、メンテナンス期間中にのみ実行する必要があります。Installing the SQL IaaS extension will restart the SQL Server service and should only be done during a maintenance window. 詳細については、SQL IaaS 拡張機能のインストールに関するページを参照してください。For more information, see SQL IaaS Extension installation.

リソース グループ '' にリソース 'Microsoft.SqlVirtualMachine/SqlVirtualMachines/' が見つかりませんでした。The Resource 'Microsoft.SqlVirtualMachine/SqlVirtualMachines/' under resource group '' was not found. このオブジェクトにプロパティ 'sqlServerLicenseType' が見つかりません。The property 'sqlServerLicenseType' cannot be found on this object. プロパティが存在し、設定可能であることを確認してください。Verify that the property exists and can be set.

このエラーは、SQL Server VM で SQL リソース プロバイダーに登録されていないライセンス モデルを変更しようとしたときに発生します。This error occurs when attempting to change the licensing model on a SQL Server VM that has not been registered with the SQL resource provider. リソース プロバイダーをサブスクリプションに登録した後、SQL Server VM を SQL リソース プロバイダーに登録する必要があります。You'll need to register the resource provider to your subscription, and then register your SQL Server VM with the SQL resource provider.

パラメーター 'Sku' の引数を検証できないCannot validate argument on parameter 'Sku'

4.0 より後の Azure PowerShell を使用している場合に、SQL Server VM のライセンス モデルを変更しようとすると、このエラーが発生する可能性があります。Set-AzResource :パラメーター 'Sku' の引数を検証できません。You may encounter this error when attempting to change your SQL Server VM licensing model when using Azure PowerShell > 4.0: Set-AzResource : Cannot validate argument on parameter 'Sku'. この引数は null か空です。The argument is null or empty. null または空でない引数を指定して、コマンドを再度実行してください。Provide an argument that is not null or empty, and then try the command again. このエラーを解決するには、ライセンス モデルを切り替えるときに、前に説明した PowerShell コード スニペットの以下の行のコメントを解除します。To resolve this error, uncomment these lines in the previously mentioned PowerShell code snippet when switching your licensing model:

# the following code snippet is necessary if using Azure Powershell version > 4
$SqlVm.Kind= "LicenseChange"
$SqlVm.Plan= [Microsoft.Azure.Management.ResourceManager.Models.Plan]::new()
$SqlVm.Sku= [Microsoft.Azure.Management.ResourceManager.Models.Sku]::new()

Azure PowerShell のバージョンを確認するには、次のコードを使用します。Use the following code to verify your Azure PowerShell version:

Get-Module -ListAvailable -Name Azure -Refresh

次の手順Next steps

詳細については、次の記事を参照してください。For more information, see the following articles: