こんにちは。
今回は、通常のWindows VMを従量課金のSQL VMに変えたいときの手順についてお伝えしていきます。
目次
そもそも従量課金のSQL VMって?
Azure仮想マシンでSQL Serverを利用する場合、ライセンスモデルは3つに別れます。1つが従量課金制(PAYG)、もう1つがAzureハイブリッドベネフィット(AHUB)、そしてディザスターリカバリー(DR)です。
従量課金はAzure VMを稼働させている(=VMが割当解除になっていない状態)時間で支払う方法です。
Azureハイブリッドベネフィットは、ソフトウェアアシュアランス(SA)の付属するSQL Serverライセンスを適用することで利用できる、ライセンスを持ち込む方法です。
ディザスターリカバリーは、名前の通りDR用のVMに適用する持ち込みライセンスモデルです。
従量課金制のSQL IaaS VMを利用したい場合は通常、マーケットプレイスから適当なライセンスのVMを新規作成する必要があります。
手順
- インストールしたいバージョンのSQL VMを新規作成します。
- C:\SQLServerFull\x64\DefaultSetup.iniをメモ帳などで開き、PIDをメモします。
- 新規作成したSQL VMは削除します。
- SQL ServerをインストールしたいVMに、SQL Server 評価版をダウンロードします。https://www.microsoft.com/ja-jp/evalcenter/evaluate-sql-server
- ISOファイルをVMにマウントして、インストールを実行します。その際、メモしたPIDを入力します。
- SQL erverインストール後、SQLリソースプロバイダーに登録するために、 以下のPowerShellを実行します。
# VMの情報を取得する
$vm = Get-AzVM -Name <VM名> -ResourceGroupName <リソースグループ名>
# SQL IaaS Agentインストール
Set-AzVMSqlServerExtension -VMName $vm.Name `
-ResourceGroupName $vm.ResourceGroupName -Name "SQLIaasExtension" `
-Version "2.0" -Location $vm.Location;
# リソースプロバイダーにSqlVirtualMachineを登録
Register-AzResourceProvider -ProviderNamespace Microsoft.SqlVirtualMachine
# SQL VMをデプロイする
New-AzResource -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName -Location $vm.Location `
-ResourceType Microsoft.SqlVirtualMachine/SqlVirtualMachines `
-Properties @{virtualMachineResourceId=$vm.Id;SqlServerLicenseType='PAYG'}
これで完了です。
余談
今回の方法を使えば、Windows Server 2019にSQL Server 2014をインストールすることや、オンプレミスからSAライセンスの無いSQL Serverをリフト&シフトで利用することができるようになります。
おまけ:現在のAzure SQL Server on Windows Server
2020年7月現在、Potal及びARMテンプレートでSQL Server on Windows VMを作成すると、記憶域プールが利用されています。
記憶域プールを利用する場合、Azure Backupで「ファイル回復」を行うことができません。
ファイル回復を利用できるようにしたい場合、まずデプロイ直後にVMに接続して、記憶域プールを削除してから利用する必要があります。