Azure SQL Managed Instance にアプリケーションを接続する
適用対象: Azure SQL Managed Instance
現在、アプリケーションをホストする方法や場所については、複数の選択肢があります。
Azure App Service か、または Azure の仮想ネットワーク統合オプション (Azure App Service Environment、Azure Virtual Machines、Virtual Machine Scale Sets など) を使用して、アプリケーションをクラウドでホストすることができます。 ハイブリッド クラウドのアプローチを使用して、アプリケーションをオンプレミスに維持することもできます。
どの方法を選択した場合でも、Azure SQL Managed Instance に接続することが可能です。
この記事では、さまざまなアプリケーション シナリオで仮想ネットワーク内からアプリケーションを 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 が自分自身の仮想ネットワーク内でプライベート IP アドレスを持つため、もう少し複雑になります。 接続するには、アプリケーションは SQL Managed Instance が配置されている仮想ネットワークにアクセスする必要があります。 そのため、アプリケーションと SQL Managed Instance 仮想ネットワーク間の接続を確立する必要があります。 このシナリオを機能させるために、各仮想ネットワークが同じサブスクリプションに属している必要はありません。
仮想ネットワークを接続するには、次の 2 つのオプションがあります。
- Azure VNet ピアリング
- VNet 間 VPN ゲートウェイ (Azure Portal、PowerShell、Azure CLI)
ピアリングでは Microsoft バックボーン ネットワークが使用されるため、接続性の観点から言えば、ピアリングされた仮想ネットワーク内の仮想マシンであっても、同じ仮想ネットワーク内の仮想マシンであっても、待機時間に顕著な違いはありません。そのため、ピアリングが推奨されます。 仮想ネットワーク ピアリングは、同じリージョン内のネットワーク間でサポートされます。 グローバル仮想ネットワーク ピアリングは、2020 年 9 月 22 日以降に作成されたサブネットでホストされているインスタンスでサポートされています。
オンプレミスからの接続
お使いのオンプレミス アプリケーションを、SQL Managed Instance の VNet ローカル エンドポイントに接続できます。 オンプレミスからアクセスするには、アプリケーションと SQL Managed Instance 仮想ネットワークの間にサイト間接続を確立する必要があります。 仮想ネットワークの外部からマネージド インスタンスにデータ アクセスするには、「Azure SQL Managed Instance のパブリック エンドポイントを構成する」を参照してください。
オンプレミスを Azure 仮想ネットワークに接続する方法には、次の 2 つのオプションがあります。
- サイト間 VPN 接続 (Azure portal、PowerShell、Azure CLI)
- Azure ExpressRoute 接続
オンプレミスから Azure への接続は正常に確立されているが、SQL Managed Instance への接続が確立できない場合は、ファイアウォールでリダイレクト用に SQL ポート 1433 および範囲 11000-11999 のポート上に送信接続が開かれているかどうかを確認してください。
開発者ボックスの接続
また、開発者ボックスを SQL Managed Instance に接続することもできます。 開発者ボックスから仮想ネットワーク経由でアクセスするには、まず開発者ボックスと SQL Managed Instance 仮想ネットワーク間を接続する必要があります。 これを行うには、ネイティブ Azure 証明書認証を使用した仮想ネットワークへのポイント対サイト接続を構成します。 詳細については、「オンプレミス コンピューターから Azure SQL Managed Instance に接続するようにポイント対サイト接続を構成する」を参照してください。
仮想ネットワークの外部からマネージド インスタンスにデータ アクセスするには、「Azure SQL Managed Instance のパブリック エンドポイントを構成する」を参照してください。
VNet ピアリングを使用しての接続
お客様によって行われるもう 1 つのシナリオに、SQL Managed Instance をホストしているのとは別の仮想ネットワークおよびサブスクリプションに VPN ゲートウェイがインストールされているという場合があります。 その後 2 つの仮想ネットワークはピアリングされます。 次のアーキテクチャ図では、これの実装例を示します。
基本のインフラストラクチャを構成したら、一部の設定を変更して、VPN ゲートウェイが SQL Managed Instance をホストする仮想ネットワークの IP アドレスを参照できるようにする必要があります。 これを行うには、 [Peering settings](ピアリング設定) の下で次の具体的な変更を実行します。
- VPN ゲートウェイをホストする仮想ネットワークで [ピアリング] に移動し、SQL Managed Instance 用のピアリングされた仮想ネットワーク接続に移動して、[ゲートウェイ転送を許可する] を選びます。
- SQL Managed Instance をホストする仮想ネットワークで、[ピアリング] に移動し、VPN ゲートウェイ用のピアリングされた仮想ネットワーク接続に移動して、[リモート ゲートウェイを使用する] を選びます。
Azure App Service の接続
Azure App Service によってホストされているアプリケーションを接続することもできます。 Azure App Service から仮想ネットワーク経由でアクセスするには、まずそのアプリケーションと SQL Managed Instance 仮想ネットワーク間を接続する必要があります。 「アプリを Azure 仮想ネットワークに統合する」を参照してください。 仮想ネットワークの外部からマネージド インスタンスにデータ アクセスするには、「Azure SQL Managed Instance のパブリック エンドポイントを構成する」を参照してください。
仮想ネットワーク経由の Azure App Service アクセスのトラブルシューティングについては、仮想ネットワークとアプリケーションのトラブルシューティングに関するセクションを参照してください。
Azure App Service を SQL Managed Instance に接続する場合の特殊なケースとして、SQL Managed Instance 仮想ネットワークにピアリングされたネットワークに Azure App Service を統合しているケースが考えられます。 その場合は、次の構成をセットアップする必要があります。
- SQL Managed Instance 仮想ネットワークにゲートウェイを設定することはできません
- SQL Managed Instance 仮想ネットワークには、
Use remote gateways
オプションが設定されている必要があります - ピアリングされた仮想ネットワークには
Allow gateway transit
オプションが設定されている必要があります
次の図は、このシナリオを説明したものです。
Note
仮想ネットワーク統合機能では、アプリと ExpressRoute ゲートウェイを持つ仮想ネットワークは統合されません。 ExpressRoute ゲートウェイが共存モードで構成されている場合であっても、仮想ネットワーク統合は機能しません。 ExpressRoute 接続を通してリソースにアクセスする必要がある場合は、仮想ネットワークで実行される App Service Environment を使用できます。
接続の問題のトラブルシューティング
接続の問題のトラブルシューティングには、次を参照してください。
同じ仮想ネットワーク内であるが別のサブネット内の Azure 仮想マシンから SQL Managed Instance に接続できない場合は、アクセスをブロックしている可能性のある VM サブネットにネットワーク セキュリティ グループが設定されているかどうかを確認します。 さらに、SQL ポート 1433 と 11000-11999 の範囲のポート上で送信接続を開きます。これは、Azure の境界内でのリダイレクト経由の接続に必要なためです。
仮想ネットワークと関連付けられているルート テーブルで、BGP 伝達が [有効] に設定されていることを確認します。
P2S VPN を使用している場合、Azure portal の構成にイングレスとエグレスの数が表示されることを確認します。 ゼロ以外の数であるということは、Azure がトラフィックをオンプレミスからまたはオンプレミスにルーティングしていることを示します。
(VPN クライアントを実行している) クライアント コンピューターに、アクセスする必要のあるすべての仮想ネットワークのルート エントリがあることを確認します。 ルートは、
%AppData%\Roaming\Microsoft\Network\Connections\Cm\<GUID>\routes.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 以降 |
次のステップ
- SQL Managed Instance については、SQL Managed Instance の概要に関する記事を参照してください。
- 新しいマネージド インスタンスの作成方法を紹介するチュートリアルが必要な場合、マネージド インスタンスの作成に関するページを参照してください。