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

Область применения: Управляемый экземпляр SQL Azure

Сейчас вам доступно много вариантов для размещения приложений.

Вы можете разместить приложение в облаке с помощью Служба приложений Azure или некоторых интегрированных параметров виртуальной сети Azure, таких как среда Служба приложений Azure, Azure Виртуальные машины и Масштабируемые наборы виртуальных машин. Также можно применить гибридную схему работы с облаком, оставляя приложения в локальной среде.

Независимо от выбранной схемы, вы можете подключить приложение к SQL Managed Instance.

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

Важно!

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

Высокий уровень доступности

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

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

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

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

Существует два варианта подключения виртуальных сетей.

Лучше использовать пиринговую связь, поскольку она использует магистральную сеть корпорации Майкрософт и не добавляет существенных задержек по сравнению с подключением виртуальных машин в одной виртуальной сети. Пиринг виртуальных сетей поддерживается между сетями в одном регионе. Глобальный пиринг виртуальных сетей поддерживается для экземпляров, размещенных в подсетях, созданных с 22.09.2020 г.

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

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

Есть два способа подключить локальную сеть к виртуальной сети Azure.

Если подключение к Azure из локальной среды установлено успешно, но вам не удается подключиться к Управляемому экземпляру, проверьте правила брандмауэра: исходящее подключение на порт SQL 1433, а также к диапазону портов 11 000–11 999 для перенаправления.

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

Можно также подключить к SQL Managed Instance поле разработчика. Для доступа к нему из поля разработчика через виртуальную сеть необходимо установить подключение между полем разработчика и виртуальной сетью Управляемого экземпляра 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 Managed Instance. Затем между двумя виртуальными сетями устанавливается пиринговая связь. На следующей схеме примера архитектуры показано, как это можно реализовать.

Пиринг между виртуальными сетями

После настройки базовой инфраструктуры необходимо изменить некоторые параметры, чтобы VPN-шлюз мог просматривать IP-адреса в виртуальной сети, где размещен SQL Managed Instance. Чтобы сделать это, внесите следующие изменения в разделе Параметры пиринга.

  1. В виртуальной сети, в которой размещен VPN-шлюз, перейдите к разделу Peerings, перейдите к подключению к виртуальной сети для управляемый экземпляр SQL, а затем выберите Разрешить транзит шлюза (Allow Gateway Transit) .
  2. В виртуальной сети, в которой размещен Управляемый экземпляр SQL, перейдите к разделу Peerings, перейдите к подключению к виртуальной сети VPN-шлюза, а затем выберите Использовать удаленные шлюзы (Use remote gateways) .

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

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

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

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

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

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

Пиринговая связь с интеграцией приложения

Примечание

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

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

Для устранения проблем с подключением просмотрите следующие сведения:

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

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

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

    Число передаваемых байт для входящих и исходящих подключений

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

    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 Managed Instance.

Драйвер или средство Версия
.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 или более поздней версии

Дальнейшие действия