Azure portal を使用して、Azure VM 上の SQL Server に使用する複数サブネットの可用性グループを構成する
適用対象: Azure VM 上の SQL Server
ヒント
可用性グループをデプロイする方法は多数あります。 デプロイを簡略化し、Always On 可用性グループに対して Azure Load Balancer または分散ネットワーク名 (DNN) を不要にするには、同じ Azure 仮想ネットワーク内の複数のサブネットに SQL Server 仮想マシン (VM) を作成します。 可用性グループを 1 つのサブネットに既に作成している場合は、マルチサブネット環境に移行できます。
この記事では、Azure portal を使用して、次を作成することで複数のサブネット内の Azure VM 上に SQL Server の可用性グループを構成する方法について説明します。
- 新しい仮想マシンと SQL Server。
- Windows フェールオーバー クラスター。
- 可用性グループ。
- リスナー。
Note
このデプロイ方法では、Windows Server 2016 以降上の SQL Server 2016 以降がサポートされています。
ポータルから複数のサブネットの可用性グループをデプロイすると、ユーザーのエンドツーエンドのエクスペリエンスが使いやすくなります。 高可用性とディザスター リカバリー (HADR) のベスト プラクティスに従って、仮想マシンが構成されます。
この記事では、Azure portal を使用して可用性グループ環境を構成しますが、手動で行うこともできます。
注意
Azure Migrate を使用して、可用性グループ ソリューションを Azure VM 上の SQL Server にリフトアンドシフトすることができます。 詳細については、可用性グループの移行に関する記事を参照してください。
前提条件
Azure portal を使用して Always On 可用性グループを構成するには、次の前提条件を満たしている必要があります。
リソース グループ
カスタム DNS サーバー IP アドレスが構成された仮想ネットワーク
同じ仮想ネットワーク内にあるドメイン コントローラー VM
次のアカウントのアクセス許可:
ドメインでのコンピューター オブジェクトの作成アクセス許可を持っているドメイン ユーザー アカウント。 このユーザーがクラスターと可用性グループを作成し、SQL Server をインストールします。
たとえば、ドメイン ユーザー アカウント (
account@domain.com
) は通常、十分なアクセス許可を持っています。 クラスターを作成するには、このアカウントが、各 VM でローカル管理者グループに含まれている必要もあります。SQL Server を制御するドメイン SQL Server サービス アカウント。 これは、可用性グループに追加するすべての SQL Server VM で同じアカウントである必要があります。
Note
このチュートリアルでは、DNS サーバーと ドメイン コントローラーの両方が同じ仮想マシン上にあることを前提としています。 DNS サーバーがドメイン コントローラー VM とは異なる VM に構成されている場合、オブジェクトの同期時の待機時間が発生すると、自動デプロイの問題が発生する可能性があります。
Azure Marketplace イメージを選択する
Azure Marketplace を使用して、ギャラリーから構成済みの複数のイメージのいずれかを選択します。 Azure portal で可用性グループのデプロイを開始するには、次の 2 つのエントリ ポイントがあります。
1 つ目のオプションは、Azure Marketplace で "SQL Server の高可用性" を検索し、高可用性タイルを持つ SQL Server を見つけることです。
[作成] ボタンを選択し、続行します。
2 つ目のオプションは、Azure portal で Azure SQL に移動することです。 Azure SQL がメニューリストにない場合は、すべてのサービス を選択してから、検索ボックスに Azure SQL と入力し、その結果を選択します。
[+ 作成] を選択し、[Select SQL deployment option](SQL デプロイ オプションの選択) ペインを開きます。
[SQL 仮想マシン] で、[高可用性] チェックボックスをオンにします。 [イメージ] ボックスに目的の SQL Server のバージョン (2019 など) を入力し、SQL Server のイメージ (無料の SQL Server ライセンス: Windows Server 2019 上の SQL 2019 Developer など) を選択します。
[高可用性] チェックボックスをオンにすると、ポータルに、SQL Server 2016 以降のサポートされている SQL Server のバージョンが表示されます。
[作成] を選択します。
基本設定を選択する
[基本] タブで、[サブスクリプション] と [リソース グループ] を選択します。 さらに、可用性グループを作成している SQL Server インスタンスに詳細を入力します。
ドロップダウン リストから、お使いのドメイン コントローラーが含まれているサブスクリプションとリソース グループ、および可用性グループをデプロイする場所を選択します。
スライダーを使用して、可用性グループに作成する仮想マシンの数を選択します。 最大値は 2 で、最小値は 9 です。 仮想マシン名は事前設定されていますが、[名前の編集] を選択して編集できます。
[リージョン] でリージョンを選択します。 すべての VM は同じリージョンにデプロイされます。
[可用性]オプション として、[可用性ゾーン] または [可用性セット] を選択します。 可用性オプションの詳細については、可用性に関するページを参照してください。 可用性ゾーンを選択すると、各 VM はリージョン内のゾーンに割り当てられますが、これは後で [ネットワーク] オプションでカスタマイズできます。
[セキュリティの種類] には、[標準] または [トラステッド起動] のどちらかを選択します。
[イメージ] 一覧で、目的のバージョンの SQL Server およびオペレーティング システムのイメージを選択します。 ドロップダウンを使って、デプロイするイメージを変更します。 [VM 世代の構成]を選択して VM 世代を選択します。 [セキュリティの種類] で [信頼された起動] を選択した場合、VM の世代は Gen 2 である必要があります。
仮想マシンのサイズについては、[すべてのサイズを表示] を選択します。 作成される VM はすべて同じサイズになります。 運用時のワークロードについては、「Azure VM 上の SQL Server のパフォーマンスに関するベスト プラクティス」のマシンのサイズと構成に関する推奨事項を参照してください。
[仮想マシン管理者アカウント] で、ユーザー名とパスワードを指定します。 パスワードは 12 文字以上で、定義された複雑さの要件を満たす必要があります。 このアカウントは、VM の管理者になります。
[ライセンス] で、既存の Windows Server ライセンスを Azure に持ち込む Azure ハイブリッド特典を有効にすることができます。 このオプションは、ソフトウェア アシュアランスのお客様のみ使用できます。
Azure ハイブリッド特典を有効にする場合は [はい] を選択し、ソフトウェア アシュアランスが有効になっていることをチェックボックスをオンにして確認します。 Developer エディションなど、無料の SQL Server イメージのいずれかを選択した場合、このオプションは使用できません。
[SQL Server ライセンス] の下に、Azure ハイブリッド特典を有効にして、独自の SQL Server ライセンスを使用し、ライセンス コストを節約できるオプションがあります。 このオプションは、ソフトウェア アシュアランスのお客様のみ使用できます。
Azure ハイブリッド特典を有効にする場合は [はい] を選択し、ソフトウェア アシュアランスが有効になっていることをチェックボックスをオンにして確認します。 Developer エディションなど、無料の SQL Server イメージのいずれかを選択した場合、このオプションは使用できません。
[次へ: ネットワーク] を選択します。
ネットワーク設定を選択します
[ネットワーク] タブで、ネットワーク オプションを構成します。
ドロップダウン リストから [仮想ネットワーク] を選択します。 リストは、[基本] タブで先ほど選択したリージョンとリソース グループに基づいて事前設定されています。選択した仮想ネットワークには、ドメイン コントローラー VM が含まれているはずです。
注意事項
選択した仮想ネットワークにドメイン コントローラーが存在しない場合、デプロイは失敗します。
[NIC ネットワーク セキュリティ グループ] で、[Basic] セキュリティ グループまたは [詳細] セキュリティ グループを選択します。 [基本] オプションを選択すると、SQL Server VM の受信ポートを選択できます。 [詳細] オプションを選択すると、既存のネットワーク セキュリティ グループを選択するか、新しいグループを作成することができます。
必要に応じて [選択したポートを許可する] を選択して、[パブリック受信ポート] を構成します。 次に、ドロップダウン リストを使用して、許可されている共通ポートを選択します。
[パブリック IP SKU] の種類を選択します。 すべてのマシンで、このパブリック IP の種類が使用されます。
作成する各仮想マシンは、専用のサブネット内に配置される必要があります。
[サブネットの作成] で、[サブネット構成の管理] を選択して、仮想ネットワークの [サブネット] ペインを開きます。 次に、各仮想マシンにサブネットを作成する ([+ サブネット]) か、可用性グループを作成する各仮想マシンにサブネットが使用できることを検証します。
完了したら、[X] を使用してサブネット管理ペインを閉じ、可用性グループのデプロイのページに戻ります。
ドロップダウン リストを使用して、作成している各 VM にサブネット、パブリック IP アドレス、リスナー IP アドレスを割り当てます。 Windows Server 2016 イメージを使用している場合は、クラスター IP アドレスも割り当てる必要があります。 [基本] タブで 可用性オプションとして [可用性ゾーン] を選択した場合、各 VM はそれぞれ別のゾーンに割り当てられます。 必要に応じて、各 VM をゾーンに再割り当てしますが、複数の VM を同じ可用性ゾーンに配置できないことに注意してください。
仮想マシンにサブネットを割り当てると、リスナーとクラスターのボックスには、使用可能な IP アドレスが事前に設定されます。 IP アドレスを編集する場合は、ボックスにカーソルを置きます。 新しい IP アドレスを作成する必要がある場合は、[新規作成] を選択します。
VM を削除するときに新しく作成されたパブリック IP アドレスと NIC を削除するには、このチェックボックスを選択します。
[次へ: WSFC と資格情報] を選択します。
フェールオーバー クラスターの設定を選択する
[WSFC と資格情報] タブで、Windows Server フェールオーバー クラスターと SQL Server を構成して管理するためのアカウント情報を指定します。
注意事項
デプロイを機能させるには、すべてのアカウントが、ドメイン コントローラー VM の Active Directory に既に存在している必要があります。 このデプロイ プロセスではアカウントが作成されないため、無効なアカウントを指定すると失敗します。 必要なアクセス許可の詳細については、「Active Directory でクラスターのアカウントを構成する」を参照してください。
[Windows Server フェールオーバー クラスター] で、フェールオーバー クラスターに使用する名前を指定します。
ドロップダウン リストから、クラウド監視に使用するストレージ アカウントを選択します。 存在しない場合は、[新しいストレージ アカウントの作成] を選択します。
[Windows Active Directory ドメインの詳細] で:
[ドメイン参加ユーザー名] と [ドメイン参加パスワード] に、Active Directory に Windows Server フェールオーバー クラスター名を作成し、VM をドメインに参加させるアカウントの資格情報を入力します。 このアカウントには、コンピューター オブジェクトの作成アクセス許可が必要です。
[ドメイン FQDN] に、contoso.com などの完全修飾ドメイン名を入力します。
[SQL Server の詳細] で、SQL Server サービスのアカウントの詳細を指定します。 次のいくつかのオプションの中から選択できます。
a. [ドメイン参加アカウントと同じ] を選択すると、クラスターを作成し、VM をドメインに参加させたのと同じユーザーを使用するように選択できます。 これは上記と同じアカウントになります。
b. グループ管理サービス アカウント (GMSA) を選択すると、ADDS ツールのインストール、VM の GMSA セキュリティ グループへの参加、GMSA サービスのインストールなど、作成する VM に必要なすべてのツールとサービスがインストールされます。 GMSA のデプロイを成功させるには、ドメイン参加ユーザーは、少なくとも GMSA AD グループに対する書き込みアクセス許可を持っている必要があります。
c. または、[カスタム] を選択し、SQL Server サービス アカウントで使用する別のアカウントの詳細を指定することもできます。
ディスク を選択します。
ディスク設定を選択する
[ディスク] タブで、仮想マシンと SQL Server ストレージ構成の両方のディスク オプションを構成します。
[OS ディスクの種類] で、オペレーティング システムに使用するディスクの種類を選択します。 運用システムには Premium が推奨されますが、Basic VM では使用できません。 Premium SSD を使用するには、仮想マシンのサイズを変更してください。
ディスクの [暗号化の種類] の値を選択します。
[ストレージ構成] で、[構成の変更] を選択して [ストレージの構成] ペインを開き、ストレージの要件を指定します。 既定値のままにすることも、1 秒あたりの入出力操作 (IOPS) のニーズに合わせてストレージ トポロジを手動で変更することもできます。 詳細については、「SQL Server VM のストレージを構成する」を参照してください。
[データ ストレージ] で、データ ドライブの場所、ディスクの種類、ディスクの数を選びます。 システム データベースをローカルの C ドライブではなくデータ ドライブに格納するチェックボックスをオンにすることもできます。
[ログ ストレージ] で、トランザクション ログ ファイル用のデータ ドライブと同じドライブを選んで使用するか、ドロップダウン リストから別のドライブを選ぶこともできます。 ドライブの名前、ディスクの種類、ディスクの数を選ぶこともできます。
[TempDb のストレージ] で、
tempdb
のデータベース設定を構成します。 選択肢には、データベース ファイルの場所、ファイルの数、初期サイズ、自動拡張サイズ (メガバイト単位) が含まれます。現在、デプロイ中の
tempdb
ファイルの最大数は 8 です。 ただし、SQL Server VM をデプロイした後で、さらにファイルを追加できます。[OK] を選んでストレージ構成設定を保存します。
[次へ: SQL Server の設定] を選択します。
SQL Server の設定を選択する
[SQL Server の設定] タブで、SQL Server および可用性グループの個々の設定と最適化を構成します。
[可用性グループの詳細] で:
可用性グループとリスナーの名前を指定します。
作成する各仮想マシンのロール (プライマリまたはセカンダリ) を選択します。
ビジネス ニーズに最も適した可用性グループの設定を選択します。
[セキュリティとネットワーク] で、[SQL の接続] を選択し、VM 上の SQL Server インスタンスにアクセスします。 接続オプションの詳細については、「接続」を参照してください。
SQL Server 認証が必要な場合は、[SQL Server 認証] で [有効] を選択し、ログイン名とパスワードを指定します。 これらの資格情報は、デプロイするすべての VM で使用されます。 認証オプションの詳細については、「認証」を参照してください。
暗号化用のセキュリティ シークレットを格納するために Azure Key Vault を使用する必要がある場合は、[Azure Key Vault の統合] に [有効] を選択します。 次に、必要な情報を入力します。 詳細については、Azure Key Vault の統合に関する記事を参照してください。
[SQL インスタンスの設定の変更] を選択して、SQL Server 構成オプションを変更します。 このオプションには、サーバーの照合順序、並列処理の最大限度 (MAXDOP)、最小と最大のメモリ、アドホック ワークロード用に最適化するかどうかが含まれます。
前提条件の検証を選択する
デプロイを成功させるには、いくつかの前提条件を満たす必要があります。 すべてのアクセス許可と要件が適切であることを検証しやすくするために、このタブでダウンロードできる PowerShell の前提条件スクリプトを使います。
スクリプトには、前の手順で指定した値が事前に設定されます。 ドメイン コントローラー仮想マシンまたはドメイン参加済み Windows Server VM 上で、ドメイン ユーザーとして PowerShell スクリプトを実行します。
スクリプトが実行され、前提条件が検証されたら、確認のチェックボックスをオンにします。
[確認および作成] を選択します。
[確認および作成] タブで、概要を確認します。 次に、[作成] を選択して SQL Server、フェールオーバー クラスター、可用性グループ、リスナーを作成します。
必要に応じて、[オートメーション用のテンプレートをダウンロードする] を選択することができます。
Azure Portal でデプロイを監視できます。 画面の上部にある [通知] ボタンをクリックすると、デプロイの基本的な状態が表示されます。
デプロイが完了したら、ポータルで SQL 仮想マシン リソースを参照できます。 [設定] で [高可用性] を選択して、可用性グループの正常性を監視します。 可用性グループの名前の横にある矢印を選択すると、すべてのレプリカの一覧が表示されます。
Note
Azure portal の [高可用性] ページにある [Synchronization health] (同期の正常性) は、データベースを可用性グループに追加するまでは [異常] と表示されます。
データベースを可用性グループに追加する
デプロイが完了したら、データベースを可用性グループに追加します。 以降のステップでは SQL Server Management Studio を使用しますが、Transact-SQL または PowerShell も使用できます。
リモート デスクトップ接続 (RDP) などの任意の方法を使用して、SQL Server VM のいずれかに接続します。 すべての SQL Server インスタンスで sysadmin 固定サーバー ロールのメンバーであるドメイン アカウントを使用します。
SQL Server Management Studioを開きます。
SQL Server インスタンスに接続します。
オブジェクト エクスプローラーで [Always On 高可用性] を展開します。
[可用性グループ] を展開し、可用性グループを右クリックして、[データベースの追加] を選択します。
プロンプトに従って、可用性グループに追加するデータベースを選択します。
設定を保存してデータベースに追加するには、[OK] を選択します。
オブジェクト エクスプローラーを更新して、データベースの状態が
synchronized
であることを確認します。
データベースを追加したら、Azure portal で可用性グループを確認し、状態が [正常] であることを確認できます。
可用性グループを変更する
ポータルを使用して可用性グループをデプロイした後は、可用性グループの変更はすべて手動で行う必要があります。 レプリカを削除する場合、SQL Server Management Studio または Transact-SQL を使用して行い、その後、Azure portal を使用して VM を削除します。 レプリカを追加する場合は、従来のオンプレミス環境で通常行うとおりに、仮想マシンをリソース グループに手動でデプロイし、ドメインに参加させ、レプリカを追加する必要があります。
クラスターの削除
クラスターを削除するには、最新バージョンの Azure CLI または PowerShell を使用します。
まず、クラスターからすべての SQL Server VM を削除します。
# Remove the VM from the cluster metadata
# example: az sql vm remove-from-group --name SQLVM2 --resource-group SQLVM-RG
az sql vm remove-from-group --name <VM1 name> --resource-group <resource group name>
az sql vm remove-from-group --name <VM2 name> --resource-group <resource group name>
削除した SQL Server VM がクラスター内の唯一の VM である場合、クラスターは破棄されます。 他の VM がクラスターに残っている場合、その VM は削除されず、クラスターは破棄されません。
次に、SQL IaaS Agent 拡張機能からクラスターのメタデータを削除します。
# Remove the cluster from the SQL VM RP metadata
# example: az sql vm group delete --name Cluster --resource-group SQLVM-RG
az sql vm group delete --name <cluster name> --resource-group <resource group name>
トラブルシューティング
問題が発生した場合は、デプロイ履歴を確認し、一般的なエラーとその解決策を確認することができます。
ポータルを使用してクラスターと可用性グループに加えた変更は、デプロイによって行われます。 デプロイ履歴は、クラスターの作成やオンボード、または可用性グループの作成に関する問題がある際に、より詳細な情報を提供します。
デプロイのログを表示し、デプロイ履歴を確認するには:
Azure Portal にサインインします。
ご利用のリソース グループにアクセスします。
[設定] で [デプロイ] を選択します。
詳細を確認したいデプロイを選択してください。
デプロイが失敗し、ポータルを使用して再デプロイする場合は、ポータルからのデプロイはべき等 (反復可能) ではないので、リソースを手動でクリーンアップする必要があります。 これらのクリーンアップ タスクには、VM の削除や、Active Directory や DNS のエントリの削除が含まれます。 一方、Azure portal を使って可用性グループをデプロイするテンプレートを作成してから、そのテンプレートを使って自動化する場合は、テンプレートはべき等であるため、リソースのクリーンアップは必要ありません。
次の手順
可用性グループがデプロイされたら、Azure VM 上の SQL Server に対する HADR 設定を最適化することを検討します。
詳細については、以下をご覧ください。