Connect your application to Azure SQL Managed Instance (Подключение приложения к управляемому экземпляру SQL Azure)

Применимо к:Управляемый экземпляр SQL Azure

В этой статье описывается, как подключить приложение к Управляемый экземпляр SQL Azure в нескольких сценариях приложений внутри или между виртуальными сетями Azure.

Сейчас вам доступно много вариантов для размещения приложений. Вы можете разместить приложение в облаке с помощью службы приложение Azure или некоторых интегрированных параметров виртуальной сети Azure, таких как приложение Azure среда службы, azure Виртуальные машины и Масштабируемые наборы виртуальных машин. Вы также можете использовать гибридный (смешанный) облачный подход и хранить приложения в локальной среде. Независимо от того, что вы выбрали, приложение может подключаться к Управляемый экземпляр SQL Azure в нескольких различных сценариях приложений внутри или между виртуальными сетями Azure.

Вы также можете включить доступ к данным управляемому экземпляру извне виртуальной сети, например из нескольких служб Azure, таких как Power BI и приложение Azure Service, или из локальной сети, не подключенной к виртуальным сетям через VPN. Чтобы выполнить эти и аналогичные сценарии, см. инструкции по настройке общедоступной конечной точки в Управляемый экземпляр SQL Azure.

High availability

Подключение из одной виртуальной сети

Самый простой сценарий — подключение приложения в той же виртуальной сети, что и управляемый экземпляр SQL. Виртуальные машины внутри виртуальной сети могут подключаться друг к другу напрямую, даже если они в разных подсетях. Это означает, что для подключения приложения внутри Среда службы приложений или виртуальной машины, развернутой в той же виртуальной сети, что и Управляемый экземпляр SQL, необходимо настроить строка подключения для целевой конечной точки виртуальной сети.

Подключение из другой виртуальной сети

Подключение приложения, если оно находится в виртуальной сети, отличной от Управляемый экземпляр SQL, требует, чтобы приложение впервые получает доступ к виртуальной сети, в которой развернуты Управляемый экземпляр SQL или в Управляемый экземпляр SQL себя. Две виртуальные сети не должны находиться в одной подписке.

Существует три варианта подключения к Управляемый экземпляр SQL в другой виртуальной сети:

Из трех частных конечных точек является наиболее безопасным и экономичным вариантом, так как они:

  • предоставляет только Управляемый экземпляр SQL из своей виртуальной сети.
  • разрешить только односторонняя связь.
  • требуется только один IP-адрес в виртуальной сети приложения.

Если частные конечные точки не могут полностью соответствовать требованиям вашего сценария, рассмотрите возможность пиринга виртуальной сети. Пиринг использует магистральную сеть Azure, поэтому нет заметной задержки для обмена данными через границы виртуальной сети. Пиринг виртуальных сетей поддерживается между сетями во всех регионах (пиринг глобальной виртуальной сети), а экземпляры, размещенные в подсетях, созданных до 22 сентября 2020 г., поддерживают только пиринг в пределах региона.

Подключение из локального расположения

Локальное приложение можно подключить к локальной конечной точке виртуальной сети Управляемый экземпляр SQL. Чтобы обратиться к нему из локальной среды, необходимо установить подключение типа "сеть — сеть" между приложением и виртуальной сетью управляемого экземпляра. Если доступ к управляемому экземпляру доступен только для данных, вы можете подключиться к нему извне виртуальной сети через общедоступную конечную точку. Просмотрите сведения о настройке общедоступной конечной точки в Управляемый экземпляр SQL Azure.

Существует два варианта подключения локального приложения к виртуальной сети Azure:

Если вы установили локальное подключение к Azure и не можете установить подключение к Управляемый экземпляр SQL, проверка, если брандмауэр имеет открытое исходящее подключение к порту SQL 1433, а также диапазон портов 11000-11999 для перенаправления.

Подключение поле разработчика

Кроме того, можно подключить поле разработчика к Управляемый экземпляр SQL. Чтобы получить доступ к нему из поля разработчика через виртуальную сеть, сначала необходимо установить подключение между полем разработчика и виртуальной сетью Управляемый экземпляр SQL. Для этого настройте подключение "точка — сеть" к виртуальной сети с помощью собственной аутентификации Azure на основе сертификата. Дополнительные сведения см. в статье Configure a point-to-site connection to connect to an Azure SQL Database Managed Instance from on-premises computer (Установка подключения "точка — сеть" к Управляемому экземпляру Базы данных SQL Azure из локального компьютера).

Сведения о том, как получить доступ к данным в вашем управляемом экземпляре извне виртуальной сети, см. в статье Настройка общедоступной конечной точки в Управляемом экземпляре SQL Azure.

Подключение в периферийную сеть

Другой распространенный сценарий заключается в том, что VPN-шлюз устанавливается в отдельной виртуальной сети (и, возможно, подписке) — от одной размещенной Управляемый экземпляр SQL (центральной сети). Подключение чувствительность к Управляемый экземпляр SQL из периферийной сети настраивается с помощью одного из вариантов, перечисленных в Подключение из другой виртуальной сети: частных конечных точек, пиринга виртуальной сети или шлюза виртуальной сети к виртуальной сети.

На следующей схеме архитектуры показан пиринг виртуальной сети:

Diagram showing Virtual network peering.

Если вы пиринговая сеть и периферийные сети, убедитесь, что VPN-шлюз видит IP-адреса из центральной сети. Для этого внесите следующие изменения в параметры пиринга:

  1. В виртуальной сети, где размещен VPN-шлюз (периферийная сеть), перейдите в пиринги, перейдите к одноранговой виртуальной сети для Управляемый экземпляр SQL и выберите "Разрешить транзит шлюза".
  2. В виртуальной сети, где размещены Управляемый экземпляр SQL (сеть концентратора), перейдите в пиринги, перейдите к одноранговой виртуальной сети для VPN-шлюза и выберите "Использовать удаленные шлюзы".

Подключение службы приложений Azure App Service

Вы также можете подключить приложение, размещенное службой приложение Azure, при интеграции с виртуальной сетью. Для этого выберите один из механизмов, перечисленных в Подключение из другой виртуальной сети. Сведения о доступе к управляемому экземпляру извне виртуальной сети см. в разделе "Настройка общедоступной конечной точки в Управляемый экземпляр SQL Azure".

Особый случай подключения службы приложение Azure к Управляемый экземпляр SQL заключается в интеграции службы приложение Azure со сетью, подключенной к виртуальной сети Управляемый экземпляр SQL. В этом случае следует дополнительно настроить следующее.

  • Виртуальная сеть SQL Managed Instance НЕ должна иметь шлюза
  • Для виртуальной сети SQL Managed Instance должен быть установлен параметр Use remote gateways
  • Для одноранговой виртуальной сети должен быть установлен параметр Allow gateway transit

Этот вариант сценария показан на схеме ниже.

Diagram for integrated app peering.

Примечание.

Функция интеграции виртуальной сети не интегрирует приложение с виртуальной сетью, имеющей шлюз ExpressRoute. Даже если шлюз ExpressRoute настроен в режиме сосуществования, функция интеграции c виртуальной сетью работать не будет. Если требуется получить доступ к ресурсам через соединение ExpressRoute, можно использовать Среду службы приложений, которая работает в виртуальной сети.

Чтобы устранить неполадки приложение Azure доступ к службе через виртуальную сеть, просмотрите сведения об устранении неполадок виртуальных сетей и приложений.

Устранение неполадок с подключением

Чтобы устранить проблемы с подключением, ознакомьтесь со следующими статьями:

  • Если вы не можете подключиться к Управляемый экземпляр SQL из виртуальной машины Azure в одной виртуальной сети, но другой подсети, проверка если у вас есть группа безопасности сети, настроенная в подсети виртуальной машины, которая может блокировать доступ. Кроме того, откройте исходящее подключение через порт SQL 1433, а также порты в диапазоне 11000–11999, так как они необходимы для подключения через перенаправление внутри границы Azure.

  • Убедитесь, что распространение маршрутов шлюза отключено для таблицы маршрутов, связанной с виртуальной сетью.

  • При использовании VPN типа "точка — сеть" проверка конфигурацию в портал Azure, чтобы узнать, отображаются ли номера входящего трафика или исходящего трафика. Номера, отличные от нуля, указывают на то, что Azure направляет трафик в локальную среду или из нее.

    Screenshot showing ingress/egress numbers in the Azure portal.

  • Убедитесь, что у клиентского компьютера (на котором запущен VPN-клиент) есть записи маршрутов для всех виртуальных сетей, к которым нужно получать доступ. Маршруты хранятся в %AppData%\Roaming\Microsoft\Network\Connections\Cm\<GUID>\routes.txt.

    Screenshot showing the route.txt.

    Как показано на этом рисунке, существуют две записи для каждой используемой виртуальной сети и третья запись для конечной точки VPN, которая настроена на портале.

    Другой способ проверить маршруты — с помощью следующей команды. В выходных данных отображаются маршруты к различным подсетям:

    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 используется пиринг виртуальной сети, а у виртуальной сети SQL Managed Instance есть диапазон общедоступных IP-адресов, убедитесь, что параметры размещенного приложения позволяют маршрутизировать исходящий трафик на общедоступные IP-адреса. Следуйте инструкциям в статье Интеграция с региональными виртуальными сетями.

Хотя старые версии могут работать, в следующей таблице перечислены рекомендуемые минимальные версии средств и драйверов для подключения к Управляемый экземпляр SQL:

Драйвер или средство Версия
.NET Framework 4.6.1 (или .NET Core)
Драйвер ODBC версия 17
Драйвер PHP 5.2.0
Драйвер JDBC 6.4.0
Драйвер Node.js 2.1.1
Драйвер OLEDB 18.0.2.0
SSMS 18.0 или более поздней версии
SMO 150 или более поздней версии

Следующие шаги