適用対象:Azure SQL Managed Instance
この記事では、Azure SQL Managed Instance によってプライベート ドメイン名が解決される方法について説明します。
概要
状況によっては、SQL Server データベース エンジンがパブリック DNS レコードに存在しないドメイン名を解決する必要があります。 たとえば、次のシナリオにはプライベート ドメイン名が含まれる可能性があります。
- データベース メールを使用して 電子メールを送信する。
- リンク サーバーを使用してリモート データ ソースにアクセスする。
- Managed Instance リンクを使用してクラウドにデータをレプリケートする。
Azure SQL Managed Instance は Azure 仮想ネットワーク にデプロイされ、既定で Azure 提供の名前解決を使用してインターネット アドレスを解決します。
既定の名前解決のビヘイビアーを変更し、プライベート ドメイン名を解決できるようにするには、次のことができます。
- Azure プライベート DNS ゾーンを使う: Azure プライベート DNS とは
- カスタム DNS サーバーを使用する: Azure 仮想ネットワーク内のリソースの名前解決。
重要
Virtual Networkの DNS サーバーを Azure からカスタムに、またはその逆に変更する場合は、そのVirtual Network内の SQL Managed Instance にも変更を通知する必要があります。 これについては、「 SQL Managed Instance の更新 」セクションで説明されています。
SQL マネージド インスタンスの仮想ネットワークに Azure プライベート DNS ゾーンのみをアタッチまたは更新する場合は、これを行う必要はありません。 これらの変更は、SQL マネージド インスタンスに自動的に反映されます。
考慮事項
- ネットワーク制約 に記載されているように、Azure SQL Managed Instance で内部的に使われているドメイン名の解決を、オーバーライドまたは無効にしないように注意してください。 カスタム DNS サーバーは、パブリック ドメイン名を解決できるように常に構成します。
- メール サーバーやオンプレミスの SQL Server インスタンスなど、Azure SQL Managed Instance で解決するサービスには、必ず完全修飾ドメイン名 (FQDN) を使います。 それらのサービスがプライベート DNS ゾーン内にある場合でも、FQDN を使ってください。 たとえば、
smtp.contoso.comを使用します。 リンク サーバーを作成するか、同じ仮想ネットワーク内の SQL Server VM を参照するレプリケーションを構成するには、FQDN と既定の DNS サフィックス (SQLVM.internal.cloudapp.netなど) も必要です。
SQL Managed Instances を更新する
DNS サーバーの設定が既存の SQL マネージド インスタンスを持つ仮想ネットワークで変更された場合、それらのインスタンスをホストする仮想クラスターおよび基盤となるマシン グループは、DNS 構成の変更と同期する必要があります。 仮想クラスターを更新すると、そのクラスターでホストされているすべての SQL マネージド インスタンスに影響します。
仮想クラスターの DNS サーバー設定を更新すると、仮想ネットワークに設定されたカスタム DNS サーバーの IP アドレスが、そのクラスター内のインスタンスの優先 DNS サーバーになります。 インスタンスは引き続き Azure の DNS リゾルバー アドレスをバックアップとして保持しますが、最初にカスタム DNS サーバーを使用してアドレスを解決するようになりました。
Azure portal を使って、既存の仮想クラスターの DNS サーバーの設定を更新します。
- Azure Portalを開きます。
- 構成しているサブネット内の SQL マネージド インスタンスを含むリソース グループを開き、DNS サーバー設定を更新する SQL マネージド インスタンス を選択します。
- [概要] で、インスタンスが属する 仮想クラスター を選択します。
- [DNS サーバー設定の同期] を選択して、クラスターを更新します。
構成を確認する
仮想クラスターの DNS サーバー設定を更新した後、そのクラスター内の SQL マネージド インスタンスに対して有効になっていることを確認できます。 そうするための方法の 1 つは、ネットワーク インターフェイスで現在構成されている DNS サーバーの一覧を出力する SQL Server エージェント ジョブ を作成して実行することです。
SQL マネージド インスタンスのネットワーク インターフェイスで構成されている DNS サーバーの一覧を表示するには:
- SQL Server Management Studio を起動します。
- DNS 設定を更新したクラスター内の SQL マネージド インスタンスに接続します。
- オブジェクト エクスプローラー で、SQL Server エージェント を展開します。
- [ ジョブ] を右クリックし、[ 新しいジョブ...] を選択します。
- [ 全般] で、ジョブの名前を書き込みます。 たとえば、"DNS 設定の確認" などです。
- [手順] で [新規...] を選択します。
- ステップの名前を書き込みます。 たとえば、"run" とします。
- [TYPE] を PowerShell に設定します。
-
[コマンド] に、次のコマンドを貼り付けます:
Get-DnsClientServerAddress。 - [ OK] を選択し、[ OK] を 選択して両方のダイアログ ウィンドウを閉じます。
- オブジェクト エクスプローラーで、作成したジョブを右クリックし、[ステップでジョブの開始]を選択します。ジョブが実行されます。
- ジョブが終了したら、再度右クリックし、[履歴の表示] を選択します。
- [ログ ファイルの概要] で、ジョブを展開し、その下の最初で唯一のステップを選択します。
- [選択された行の詳細]:コマンドの出力を確認し、DNS サーバーの IP アドレスが含まれていることを確認します。
アクセス許可
仮想ネットワーク全体で DNS サーバーの構成を同期するユーザーは、次のいずれかの条件を満たしている必要があります。
- サブスクリプション共同作成者ロールのメンバーである
-
Microsoft.Sql/virtualClusters/updateManagedInstanceDnsServers/actionアクセス許可を持つカスタム ロールが割り当てられている。
関連コンテンツ
- Azure SQL Managed Instance とは
- Azure SQL Managed Instance の
接続アーキテクチャ - 仮想クラスター アーキテクチャ - Azure SQL Managed Instance
- Azure 仮想ネットワーク内のリソースの名前解決
- クイック スタート: Azure SQL Managed Instance を作成する