SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

SQL Server IaaS Agent 拡張機能を使用して SQL Server on Azure VM の管理性を向上させる (2021/2 最新情報)

leave a comment

先日、次のような投稿を書きました。

Azure の仮想マシン (Azure VM) で SQL Server を使用する際には、SQL Server IaaS Agent 拡張機能 (IaaS エージェント) (以下、IaaS Agent) という、Azure の仮想マシン上で実行している SQL Server の管理性を向上させる機能を無償で使うことができます。

IaaS Agent をインストールすると、仮想マシンにインストールしている SQL Server を「SQL 仮想マシン」というブレードで一元管理できるようになりますので、サブスクリプション内でどのような SQL Server を使用しているかもひと目で確認でき、管理面でもいろいろと便利です。

image

先日の投稿では、日本語環境の SQL Server として再インストールした場合の、IaaS Agent の再導入方法と、IaaS Agent の機能の一つである、自動バックアップについて触れましたが、IaaS Agent にはこれ以外の機能も豊富に含まれており、次のような機能を利用することができます。

 

投稿内にも記載していますが、サブスクリプション内の現在の VM および、今後展開する VM すべてを自動登録 のように、SQL Server がインストールされている仮想マシンが存在する場合には自動的に登録を行う機能もありますので、保持しているサブスクリプションでは、有効にしておけば、IaaS Agent の登録の抜けもないかと思います。

自動登録は、仮想マシンの再起動が不要な「軽量管理モード」での導入が基本となっていますので、稼働中の SQL Server に IaaS Agent がインストールされていない場合でも、再起動のリスクはなく、導入することができます。
軽量管理モードで利用可能な機能はライセンスモデル / エディション / バージョンの変更の機能のみとなりますが、SQL 仮想マシンのブレードによる一元管理は使用できますので、軽量管理モードでインストールするだけでも管理性は向上するかと。

 

Azure の仮想マシンで SQL Server を実行する場合、IaaS Agent を導入することで、適切なライセンスを使用していることの宣言にもつながりますので、SQL Server を Azure 仮想マシン上で実行する際には、自動登録の機能も活用しながら、原則導入するようにしておいた方がよいかと。

本投稿では、IaaS Agent でできることを一通り記載しましたが、運用 / 構築に関してのかなりの作業の容易性が向上するための機能を無償で使用することができます。

また、本投稿は、日本で SQL Server を利用する際には設定する機会が多いと思われる、SQL Server の日本語化を SQL Server on Azure VM (インストール済みイメージ) の日本語化 (2021/1 版) の手順で実施した環境で、確認をしていますので、IaaS Agent の各機能は日本語環境でも利用することが可能です。

公式ドキュメント

最初に、公式ドキュメントを確認しておきます。公開されているドキュメントには次のようなものがあります。
(これ以外のドキュメントもありますが、ドキュメントのツリーからさらに詳細は確認できます)

IaaS Agent を使用するためには、サブスクリプションに対して、「SQL VM リソースプロバイダー」(以下、SQLVMRP) を登録しておく必要があります。

image

IaaS Agent の利用には、SQLVMRP の登録が必要となるため、情報としてはこの二つをキーワードとして情報を確認しておけば、最新情報はキャッチアップできと思います。

IaaS Agent のインストール方法

IaaS Agent の利用には SQLVMRP の登録が必要となることは、前段で記載しました。

登録の方法については リソースプロバイダーを使用してサブスクリプションを登録する に記載されており、サブスクリプション単位で、SQLVMRP の登録 (有効化) を行うことで、IaaS Agent をサブスクリプション内で利用することができるようになります。
SQLVMRP の登録が終われば、IaaS Agent を利用することができます。

IaaS Agent にはいくつかの インストール方法 (登録方法) があります。

  1. Marketplace のイメージをデプロイ
  2. サブスクリプション内の現在の VM および、今後展開する VM すべてを自動登録
  3. 単一の VM を登録
  4. 複数の VM を一括登録

 

Marketplace の SQL Server インストール済みイメージ については、IaaS Agent が自動的に登録される構成となっているので、展開した環境をそのまま使用するのであれば、追加の作業は必要ありません。
日本語環境の SQL Server として利用したい場合には、日本語の版の SQL Server で SQL Server を再インストールすることになりますが、その場合は、IaaS Agent の再登録が必要となりますので、先日投稿した SQL Server on Azure VM (インストール済みイメージ) の日本語化 (2021/1 版)  の作業を行います。

 

SQL IaaS Agent 拡張機能への自動登録 を有効にしておくと、Azure 仮想マシンエージェント がインストールされている仮想マシンについては、SQL Server がインストールされているかを自動的に判断し、SQL Server がインストールされており、IaaS Agent が登録されていない仮想マシンについては、自動的に登録を行うことができる状態にすることができます。
この設定は、サブスクリプション単位で有効化することができますので、Azure 仮想マシンを使うのであれば、自動登録機能を有効化しておくと良いかと思います。

自動登録を有効にすると、IaaS Agent がインストールされていない環境には自動的にインストールが行われますが、このインストールの際には、「再起動が不要な軽量管理モード」としてインストールが行われますので、稼働中のシステムへの影響は発生しません。
(軽量管理モードの場合、ライセンスの種類とエディション変更の機能のみが使用できる状態となりますので、すべての自動管理機能を使用したい場合は、SQL Server のサービスの再起動が可能なタイミングでフル管理モードに切り替えることを検討する必要があります)

自動登録による登録は、現時点では、仮想マシンを展開してから数日必要となることがあり展開後に即時登録されるということはないのですが、SQL Server をインストールした環境の登録の抜けをなくすということでも、自動登録は有効化しておくと良いのではないでしょうか。

 

SQL Server on Azure VM (インストール済みイメージ) の日本語化 (2021/1 版)   に記載している内容は、IaaS Agent を手動で導入する方法となり、自分で用意した仮想マシンに SQL Server をインストール (セルフインストールシナリオ) した環境や、P2V / V2V でオンプレミス等から Azure に移行をした環境の場合は、上述の自動登録の機能を有効にしておくか、単一の VM を登録 / 複 数の VM を一括登録 の方法を使用して IaaS Agent を登録することで機能を使用することができます。

 

SQL 仮想マシンによる一元管理

IaaS Agent が登録された仮想マシンは Azure の 「SQL 仮想マシン」というブレードに表示されるようになります。

image

このブレードを使用すると、「どのバージョン / エディションの SQL Server をどのような課金モデルで使用しているか」を一目で把握することができます。

仮想マシンの数が多くなってくると「どの仮想マシンに SQL Server をインストールしているか」の把握も大変になってきますので、このような一元的に管理できるブレードの存在は大きいのではないでしょうか。

このブレードから IaaS Agent の様々な機能にアクセスすることができ、IaaS Agent の設定変更にも活用することができます。
ドライブの使用状況を確認することもできますので、SQL Server の機能だけでなくストレージに使用状況を確認することができるのも便利ですね。

image

IaaS Agent の各機能を活用する

IaaS Agent を登録した SQL Server インストール済み仮想マシンでは 機能面の利点 に記載されている、次の機能を利用することができます。

これらの機能により、どのようなことを実現できるのかを見ていきたいと思います。

ライセンスモデルの変更 / エディションの変更 / バージョンの変更

3 種類の変更を一つの段落で記載していますが、ライセンスモデルとエディションについては、SQL 仮想マシンのブレードの「構成」から GUI で変更することができます。

これらの機能については、再起動をせずに導入することができる「軽量管理モード」で使用することができます。

image

ライセンスモデルの変更

ライセンスモデルの変更では、「従量課金」(PAYG) / 「Azure ハイブリッド ベネフィット」(AHUB) / 「HA/DR」(SA の DR 特典) の変更をすることができます。
オンプレミスの SQL Server を P2V / V2V で Azure に移行した際に、ライセンスモデルを従量課金に変更する必要がある、従量課金から BYOL のライセンスに切り替えるため、Azure ハイブリッドベネフィットに変更を行うというケースが多いのかもしれませんね。

従来までは、ライセンスは仮想マシンのイメージに紐づいていたため、ライセンスモデルを変更するためには、仮想マシンの再作成が必要だったのですが、IaaS Agent がインストールされている場合には、仮想マシンを再デプロイする必要はありません。

Azure で SQL 仮想マシンのライセンス モデルを変更する の作業を行うことで、柔軟にライセンスを変更することが可能です。

 

エディションの変更

エディションについてもライセンスモデルと同様にポータルから変更することができます。
ただし、IaaS Agent のエディションの変更は、課金のための定義の変更となっており、実際のエディションの変更までは実施されません。

実際の変更方法は Azure VM での SQL Server エディションのインプレース変更 に記載されていますが、

  1. 仮想マシンにログインし、SQL Serer のセットアップからエディションの変更 を実施
  2. IaaS Agent から変更したエディションに変更

という手順を踏む必要があり、SQL Server のセットアップからエディションの変更をする必要があります。

バージョンの変更

バージョンの変更についてもエディションと同様の考え方です。
自動的にバージョンアップをするのではなく、IaaS Agent の変更は Azure 内の認識のみとなります。

こちらについても実際の変更方法は Azure VM 上の SQL Server バージョンのインプレース変更 に記載されており、仮想マシンに新しいバージョンの SQL Server をインプレースアップグレード / 新規インストールしたのちに IaaS Agent から設定を変更するという手順になります。

 

エディションの変更 / バージョンの変更については、対応した SQL Server のメディアを持っていない場合には、該当のエディション / バージョンの SQL Server インストール済みイメージを Azure 上に展開し、その仮想マシン内のメディアを使うという方法がサポートされていますので、インストーラーの入手には手間取らないかと。

SQL Server の 目的のエディション が収められたセットアップ メディア。 ソフトウェア アシュアランスをお持ちのお客様は、ボリューム ライセンス サービス センターからインストール メディアを入手できます。 ソフトウェア アシュアランスをお持ちでないお客様は、目的のエディション (通常、C:\SQLServerFull にある) を含む Azure Marketplace の SQL Server VM イメージから、セットアップ メディアを使用できます。

 

SQL Server の目的のバージョンのセットアップ メディアが必要です。 ソフトウェア アシュアランスをお持ちのお客様は、ボリューム ライセンス サービス センターからインストール メディアを入手できます。 ソフトウェア アシュアランスをお持ちでないお客様は、SQL Server の新しいバージョン (通常、C:\SQLServerFull にあります) を含む Azure Marketplace の SQL Server VM イメージから、セットアップ メディアを使用できます。

 

 

以降で紹介する機能については、導入時に、再起動が不要な「軽量管理モード」ではなく導入時に SQL Server のサービスの再起動が必要となる「完全管理モード」で利用可能となる機能となります。

 

ストレージ構成の変更

ストレージ構成の変更については、2 種類の機能があります。

新しい VM 作成時に利用可能な機能

一つ目が、新しい VM を作成する際に使用できる機能 です。
新規作成ですので、Marketplace の SQL Server インストール済みイメージを使用して仮想マシンを作成する際に利用できる機能となるかと思います。

Marketplace の SQL Server インストール済みイメージを展開する際には、次のようにストレージの構成を設定することができます。

image

Azure の仮想マシンで SQL Server を動作させる際のポイントについては、Azure Virtual Machines 上の SQL Server のパフォーマンスに関するガイドライン というドキュメントで公開されています。

このドキュメントではストレージの構成についても触れられており、データベースのデータファイル / ログファイル / tempdb の構成について言及されています。

最近では、UltraSSD も提供されているので、単一のディスクでも十分な性能を出すことが可能ですが、Premium SSD を使用する場合などは OS の「記憶域スペース」の機能を使用して複数のディスクを束ねることでスループットを向上させる必要があります。

記憶域スペースには列数の考え方がありますので、複数のディスクでスループットを向上させる場合は記憶域スペースの設定が重要となります。

新しい VM 作成時のストレージの構成では、記憶域スペースを列数を考慮しながら構成してくれますので、SQL Server に適した構成でストレージを構築することができます。

また、D ドライブを tempdb に使用することができますので、tempdb 高速化のための設定も自動的に構築されます。

「ストレージの最適化」については、ワークロードに応じたトレースフラグを自動的に設定してくれますので、チューニングされた状態で SQL Server を利用することができます。

既存の VM で利用可能な機能

新規 VM の作成時にストレージの構成を行うことができましたが、既存の VM についてもストレージの構成については調整ができるようになっています。

既存の VM については、SQL 仮想マシンのブレードの「構成」からドライブの拡張を行うことができます。
image

列数については記憶域プール作成時に列数を引き継ぐため、既存の VM にディスクを追加した場合は、ディスク容量の増加の目的となり、負荷分散にはなりませんが、Azure ポータルから簡単に記憶域スペースを拡張することができるようになります。

 

自動修正によるパッチ適用

新規作成  / 既存の VM については修正プログラムのスケジュール設定を行うことができるようになっています。

image

IaaS Agent を導入した環境でには「Microsoft SQL Server IaaS Agent」(SQLIaaSExtension) というサービスが追加されます。

image

このサービスは、IaaS Agent に関しての設定を反映させる機能のほかに、「修正プログラムの適用」の設定に応じた自動的な Windows Update の実行についても行われる機能が含まれています。

 

自動修正では、SQL Server を実行している Azure 仮想マシンのメンテナンス期間が設定されます。 このメンテナンス期間にのみ、自動更新プログラムをインストールできます。 これにより、SQL Server では、システムの更新とこれに関連する再起動が、データベースに最適な時間帯に実行されるようになります。

重要

重要 または クリティカル とマークされた Windows および SQL Server 更新プログラムのみがインストールされます。 重要 または クリティカル とマークされていない、サービスパックや累積更新プログラムなどのその他の SQL Server の更新プログラムは、手動でインストールする必要があります。

適用される修正プログラムは、重要またはクリティカルな Windows、SQL Server の更新プログラムが対象となります。

SQL Server は定期的に更新プログラムが提供されますが、更新プログラムの中には GDR (General Distribution Release)と呼ばれる重要度の高いものが提供されるケースがあります。
image

GDR はセキュリティに関しての問題を修正する緊急度の高い更新プログラムとなっており、早期の適用が推奨されるものです。

このような更新プログラムがリリースされた場合に、自動修正によるパッチ適用機能を有効にしておくと、指定したスケジュールで自動的に適用が行われますので、SQL Server / Windows OS を適切な状態に保つことができます。

 

暗号化機能の暗号化鍵の Key Vault 統合

SQL Server ではいくつかの暗号化機能を使用することができます。

これらの機能では、暗号化鍵を使用して、暗号化の実施を行います。

暗号化に使用した鍵の保管は重要であり、システムのリカバリーをする際などにも保管した鍵をリストアする必要があり、暗号化を行う際には鍵管理についても考慮する必要があります。

Azure には Azure Key Vault という、暗号化鍵やセキュリティ情報を保護するためのリソースがあり、IaaS Agent を利用することで、鍵管理に Azure のリソースを活用することができ、キー管理に Key Vault の豊富な機能を活用しながら一元的に管理することができるようになりますので、鍵の管理性が大幅に向上します。

Key Vault 統合については、SQL Server コネクタという機能もあり、Azure Key Vault を使用する拡張キー管理 (SQL Server) で情報が公開されています。
SQL Server コネクタを使用すると IaaS Agent を導入できないオンプレミスの SQL Server でも Key Vault 統合を行うことができますので、ハイブリッドなリソースを使用した鍵管理の方法として、この Key Vault 統合を活用するということも可能です。

Key Vault 統合を使用する際には、次のドキュメントも目を通しておいた方がよいかと思います。

Key Vault に非対称キーを格納し、そのキーを SQL Server からアクセスして、各種暗号化機能を使用できるようにするのが、SQL Server の Key Vault 統合となります。

Key Vault に非対称キーを格納して、SQL Server からアクセスをするためには、

  1. AAD のサービスプリンシパルの登録
  2. Key Vault コンテナーの作成
  3. Key Vault コンテナーのアクセスポリシーの設定
  4. Key Vault に非対称キーを作成
  5. SQL Server に Key Vault アクセス用の SQL Server コネクタのインストール
  6. SQL Server の暗号化プロバイダーとして Key Vault を追加
  7. Key Vault 接続用の資格情報の作成
  8. SQL Server に非対称キーの登録

というような手順が必要となりますが、この中の 5,6 については、IaaS Agent の Key Vault 統合を使用することで設定をポータルから実施することが可能です。

それでは、実際に各作業を見ていきたいと思います。

AAD のサービスプリンシパルの登録

SQL Server が Key Vault にアクセスする際には、Azure Active Directory (AAD) のサービスプリンシパルを使用して、アクセスを行います。

最初に、AAD に Key Vault のアクセスに利用するサービスプリンシパルを作成します。
サービスプリンシパルの登録は、AAD の「アプリの登録」から実施することができます。

image

アプリケーションを作成したら、アプリケーション ID (クライアント ID) と、シークレットを取得しておきます。

image

Key Vault コンテナーの作成

次に、SQL Server で使用する Key Vault のリソースを Azure に作成します。
作成した Key Vault に対して、SQL Server の暗号化に使用する鍵を保存することになります。

Key Vault については、コンテナーの URI の情報が必要となりますので、Key Vault のリソースを作成した後は、この情報を取得しておきます。
image

 

Key Vault コンテナーのアクセスポリシーの設定

Key Vault コンテナーを作成したら、アクセスポリシーで、作成した AAD のアカウントに対して、次のようなアクセスポリシーを設定します。
image
これで、AAD のアプリケーションが Key Vault に格納する非対称キーに対してアクセスが可能となります。

image

Key Vault に非対称キーを作成

Key Vault に暗号化に使用するキーの作成を行います。
ここで作成したキーを用いて SQL Server の各種暗号化が動作することになります。

image

 

IaaS Agent の Key Vault 統合 (暗号化プロバイダーのインストール)

ここまでの作業で次の情報が取得できているかと思います。

  • AAD アプリケーション ID (プリンシパル名として利用)
  • AAD アプリケーションに登録したシークレット
  • Key Vault のコンテナ URL

この 3 種類の情報が取得できたら、IaaS Agent と Key Vault を統合することが可能となります。

Key Vault 統合を行うタイミングは、VM 作成時 / VM 作成後のどちらのタイミングでも実施することができます。
日本語版の SQL Server に入れ替えを行う場合には、VM 作成後に実施することになるかと。

以下の画像が Key Vault 統合の UI となりますが、ここまでの作業で取得した情報を設定することで、必要な情報が SQL Server に登録されます。

「資格情報名」については、SQL Server 内で認識する資格 (Credential) 情報の名称となりますので、この項目については任意の情報を設定することができます。

image

設定を行うと IaaS Agent を介して Key Vault の設定が SQL Server に投入されます。
次のクエリで投入された情報を確認できます。
Key Vault 用の資格情報と、暗号化プロバイダーの設定が SQL Server に追加されていますね。
(sys.credentials については、name が指定した資格情報名で、credential_identity は、Key Vault の URL の Key Vault 名になるかと)

select * from sys.credentials
select * from sys.cryptographic_providers

 

image

設定を行ったタイミングで、IaaS Agent 経由で Key Vault 用のプロバイダーのインストールが行われ、次のようなクエリで暗号化プロバイダーが SQL Server に登録も合わせて行われています。

CREATE CRYPTOGRAPHIC PROVIDER [AzureKeyVault_EKM_Prov] 
FROM FILE = N'C:\Program Files\SQL Server Connector for Microsoft Azure Key Vault\Microsoft.AzureKeyVaultService.EKM.dll';

 

Key Vault 接続用の資格情報の作成

暗号化プロバイダーとして Key Vault が使用できるようになったら、資格情報から利用できるようにします。

docs のドキュメントでは、管理者アカウントに対して資格情報を付与するという流れとなっていますが、アカウントの作成についても、一から作成しておきたいと思います。

今回は、SQL Server 認証のログインを作成して、そのログインに対して、Key Vault の資格情報をマッピングします。

CREDENTIAL [KeyVault] の KeyVault の箇所は、sys.credentials に登録されている Key Vault の資格情報名を指定してください。

DECLARE @password varchar(36) = NEWID()
PRINT @password
EXECUTE ('CREATE LOGIN [EKM_Cred_Mapped_Login] WITH PASSWORD = ''' + @password + ''',CHECK_EXPIRATION=OFF,  CHECK_POLICY = OFF')
GO

ALTER SERVER ROLE sysadmin ADD MEMBER [EKM_Cred_Mapped_Login] 
GO

ALTER LOGIN [EKM_Cred_Mapped_Login] ADD CREDENTIAL [KeyVault]
GO

 

上記のようなクエリを実行すると、「sysadmin」ロールのメンバーとして「EKM_Cred_Mapped_Login」という SQL Server 認証用のログインが作成されます。

このログインに対して、Key Vault の資格情報をマッピングするというクエリを実行しています。

SQL Server に非対称キーの登録

次に作成したログインで、SQL Server にアクセスし、次のクエリを実行します。

「WITH PROVIDER_KEY_NAME = ‘EKMKeyVault’」の「EKMKeyVault」については、Key Vault に登録したキーの名称を指定します。

image

CREATE ASYMMETRIC KEY EKMASYKey
FROM PROVIDER [AzureKeyVault_EKM_Prov]  
WITH PROVIDER_KEY_NAME = 'EKMKeyVault',  
CREATION_DISPOSITION = OPEN_EXISTING;  

 

正常に設定ができていれば SQL Server の非対称キーとして、Key Vault のキーが利用可能な状態となります。

select * from sys.asymmetric_keys

image

資格情報は、一つのログインにしかマッピングできず、TDE 等で利用する際には、使用していた資格情報にマッピングが必要となりますので、非対称キーが作成できたら、次のようなクエリでマッピングを解除しておきます。

非対称キーの作成ができれば作成したログインも不要となりますので、合わせて削除をしておきます。

ALTER LOGIN [EKM_Cred_Mapped_Login]  
DROP CREDENTIAL [KeyVault]
GO
DROP LOGIN [EKM_Cred_Mapped_Login]

 

SQL Server の各機能用にキーを分けることもできるはずですが、今回は一つのキーを使用して SQL Server の各暗号化機能を使用したいと思います。

そのため次のようなログインを作成します。

CREATE LOGIN KeyVault_Login 
FROM ASYMMETRIC KEY EKMASYKey
GO 

ALTER LOGIN KeyVault_Login   
ADD CREDENTIAL KeyVault;  
GO  

 

これで KeyVault_Login という SQL Server ログインは、Key Vault に登録した非対称キーを使用することができる設定となります。

 

この設定が完了すれば、SQL Server から Key Vault に登録した非対称キーを使用することができるようになります。

それでは、実際に使用してみたいと思います。

各機能での利用方法については SQL 暗号化機能への SQL Server コネクタの使用 から確認することができます。

キーのロールオーバーについては、 SQL Server コネクタのメンテナンスとトラブルシューティング で記載されていますので、キーを変更する場合などはこの内容を確認すると良いかと思います。

TDE で利用する

次のようなクエリを実行することで、 TDE を有効にした DB を作成することができます。

CREATE DATABASE TestTDE
GO

USE TestTDE
GO

CREATE DATABASE ENCRYPTION KEY   
WITH ALGORITHM = AES_256   
ENCRYPTION BY SERVER ASYMMETRIC KEY EKMASYKey
GO  

ALTER DATABASE TestTDE SET ENCRYPTION ON
GO

 

暗号化バックアップで利用する

次のようなクエリを実行することで、暗号化したバックアップを取得することができます。

BACKUP DATABASE TestTDE
TO DISK=N'TestTDB.bak'
WITH FORMAT, INIT,
ENCRYPTION(ALGORITHM = AES_256, SERVER ASYMMETRIC KEY = EKMASYKey);  
GO


リストアについては通常の構文で実行することが可能です。

Always Encrypted で利用する

列レベルの暗号化でも Key Vault と統合することは可能ですが、昨今は Always Encrypted で利用するケースの方が多いかもしれないということでこちらを確認しておきたいと思います。

Always Encrypted と Key Vault を組み合わせる場合は、列マスターキー (Column Master Key : CMK) を Azure Key Vault から使用することができます。

次のようなクエリにより、列マスターキーを作成することができます。

CREATE COLUMN MASTER KEY [CMK]
WITH
(
	KEY_STORE_PROVIDER_NAME = N'AZURE_KEY_VAULT',
	KEY_PATH = N'https://<Key Vault 名>.vault.azure.net/keys/<キー名>/<キーのバージョン>
)

GO

列マスターキーの作成は、クエリで実施できますが、列暗号化キーは列マスターキーの情報を使用して生成する必要がありますので、SSMS で実行したほうが楽だと思います。

SSMS で実行する場合、Azure にサインインを行って操作をすることになりますが、この際、サインインに使用したユーザーがキーの暗号化操作のアクセスポリシー対して次のような権限を保持ししていないと暗号化キーの作成でエラーになるかと思いますので、Azure のサインインに使用しているログインについても注意しておいた方がよいかと思います。

image

これで Key Vault にアクセスできるユーザーであれば Always Encrypted により暗号化されたデータを操作することが可能となるかと思います。

 

Key Vault と SQL Server を統合することで、SQL Server の暗号化機能のキー管理の容易性が向上するかと思いますので、暗号化機能を活用する際にはこのような構成についても覚えておくと良いのではないでしょうか。

 

自動バックアップ

自動バックアップについては、以前 SQL Server IaaS Agent 拡張機能の自動バックアップ機能について で記載しましたので、そちらの情報を確認していただければと思います。

IaaS Agent を利用することで Microsoft Azure への SQL Server マネージド バックアップ による、Azure ストレージへの自動的なバックアップを容易に設定することが可能です。

新規に作成したデータベースについても、自動的にバックアップ対象となりますので、SQL Server のインスタンスの現状に応じて、自動的に適切なバックアップを取得することができるようになります。

DB のバックアップは、データベースン用の肝になる箇所かと思いますので、このような自動的なバックアップ設定については有効に活用したいですね。

 

Always On 可用性グループの構成

最後に紹介する機能が、プレビュー中の機能ではありますが、SQL Server の可用性機能である Always On 可用性グループを設定するための機能です。

この機能は、展開後の VM で使用することができます。

IaaS Agent 導入済みでドメインに参加している環境については、SQL 仮想マシンで「高可用性 (プレビュー)」を使用することができます。

image

この機能では、Always On 可用性グループを構築するために必要となる、Windows フェールオーバークラスター (WSFC) と、Always On 可用性グループの両方を構築することができます。

 

フェールオーバークラスターの作成

フェールオーバークラスターの作成については、次のような画面で作成することができます。

image

SQL Server のサービスアカウントについてはドメインアカウントを指定する必要があるため、サービス用にドメインユーザーを一つ作成する必要があります。

クラスター ブートストラップの資格情報 については、クラスター作成時に、クラスターのコンピューターアカウントを作成することができる権限の必要があります。

クラスター オペレーターの資格情報については、クラスターの各ノードのローカルの Administrators グループのアカウントを指定します。

最低限のユーザーとしては次のようなものでしょうか。(ユーザー名は適当なものを指定しています)

  • SQLServiceUser
    • SQL Server のサービス用アカウントとしてドメインに作成
  • ClusterAdmin
    • クラスター ブートストラップ / クラスターオペレーター用ユーザーとしてドメインに作成
    • 各 SQL Server の Administrators グループに追加
    • クラスター名のコンピューターアカウント (無効にした状態) のフルコントロール権限を付与

フェールオーバークラスターの作成から、WSFC の機能のインストールや、Always On 可用性グループの有効化などを自動的に実施することができます。

可用性グループの作成

可用性グループの作成については、次のような UI で設定ができます。

image

Azure 仮想マシンで Always On 可用性グループを作成する場合、ロードバランサーやプローブポートの設定が必要となりますが、そのあたりもまとめて作成してくれるのは便利ですね

 

 

本投稿では、2021/2 時点で SQL Server IaaS Agent 拡張機能で利用することができる機能をまとめてみました。

IaaS Agent は Azure の仮想マシンで SQL Server を実行する際に必要となる様々な運用 / 管理を向上させるための機能を無償で使用することができます。

無償で利用することができますので、Azure の仮想マシンで SQL Server を利用する際には、活用してみてはいかがでしょうか。

Share

Written by Masayuki.Ozawa

2月 3rd, 2021 at 5:32 pm

Leave a Reply