Azure の VM (仮想マシン) でインストールタイプの SQL Server を使用する場合、SQL IaaS Agent 拡張機能を使用することで、IaaS の運用負荷を軽減させることができる様々な機能を無料で利用することができます。
Azure の VM で SQL Server をインストールする場合には、Marketplace の SQL Server インストール済みイメージを使用することが胃のではないでしょうか。Marketplace のイメージを展開する際には、「SQL Serer の設定」のタブで、SQL Server 向けの設定を行うことができますが、この時の設定を行ってくれているのが SQL IaaS Agent 拡張機能となります。
利用できる機能については、Azure portal を使用して SQL Server VM を管理する で紹介されている様々な内容となるのですが、この IaaS Agent 拡張機能でいくつかのアップデートが行われていたようなので本投稿で紹介したいと思います。
SQL IaaS Agent 拡張機能について知りたい場合には、次のドキュメントを確認するとよいかと思います。
- Azure Virtual Machines 上の SQL Server とは何か (Windows)
- SQL Server IaaS Agent 拡張機能を使用して管理を自動化する
- SQL IaaS Agent 拡張機能への自動登録
- Azure portal を使用して SQL Server VM を管理する
- Azure VM における SQL Server についてよく寄せられる質問
再起動不要でフルモードをインストールすることが可能に
最初のアップデートは「再起動不要でフルモードをインストール可能」になったことです。
SQL Server IaaS Agent 拡張機能を使用して管理を自動化する 等の情報に記載が追加されているのですが、2021 年 9 月以降に SQL IaaS Agent 拡張機能をインストールする場合、フルモードでインストールをする場合に SQL Server の再起動が行われなくなりました。
日本で SQL Server インストール済み VM を使用する場合、日本語版に入れ替えて使用するケースが多く、SQL IaaS Agent の再導入が必要となります。
この際導入の際にフルモードで登録をしていればよいのですが、登録を行わなかった場合、運用中の環境では再起動を伴わない「軽量モード」で導入を行うことがあったのではないでしょうか。
また、自動登録 の機能によって、自動的に IaaS Agent が登録された場合も「軽量モード」で導入が行われていました。
IaaS Agent 拡張機能は「フルモード」で導入していないと、ライセンスとエディションの変更しか実施することができず、IaaS Agent の機能を最大限活用することができず、どこかのタイミングでフルモードにアップグレードをしたい場合、SQL Server のサービス再起動が発生することが導入タイミングの悩みの種でもあったのではないでしょうか。
今回のアップデートで
- フルモードで新規導入
- 軽量モードをフルモードにアップグレード
する際に、再起動が不要で導入をすることができるようになりましたので、IaaS Agent の機能を最大限活用できる環境を整えやすくなりました。
次のようなフルモードインストール用のコマンドを実行するか、
$vm = Get-AzVM -Name <vm_name> -ResourceGroupName <resource_group_name> New-AzSqlVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName -Location $vm.Location -LicenseType <License Type> -SqlManagementType Full
ポータルのアップグレードのメッセージからアップグレードを実行することで、軽量モードからフルモードにアップグレードを行うことができます。
軽量モードの場合、ライセンスとエディション変更のみが利用できるため、VM エージェント のプラグインとして機能が導入されます。
フルモードでインストールをした場合は Windows のサービスとして、次のサービスがインストールされます。
- Microsoft SQL Server IaaS Agent (SQLIaaSExtension)
- Local System で起動
- Microsoft SQL Server IaaS Query Service (SqlIaaSExtensionQuery)
- NT Service\SqlIaaSExtensionQuery で起動
以前は、SQLIaaSExtension が SQL Server に接続するためのログインを作成するために、シングルユーザーモードで起動して、初期設定を行っていたはずなのですが、今回のアップデートでは、初期設定を行うのに Local System の権限でサービスを再起動せずに SQL Server に接続をして初期設定を行うように変更となったようです。
フルモードはサービスを作成して、SQL Server の情報を取得しますので、軽量モードと比較すると多少の負荷がかかるというようなしようとなっています。(軽量モードの場合は、レジストリのみスキャンしているため、負荷が発生しないという仕組みとなっています)
フルモードが使用できると、SQL IaaS Agent 拡張機能で提供されている機能を最大限活用できますので、インストールを行う際にワークロードを停止することなく導入できるようになったのはうれしいですね。
Security Center ポータルの統合
もう一つのアップデートが Security Center ポータルの統合です。
これについては、機能面の利点 に追記が行われています。
ドキュメントの更新履歴を見る限り、2021/6/4 の https://github.com/MicrosoftDocs/azure-docs/blob/113c9b39114ea48474a5cc6f277f3929a01bbbbb/articles/azure-sql/virtual-machines/windows/sql-server-iaas-agent-extension-automate-management.md で追記が行われたようです。
Azure Defender for SQL が有効になっている SQL Server on Azure VM については「SQL 仮想マシン」ブレードの「セキュリティセンター」から推奨事項を確認できるようになりました。
SQL 仮想マシンブレードで SQL Server に関しての様々な情報を一元管理できるようになったのはうれしいですね。
まとめ
直近で行われたアップデートの中で、一番大きな内容は、「再起動不要でフルモードをインストール (アップグレード) できる」ようになり、フルモードでインストールされていない環境に対して、運用中に IaaS Agent 拡張機能を最大限活用することができる環境を整えやすくなったことかと思います。
ほかにも一元管理という観点で機能の追加が行われていました。
SQL IaaS Agent 拡張機能は IaaS を PaaS ライクに使用するための様々な補助機能が利用できるようになりますので、IaaS で SQL Server を導入する必要がある場合には必須でインストールすることを意識しておくとよいのではないでしょうか。
サブスクリプション単位で 自動登録 の機能を有効化しておくことができ、自動登録は一度有効化しておけば該当サブスクリプション内の仮想マシンに対して SQL Server がインストールされたことを自動的に検出し、「軽量モード」で拡張機能を自動的にインストールしてくれます。
自動登録はサブスクリプション単位で有効化でき、「SQL 仮想マシン」ブレードの「SQL Server VM の自動登録」か、
次のコマンドレットを実行することで有効化できますので、現在有効にしていないサブスクリプションがあるようでしたら、一度見直して、有効化してみるとよいのではないでしょうか。(コマンドレットは Cloud Shell 上で実行できますので、実行環境を整備する必要なく、コマンド経由での有効化が可能です)
Register-AzProviderFeature -FeatureName BulkRegistration -ProviderNamespace Microsoft.SqlVirtualMachine
軽量モードでインストールされていれば、SQL 仮想マシンブレードで SQL Server がインストールされていることに気づけますので、後からフルモードに切り替えることも可能になりますので、自動登録が有効にされていないサブスクリプションがあったら有効化しておくとよいのではないでしょうか。