次の方法で共有


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、仮想マシン スケール セットなどです。 ハイブリッド ("混合") クラウドのアプローチを使用して、アプリケーションをオンプレミスに維持することもできます。 どのような選択をしても、アプリケーションは、Azure 仮想ネットワーク内または Azure 仮想ネットワーク間のさまざまなアプリケーション シナリオで Azure SQL Managed Instance に接続できます。

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

高可用性を示す図。

同じ仮想ネットワーク内から接続する

SQL Managed Instance と同じ仮想ネットワーク内のアプリケーションを接続するのは、最も簡単なシナリオです。 同じ仮想ネットワーク内の仮想マシンは、それらが異なるサブネット内にあっても、直接相互接続できます。 つまり、App Service Environment 内のアプリケーションまたは SQL Managed Instance と同じ仮想ネットワークにデプロイされた仮想マシンを接続するには、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 仮想ネットワークの間にサイト間接続を確立する必要があります。 SQL マネージド インスタンスへのデータのみのアクセスで十分な場合は、パブリック エンドポイント経由で仮想ネットワークの外部から接続できます。詳細については、「 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 に接続するようにポイント対サイト接続を構成する」を参照してください。

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

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

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

次のアーキテクチャのサンプル図は、仮想ネットワーク ピアリングを示しています。

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

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

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

Azure App Service の接続

Azure App Service によってホストされているアプリケーションが仮想ネットワークと統合されている場合は、それを接続することもできます。 これを行うには、「接続」に一覧表示されているメカニズムの 1 つ を、別の仮想ネットワーク内から選択します。 仮想ネットワークの外部から SQL マネージド インスタンスへのデータ アクセスについては、「 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 に接続できない場合。 アクセスをブロックしている可能性がある仮想マシンのサブネットにネットワーク セキュリティ グループ (NSG) が設定されているかどうかを確認します。 さらに、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 以降