Azure SQL Managed Instance にアプリケーションを接続する

適用対象: Azure SQL Managed Instance

この記事では、Azure 仮想ネットワーク内または Azure 仮想ネットワーク間のさまざまなアプリケーション シナリオで、アプリケーションを Azure SQL Managed Instance に接続する方法について説明します。

現在、アプリケーションをホストする方法や場所については、複数の選択肢があります。 Azure App Service または Azure のいくつかの仮想ネットワーク統合オプション (Azure App Service Environment、Azure Virtual Machines、Virtual Machine Scale Sets など) を使用して、アプリケーションをクラウドでホストできます。 ハイブリッド ("混合") クラウドのアプローチを使用して、アプリケーションをオンプレミスに維持することもできます。 どれを選んでも、Azure 仮想ネットワーク内または Azure 仮想ネットワーク間のさまざまなアプリケーション シナリオで、アプリケーションを Azure SQL Managed Instance に接続できます。

また、Power BI や Azure App Service などのマルチテナント Azure サービスや、VPN 経由で仮想ネットワークに接続されていないオンプレミス ネットワークなど、仮想ネットワークの外部からマネージド インスタンスへのデータ アクセスを有効にすることもできます。 これらや同様のシナリオを実現するには、「Azure SQL Managed Instance のパブリック エンドポイントを構成する」をご覧ください。

高可用性を示す図。

同じ VNet 内から接続する

SQL Managed Instance と同じ仮想ネットワーク内のアプリケーションを接続するのは、最も簡単なシナリオです。 同じ仮想ネットワーク内の仮想マシンは、それらが異なるサブネット内にあっても、直接相互接続できます。 つまり、App Service Environment 内のアプリケーションまたは SQL Managed Instance と同じ仮想ネットワークにデプロイされた仮想マシンを接続するには、VNet ローカル エンドポイントをターゲットにするように接続文字列を構成します。

別の VNet 内から接続する

SQL Managed Instance とは異なる仮想ネットワークに存在するアプリケーションを接続するには、アプリケーションが最初に、SQL Managed Instance がデプロイされている仮想ネットワークにアクセスするか、SQL Managed Instance 自体にアクセスする必要があります。 2 つの仮想ネットワークが同じサブスクリプションに属している必要はありません。

別の仮想ネットワーク内の SQL Managed Instance に接続するには、次の 3 つのオプションがあります。

3 つのうち、プライベート エンドポイントは、次の理由から、最も安全でリソースが経済的なオプションです。

  • 仮想ネットワークから SQL Managed Instance のみを公開します。
  • 一方向の接続のみを許可します。
  • アプリケーションの仮想ネットワーク内に 1 つの IP アドレスのみを必要とします。

プライベート エンドポイントがシナリオの要件を完全に満たさない場合は、代わりに仮想ネットワーク ピアリングを検討してください。 ピアリングではバックボーン Azure ネットワークが使用されるため、仮想ネットワーク境界を越えた通信でも顕著な待機時間のペナルティはありません。 仮想ネットワーク ピアリングは、すべてのリージョンのネットワーク間でサポートされますが (グローバル仮想ネットワーク ピアリング)、2020 年 9 月 22 日より前に作成されたサブネットでホストされているインスタンスは、そのリージョン内のピアリングのみをサポートします。

オンプレミスからの接続

お使いのオンプレミス アプリケーションを、SQL Managed Instance の VNet ローカル エンドポイントに接続できます。 オンプレミスからアクセスするには、アプリケーションと SQL Managed Instance 仮想ネットワークの間にサイト間接続を確立する必要があります。 マネージド インスタンスへのデータのみのアクセスで十分な場合は、パブリック エンドポイント経由で仮想ネットワークの外部から接続できます。詳細については、「Azure SQL Managed Instance のパブリック エンドポイントを構成する」を参照してください。

オンプレミスのアプリケーションを Azure 仮想ネットワークに接続するには、2 つのオプションがあります。

Azure へのオンプレミスの接続が確立されていて、SQL Managed Instance への接続を確立できない場合は、ファイアウォールでリダイレクト用に SQL ポート 1433 および範囲 11000-11999 のポート上に送信接続が開かれているかどうかを確認してください。

開発者ボックスを接続する

また、開発者ボックスを SQL Managed Instance に接続することもできます。 開発者ボックスから仮想ネットワーク経由でアクセスするには、まず開発者ボックスと SQL Managed Instance 仮想ネットワーク間を接続する必要があります。 これを行うには、ネイティブ Azure 証明書認証を使用した仮想ネットワークへのポイント対サイト接続を構成します。 詳細については、「オンプレミス コンピューターから Azure SQL Managed Instance に接続するようにポイント対サイト接続を構成する」を参照してください。

仮想ネットワークの外部からマネージド インスタンスにデータ アクセスするには、「Azure SQL Managed Instance のパブリック エンドポイントを構成する」を参照してください。

スポーク ネットワークに接続する

もう 1 つの一般的なシナリオは、VPN ゲートウェイが、SQL Managed Instance をホストしているもの ("ハブ ネットワーク") とは別の仮想ネットワーク (および、おそらくサブスクリプション) ("スポーク ネットワーク") にインストールされている場合です。 スポーク ネットワークからの SQL Managed Instance への接続は、「別の VNet 内から接続する」で示されているオプションのいずれかを使って構成します (プライベート エンドポイント、VNet ピアリング、または VNet 間ゲートウェイ)。

次のサンプル アーキテクチャの図では、VNet ピアリングを示します。

仮想ネットワーク ピアリングを示す図。

ハブとスポークのネットワークをピアリングしている場合は、VPN ゲートウェイでハブ ネットワークの IP アドレスを認識できることを確認します。 これを行うには、[Peering settings] (ピアリング設定) で次の変更を行います。

  1. VPN ゲートウェイをホストする仮想ネットワーク (スポーク ネットワーク) で [ピアリング] に移動し、SQL Managed Instance 用のピアリングされた仮想ネットワーク接続に移動して、[ゲートウェイ転送を許可する] を選びます。
  2. SQL Managed Instance をホストする仮想ネットワーク (ハブ ネットワーク) で、[ピアリング] に移動し、VPN ゲートウェイ用のピアリングされた仮想ネットワーク接続に移動して、[リモート ゲートウェイを使用する] を選びます。

Azure App Service の接続

Azure App Service によってホストされているアプリケーションが仮想ネットワークと統合されている場合は、それを接続することもできます。 これを行うには、「別の VNet 内から接続する」で示されているメカニズムのいずれかを選択します。 仮想ネットワークの外部からマネージド インスタンスにデータ アクセスするには、「Azure SQL Managed Instance のパブリック エンドポイントを構成する」を参照してください。

Azure App Service を SQL Managed Instance に接続する場合の特殊なケースとして、SQL Managed Instance 仮想ネットワークにピアリングされたネットワークに Azure App Service を統合しているケースが考えられます。 その場合は、次の構成をセットアップする必要があります。

  • SQL Managed Instance 仮想ネットワークにゲートウェイを設定することはできません
  • SQL Managed Instance 仮想ネットワークには、Use remote gateways オプションが設定されている必要があります
  • ピアリングされた仮想ネットワークには Allow gateway transit オプションが設定されている必要があります

次の図は、このシナリオを説明したものです。

統合アプリ ピアリングの図。

注意

仮想ネットワーク統合機能では、アプリと ExpressRoute ゲートウェイを持つ仮想ネットワークは統合されません。 ExpressRoute ゲートウェイが共存モードで構成されている場合であっても、仮想ネットワーク統合は機能しません。 ExpressRoute 接続を通してリソースにアクセスする必要がある場合は、仮想ネットワークで実行される App Service Environment を使用できます。

仮想ネットワーク経由の Azure App Service アクセスのトラブルシューティングについては、仮想ネットワークとアプリケーションのトラブルシューティングに関するセクションを確認してください。

接続の問題のトラブルシューティング

接続の問題をトラブルシューティングするには、次の点を確認してください。

  • 同じ仮想ネットワーク内であるが別のサブネット内の Azure 仮想マシンから SQL Managed Instance に接続できない場合は、アクセスをブロックしている可能性のある VM サブネットにネットワーク セキュリティ グループが設定されているかどうかを確認します。 さらに、SQL ポート 1433 と 11000 - 11999 の範囲のポート上で送信接続を開きます。これは、Azure の境界内でのリダイレクト経由の接続に必要なためです。

  • 仮想ネットワークと関連付けられているルート テーブルに対して、ゲートウェイ ルートの伝達が無効になっていることを確認します。

  • ポイント対サイト VPN を使っている場合は、Azure portal の構成にイングレスとエグレスの数が表示されることを確認します。 ゼロ以外の数は、Azure がトラフィックをオンプレミスからまたはオンプレミスにルーティングしていることを示します。

    Azure portal のイングレスとエグレスの数を示すスクリーンショット。

  • (VPN クライアントを実行している) クライアント コンピューターに、アクセスする必要のあるすべての仮想ネットワークのルート エントリがあることを確認します。 ルートは、%AppData%\Roaming\Microsoft\Network\Connections\Cm\<GUID>\routes.txt に格納されています。

    route.txt を示すスクリーンショット。

    この図のとおり、関連する各仮想ネットワーク用に 2 つのエントリと、ポータルで構成されている VPN エンドポイント用に 3 つ目のエントリがあります。

    ルートを確認するもう 1 つの方法は、次のコマンドの使用です。 出力からは、さまざまなサブネットへのルートが示されています。

    C:\ >route print -4
    ===========================================================================
    Interface List
    14...54 ee 75 67 6b 39 ......Intel(R) Ethernet Connection (3) I218-LM
    57...........................rndatavnet
    18...94 65 9c 7d e5 ce ......Intel(R) Dual Band Wireless-AC 7265
    1...........................Software Loopback Interface 1
    Adapter===========================================================================
    
    IPv4 Route Table
    ===========================================================================
    Active Routes:
    Network Destination        Netmask          Gateway       Interface  Metric
            0.0.0.0          0.0.0.0       10.83.72.1     10.83.74.112     35
           10.0.0.0    255.255.255.0         On-link       172.26.34.2     43
           10.4.0.0    255.255.255.0         On-link       172.26.34.2     43
    ===========================================================================
    Persistent Routes:
    None
    
  • 仮想ネットワーク ピアリングを使用している場合、ゲートウェイ転送を許可し、リモート ゲートウェイを使用する方法に関する設定の手順に必ず従ってください。

  • 仮想ネットワーク ピアリングを使用して Azure App Service ホスト アプリケーションに接続していて、SQL Managed Instance 仮想ネットワークにパブリック IP アドレス範囲がある場合は、ホストされるアプリケーションの設定で送信トラフィックをパブリック IP ネットワークにルーティングできるようにしてください。 「リージョンでの仮想ネットワーク統合」の手順に従います。

以前のバージョンでも動作する場合がありますが、次の表に、SQL Managed Instance に接続するためのツールとドライバーの推奨される最小バージョンを示します。

ドライバーとツール Version
.NET Framework 4.6.1 (または .NET Core)
ODBC ドライバー v17
PHP ドライバー 5.2.0
JDBC ドライバー 6.4.0
Node.js ドライバー 2.1.1
OLEDB ドライバー 18.0.2.0
SSMS 18.0 以降
SMO 150 以降