Azure SQL Managed Instance でプライベート ドメイン名を解決する

適用対象:Azure SQL Managed Instance

この記事では、Azure SQL Managed Instance によってプライベート ドメイン名が解決される方法について説明します。

概要

特定の状況では、パブリック DNS レコードに存在しないドメイン名を SQL Server データベース エンジンで解決することが必要です。 たとえば、次のシナリオにはプライベート ドメイン名が含まれる可能性があります。

Azure SQL Managed Instance は、Azure のVirtual Network にデプロイされ、既定では Azure が提供する名前解決を使用してインターネット アドレスを解決します。

既定の名前解決のビヘイビアーを変更し、プライベート ドメイン名を解決できるようにするには、次のことができます。

重要

Virtual Networkの DNS サーバーを Azure からカスタムに、またはその逆に変更する場合は、そのVirtual Network内の SQL Managed Instance にも変更を通知する必要があります。 これについては、「SQL Managed Instance の更新」セクションで説明します。

Managed InstanceのVirtual Networkに Azure プライベート DNS ゾーンをアタッチまたは更新するだけの場合は、これを行う必要はありません。 これらの変更は、Managed Instanceに自動的に反映されます。

考慮事項

  • ネットワーク制約 に記載されているように、Azure SQL Managed Instance で内部的に使われているドメイン名の解決を、オーバーライドまたは無効にしないように注意してください。 カスタム DNS サーバーは、パブリック ドメイン名を解決できるように常に構成します。
  • メール サーバーやオンプレミスの SQL Server インスタンスなど、Azure SQL Managed Instance で解決するサービスには、必ず完全修飾ドメイン名 (FQDN) を使います。 それらのサービスがプライベート DNS ゾーン内にある場合でも、FQDN を使ってください。 たとえば、 smtp.contoso.comを使用します。 同じVirtual Network内の SQL Server VM を参照するリンク サーバーを作成したり、レプリケーションを構成したりする場合でも、FQDN と既定の DNS サフィックスが必要です (例: SQLVM.internal.cloudapp.net)。

SQL Managed Instances を更新する

DNS サーバーの設定が既存の SQL マネージド インスタンスを持つ仮想ネットワークで変更された場合、それらのインスタンスをホストする仮想クラスターおよび基盤となるマシン グループは、DNS 構成の変更と同期する必要があります。 仮想クラスターを更新すると、そこでホストされているすべての SQL Managed Instance に反映されます。

仮想クラスターの DNS サーバー設定を更新すると、仮想ネットワークに設定されたカスタム DNS サーバーの IP アドレスが、そのクラスター内のインスタンスの優先 DNS サーバーになります。 インスタンスは引き続き Azure の DNS リゾルバー アドレスをバックアップとして保持しますが、最初にカスタム DNS サーバーを使用してアドレスを解決するようになりました。

Azure portal を使って、既存の仮想クラスターの DNS サーバーの設定を更新します。

  1. Azure Portalを開きます。
  2. 構成しているサブネット内のManaged Instanceを含むリソース グループを開き、DNS サーバー設定を更新する [SQL Managed Instance] を選択します。
  3. [概要] で、インスタンスが属する 仮想クラスター を選択します。
  4. [DNS サーバー設定の同期] を選択して、クラスターを更新します。

Screenshot showing the Synchronize DNS server settings action on the virtual cluster's overview page.

構成を確認する

仮想クラスターの DNS サーバー設定を更新した後、そのクラスター内のManaged Instanceに対して有効になっていることを確認できます。 そうするための方法の 1 つは、ネットワーク インターフェイスで現在構成されている DNS サーバーの一覧を出力する SQL Server エージェント ジョブ を作成して実行することです。

マネージド インスタンスのネットワーク インターフェイスで構成されている DNS サーバーの一覧を表示するには。

  1. SQL Server Management Studio を起動します。
  2. DNS 設定を更新したクラスター内のManaged Instanceに接続します。
  3. オブジェクト エクスプローラー で、SQL Server エージェント を展開します。
  4. [ジョブ] を右クリックし、[新しいジョブ...] を選択します。
  5. [全般] で、ジョブの名前を書き込みます (例:「DNS 設定の確認」)。
  6. [手順][新規...] を選択します。
  7. ステップの名前を書き込みます (例:「実行」)。
  8. [TYPE] を PowerShell に設定します。
  9. [コマンド] で、次のコマンドをペーストします。Get-DnsClientServerAddress
  10. [OK] を選択し、次に[OK] を選択して両方のダイアログ ウィンドウを閉じます。
  11. オブジェクト エクスプローラー で、作成した[ジョブ]を右クリックして、[ステップ...でジョブを開始] を選択します。ジョブが実行されます。
  12. ジョブが終了したら、再度右クリックし、[履歴の表示] を選択します。
  13. [ログ ファイルの概要] で、ジョブを展開し、その下の最初で唯一のステップを選択します。
  14. [選択された行の詳細:] で、コマンドの出力を確認し、DNS サーバーの IP アドレスが含まれていることを確認します。

アクセス許可

仮想ネットワーク全体で DNS サーバーの構成を同期するユーザーは、次のいずれかの条件を満たしている必要があります。

  • サブスクリプション共同作成者ロールのメンバーである
  • Microsoft.Sql/virtualClusters/updateManagedInstanceDnsServers/action アクセス許可を持つカスタム ロールが割り当てられている。

次の手順