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-per-usage, and bring your own license (BYOL). 現在では、PowerShell または Azure CLI を使用して、SQL Server VM でどちらのライセンス モデルを使用するかを変更できます。And now, using either PowerShell or Azure CLI, you can modify which licensing model your SQL Server VM uses.

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

ライセンス持ち込み (BYOL) モデルは Azure ハイブリッド特典とも呼ばれ、ユーザーは自分の SQL Server ライセンスを VM で使用して SQL Server を実行できます。The Bring-your-own-license (BYOL) model is also known as the Azure Hybrid Benefit, 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.

注意

  • 現在、ライセンス モデルの変換は、従量課金制の 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.
  • 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.

前提条件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:

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

ライセンス モデル間の切り替えを可能とする能力は、新しい SQL VM リソース プロバイダー (Microsoft.SqlVirtualMachine) によって提供される機能です。The ability to switch between licensing models is a feature provided by the new SQL VM resource provider (Microsoft.SqlVirtualMachine). 2018 年 12 月以降にデプロイされた SQL Server VM は、自動的に新しいリソース プロバイダーに登録します。SQL Server VMs deployed after December 2018 are automatically registered with the new resource provider. ただし、この日付より前にデプロイされた既存の VM は、リソース プロバイダーに手動で登録しないと、ライセンス モデルの切り替えが可能になりません。However, existing VMs that were deployed prior to this date need to be manually registered with the resource provider before they are able to switch their licensing model.

注意

SQL VM リソースを削除する場合は、イメージにハード コーディングされたライセンス設定に戻ります。If you drop your SQL VM resource, you will go back to the hard coded license setting of the image.

SQL リソース プロバイダーを自分のサブスクリプションに登録するRegister SQL resource provider with your 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. PowerShell または Azure portal でそれを行うことができます。You can do so with PowerShell, or with the Azure portal.

PowerShell の使用Using PowerShell

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

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

Azure Portal の使用Using Azure portal

以下の手順では、Azure portal を使用して SQL リソース プロバイダーを Azure サブスクリプションに登録します。The following steps will register the SQL resource provider with 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.

プロバイダーの変更

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

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

# Register your existing SQL Server VM with the new resource provider
# example: $vm=Get-AzureRmVm -ResourceGroupName AHBTest -Name AHBTest
$vm=Get-AzureRmVm -ResourceGroupName <ResourceGroupName> -Name <VMName>
New-AzureRmResource -ResourceName $vm.Name -ResourceGroupName $vm.ResourceGroupName -Location $vm.Location -ResourceType Microsoft.SqlVirtualMachine/sqlVirtualMachines -Properties @{virtualMachineResourceId=$vm.Id}

PowerShell の使用Use PowerShell

PowerShell を使用してライセンス モデルを変更できます。You can use PowerShell to change your licensing model. ライセンス モデルを切り替える前に、SQL Server VM が新しい SQL リソース プロバイダーで既に登録されていることを確認します。Be sure that your SQL Server VM has already been registered with the new SQL resource provider before switching the licensing model.

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

#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-per-usage:

#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 VM のリソース プロバイダーを使用する必要があります。To switch between licenses, you must be using the new SQL VM resource provider. SQL Server VM を新しいプロバイダーに登録する前にこれらのコマンドを実行しようとすると、次のエラーが発生する場合があります。Get-AzResource : The Resource 'Microsoft.SqlVirtualMachine/SqlVirtualMachines/AHBTest' under resource group 'AHBTest' was not found. The property 'sqlServerLicenseType' cannot be found on this object. Verify that the property exists and can be set. このエラーが表示される場合は、SQL Server VM を新しいリソース プロバイダーに登録してください。If you try to run these commands before registering your SQL Server VM with the new provider, you may encounter this error: Get-AzResource : The Resource 'Microsoft.SqlVirtualMachine/SqlVirtualMachines/AHBTest' under resource group 'AHBTest' was not found. The property 'sqlServerLicenseType' cannot be found on this object. Verify that the property exists and can be set. If you see this error, please register your SQL Server VM with the new resource provider.

Azure CLI の使用Use Azure CLI

Azure CLI を使用して、ライセンス モデルを変更することができます。You can use Azure CLI to change your licensing model. ライセンス モデルを切り替える前に、SQL Server VM が新しい SQL リソース プロバイダーで既に登録されていることを確認します。Be sure that your SQL Server VM has already been registered with the new SQL resource provider before switching the licensing model.

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

az resource update -g <resource_group_name> -n <sql_virtual_machine_name> --resource-type "Microsoft.SqlVirtualMachine/SqlVirtualMachines" --set properties.sqlServerLicenseType=AHUB
# example: az resource update -g AHBTest -n AHBTest --resource-type "Microsoft.SqlVirtualMachine/SqlVirtualMachines" --set properties.sqlServerLicenseType=AHUB

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

az resource update -g <resource_group_name> -n <sql_virtual_machine_name> --resource-type "Microsoft.SqlVirtualMachine/SqlVirtualMachines" --set properties.sqlServerLicenseType=PAYG
# example: az resource update -g AHBTest -n AHBTest --resource-type "Microsoft.SqlVirtualMachine/SqlVirtualMachines" --set properties.sqlServerLicenseType=PAYG

注意

ライセンスを切り替えるには、新しい SQL VM のリソース プロバイダーを使用する必要があります。To switch between licenses, you must be using the new SQL VM resource provider. SQL Server VM を新しいプロバイダーに登録する前にこれらのコマンドを実行しようとすると、次のエラーが発生する場合があります。The Resource 'Microsoft.SqlVirtualMachine/SqlVirtualMachines/AHBTest' under resource group 'AHBTest' was not found. このエラーが表示された場合は、SQL Server VM を新しいリソース プロバイダーに登録してください。If you try to run these commands before registering your SQL Server VM with the new provider, you may encounter this error: The Resource 'Microsoft.SqlVirtualMachine/SqlVirtualMachines/AHBTest' under resource group 'AHBTest' was not found. If you see this error, please register your SQL Server VM with the new resource provider.

現在のライセンスの表示View current licensing

次のコード スニペットを使用すると、SQL Server VM の現在のライセンス モデルを表示できます。The following code snippet allows you to view your current licensing model for your SQL Server VM.

# View current licensing model for your SQL Server VM
#example: $SqlVm = Get-AzResource -ResourceType Microsoft.SqlVirtualMachine/SqlVirtualMachines -ResourceGroupName <resource_group_name> -ResourceName <VM_name>
$SqlVm = Get-AzResource -ResourceType Microsoft.SqlVirtualMachine/SqlVirtualMachines -ResourceGroupName <resource_group_name> -ResourceName <VM_name>
$SqlVm.Properties.sqlServerLicenseType

既知のエラー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.

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

4.0 より後の Azure PowerShell を使用している場合に、SQL Server VM のライセンス モデルを変更しようとすると、このエラーが発生する可能性があります。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'. The argument is null or empty. 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: