Поделиться через


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вы можете подключить ваше локальное приложение на локальном сервере к локальной конечной точке VNet вашего управляемого экземпляра SQL. Чтобы получить к нему доступ из локальной среды, необходимо установить подключение типа "site-to-site" между приложением и виртуальной сетью управляемого экземпляра 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 из периферийной сети настраивается с помощью одного из вариантов, перечисленных в разделе Connect из другой виртуальной сети: частные конечные точки, пиринг виртуальной сети или шлюз виртуальной сети в виртуальную сеть.

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

Диаграмма, демонстрирующая пиринг виртуальной сети.

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

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

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

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

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

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

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

Схема интегрированного пиринга приложений.

Примечание.

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

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

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

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

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

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

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

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