Подключение приложения к управляемому экземпляру базы данных SQL AzureConnect your application to Azure SQL Database managed instance

Сейчас вам доступно много вариантов для размещения приложений.Today you have multiple choices when deciding how and where you host your application.

Например, вы можете разместить приложение в облаке, используя Службу приложений Azure или любую службу виртуальных сетей Azure, например среду службы приложений Azure, виртуальные машины или масштабируемый набор виртуальных машин.You may choose to host application in the cloud either by using Azure App Service or some of Azure's virtual network (VNet) integrated options like Azure App Service Environment, Virtual Machine, Virtual Machine Scale Set. Также можно применить гибридную схему работы с облаком, оставляя приложения в локальной среде.You could also take hybrid cloud approach and keep your applications on-premises.

Независимо от выбранной схемы, вы можете подключить приложение к Управляемому экземпляру.Whatever choice you made, you can connect it to a Managed Instance.

Высокая доступность

Подключение приложений внутри одной виртуальной сетиConnect an application inside the same VNet

Это самый простой сценарий.This scenario is the simplest. Виртуальные машины внутри виртуальной сети могут свободно подключаться друг к другу напрямую, даже если находятся в разных подсетях.Virtual machines inside the VNet can connect to each other directly even if they are inside different subnets. Это означает, что для подключения приложений, размещенных в среде приложений Azure или на виртуальной машине, достаточно лишь настроить строку подключения.That means that all you need to connect application inside an Azure Application Environment or Virtual Machine is to set the connection string appropriately.

Подключение приложений из другой виртуальной сетиConnect an application inside a different VNet

Этот сценарий немного сложнее, поскольку Управляемый экземпляр получает частный IP-адрес, принадлежащий его виртуальной сети.This scenario is a bit more complex because Managed Instance has private IP address in its own VNet. Поэтому приложению для подключения нужно получить доступ к виртуальной сети, в которой развернут Управляемый экземпляр.To connect, an application needs access to the VNet where Managed Instance is deployed. Сначала необходимо создать подключение между приложением и виртуальной сетью Управляемого экземпляра.So, first you need to make a connection between the application and the Managed Instance VNet. Для этого сценария не обязательно размещать виртуальные сети в одной подписке.The VNets don’t have to be in the same subscription in order for this scenario to work.

Существует два варианта подключения виртуальных сетей.There are two options for connecting VNets:

Лучше использовать пиринговую связь, поскольку она использует магистральную сеть корпорации Майкрософт и не добавляет существенных задержек по сравнению с подключением виртуальных машин в одной виртуальной сети.The peering option is the preferable one because peering uses the Microsoft backbone network so, from the connectivity perspective, there is no noticeable difference in latency between virtual machines in peered VNet and in the same VNet. Пиринг виртуальной сети ограничен сетями в том же регионе.VNet peering is limited to the networks in the same region.

Важно!

Сценарий пиринга виртуальной сети для службы "Управляемый экземпляр" ограничен сетями в том же регионе из-за ограничений пиринга глобальной виртуальной сети.VNet peering scenario for Managed Instance is limited to the networks in the same region due to constraints of the Global Virtual Network peering. Дополнительные сведения см. в разделе, посвященном часто задаваемым вопросам о виртуальных сетях Azure .See also the relevant section of the Azure Virtual Networks Frequently Asked Questions article for more details.

Подключение локального приложенияConnect an on-premises application

Доступ к управляемому экземпляру возможен только по частному IP-адресу.Managed Instance can only be accessed through a private IP address. Чтобы обратиться к нему из локальной среды, необходимо установить подключение типа "сеть — сеть" между приложением и виртуальной сетью управляемого экземпляра.In order to access it from on-premises, you need to make a Site-to-Site connection between the application and the Managed Instance VNet.

Есть два способа подключить локальную сеть к виртуальной сети Azure.There are two options how to connect on-premises to Azure VNet:

Если локальное подключение к Azure установлено и вы не можете установить подключение к Управляемый экземпляр, проверьте, имеет ли брандмауэр открытое исходящее подключение через порт SQL 1433, а также диапазон портов 11000-11999 для перенаправления.If you've established on-premises to Azure connection successfully and you can't establish connection to Managed Instance, check if your firewall has open outbound connection on SQL port 1433 as well as 11000-11999 range of ports for redirection.

Подключение приложения через окно разработчикаConnect an application on the developers box

Доступ к Управляемому экземпляру возможен только по частному IP-адресу, а значит для доступа к нему из окна разработчика необходимо установить подключение между окном разработчика и виртуальной сетью Управляемого экземпляра.Managed Instance can be accessed only through a private IP address so in order to access it from your developer box, you first need to make a connection between your developer box and the Managed Instance VNet. Для этого настройте подключение "точка — сеть" к виртуальной сети с помощью собственной аутентификации Azure на основе сертификата.To do so, configure a Point-to-Site connection to a VNet using native Azure certificate authentication. Дополнительные сведения см. в статье Configure a point-to-site connection to connect to an Azure SQL Database Managed Instance from on-premises computer (Установка подключения "точка — сеть" к Управляемому экземпляру Базы данных SQL Azure из локального компьютера).For more information, see Configure a point-to-site connection to connect to an Azure SQL Database Managed Instance from on-premises computer.

Подключение из локальной сети с помощью пиринговой связи между виртуальными сетямиConnect from on-premises with VNet peering

Другой сценарий, реализуемый клиентами, заключается в том, что VPN-шлюз размещается в виртуальной сети и подписке, которые отличаются от используемых для Управляемого экземпляра.Another scenario implemented by customers is where VPN gateway is installed in a separate virtual network and a subscription from the one hosting Managed Instance. Затем между двумя виртуальными сетями устанавливается пиринговая связь.The two virtual networks are then peered. На следующей схеме примера архитектуры показано, как это можно реализовать.The following sample architecture diagram shows how this can be implemented.

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

После настройки базовой инфраструктуры необходимо изменить некоторые параметры, чтобы VPN-шлюз мог просматривать IP-адреса в виртуальной сети, где размещен Управляемый экземпляр.Once you have the basic infrastructure set up, you need to modify some setting so that the VPN Gateway can see the IP addresses in the virtual network that hosts the Managed Instance. Чтобы сделать это, внесите следующие изменения в разделе Параметры пиринга.To do so, make the following very specific changes under the Peering settings.

  1. В виртуальной сети, где размещен VPN-шлюз, перейдите в раздел Пиринги, а затем к пиринговому подключению к Управляемому экземпляру и нажмите кнопку Разрешить транзит шлюзов.In the VNet that hosts the VPN gateway, go to Peerings, then to the Managed Instance peered VNet connection, and then click Allow Gateway Transit.
  2. В виртуальной сети, где размещен Управляемый экземпляр, перейдите в раздел Пиринги, а затем к пиринговому подключению к Управляемому экземпляру и щелкните Use remote gateways (Использовать удаленные шлюзы).In the VNet that hosts the Managed Instance, go to Peerings, then to the VPN Gateway peered VNet connection, and then click Use remote gateways.

Подключение приложения, размещенного в службе приложений AzureConnect an Azure App Service hosted application

Доступ к Управляемому экземпляру возможен только по частному IP-адресу, а значит для доступа к нему из локальной среды необходимо установить подключение типа "сеть — сеть" между приложением и виртуальной сетью управляемого экземпляра.Managed Instance can be accessed only through a private IP address so in order to access it from Azure App Service you first need to make a connection between the application and the Managed Instance VNet. См. статью Интеграция приложения с виртуальной сетью Azure.See Integrate your app with an Azure Virtual Network.

Сведения об устранении неполадок вы найдете здесь.For troubleshooting, see Troubleshooting VNets and Applications. Если соединение не удается установить, изучите статью о синхронизации сетевой конфигурации.If a connection cannot be established, try synching the networking configuration.

В сценарии подключения службы приложений Azure к Управляемому экземпляру следует отдельно рассмотреть интеграцию службы приложений Azure с сетью, имеющую пиринговую связь с виртуальной сетью Управляемого экземпляра.A special case of connecting Azure App Service to Managed Instance is when you integrated Azure App Service to a network peered to Managed Instance VNet. В этом случае следует дополнительно настроить следующее.That case requires the following configuration to be set up:

  • Виртуальная сеть Управляемого экземпляра НЕ ДОЛЖНА иметь шлюз.Managed Instance VNet must NOT have gateway
  • Для виртуальной сети Управляемого экземпляра нужно настроить удаленные шлюзы.Managed Instance VNet must have Use remote gateways option set
  • Пиринговые виртуальные сети должны разрешать транзит шлюзов.Peered VNet must have Allow gateway transit option set

Этот вариант сценария показан на схеме ниже.This scenario is illustrated in the following diagram:

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

Примечание

Функция интеграции c виртуальной сетью не предусматривает интеграции приложения с виртуальной сетью, в которой установлен шлюз ExpressRoute.The VNet Integration feature does not integrate an app with a VNet that has an ExpressRoute Gateway. Даже если шлюз ExpressRoute настроен в режиме сосуществования, функция интеграции c виртуальной сетью работать не будет.Even if the ExpressRoute Gateway is configured in coexistence mode the VNet Integration does not work. Если требуется получить доступ к ресурсам через соединение ExpressRoute, можно использовать Среду службы приложений, которая работает в виртуальной сети.If you need to access resources through an ExpressRoute connection, then you can use an App Service Environment, which runs in your VNet.

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

Для устранения проблем с подключением просмотрите следующие сведения:For troubleshooting connectivity issues, review the following:

  • Если не удается подключиться к Управляемый экземпляр из виртуальной машины Azure в той же виртуальной сети, но другой подсеть, проверьте, установлен ли в подсети виртуальной машины набор групп безопасности сети, который может блокировать доступ. Кроме того, обратите внимание, что необходимо открыть исходящее подключение на порте SQL 1433, а также порты в диапазоне 11000-11999, так как они необходимы для подключения через перенаправление в границах Azure.If you are unable to connect to Managed Instance from an Azure virtual machine within the same VNet but different subnet, check if you have a Network Security Group set on VM subnet that might be blocking access.Additionally note that you need to open outbound connection on SQL port 1433 as well as ports in range 11000-11999 since those are needed for connecting via redirection inside the Azure boundary.

  • Убедитесь, что распространение BGP включено для таблицы маршрутов, которая связана с виртуальной сетью.Ensure that BGP Propagation is set to Enabled for the route table associated with the VNet.

  • Если используется VPN-подключение типа "точка — сеть", в конфигурации на портале Azure проверьте, отображаются ли числа для входящего и исходящего трафика.If using P2S VPN, check the configuration in the Azure portal to see if you see Ingress/Egress numbers. Ненулевые значения указывают, что Azure направляет трафик в локальную сеть и из нее.Non-zero numbers indicate that Azure is routing traffic to/from on-premises.

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

  • Убедитесь, что у клиентского компьютера (на котором запущен VPN-клиент) есть записи маршрутов для всех виртуальных сетей, к которым нужно получать доступ.Check that the client machine (that is running the VPN client) has route entries for all the VNets that you need to access. Маршруты хранятся в %AppData%\ Roaming\Microsoft\Network\Connections\Cm\<GUID>\routes.txt.The routes are stored in %AppData%\ Roaming\Microsoft\Network\Connections\Cm\<GUID>\routes.txt.

    route.txt

    Как показано на этом рисунке, существуют две записи для каждой используемой виртуальной сети и третья запись для конечной точки VPN, которая настроена на портале.As shown in this image, there are two entries for each VNet involved and a third entry for the VPN endpoint that is configured in the Portal.

    Другой способ проверить маршруты — с помощью следующей команды.Another way to check the routes is via the following command. В выходных данных отображаются маршруты к различным подсетям:The output shows the routes to the various subnets:

    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
    
  • Если используете пиринговую связь между виртуальными сетями, убедитесь, что вы следовали инструкциям по настройке разрешения транзитов шлюзов и использования удаленных шлюзов.If using VNet peering, ensure that you have followed the instructions for setting Allow Gateway Transit and Use Remote Gateways.

Необходимые версии драйверов и средствRequired versions of drivers and tools

Ниже приведены рекомендуемые минимальные версии средств и драйверов, необходимые, чтобы подключиться к Управляемому экземпляру.The following minimal versions of the tools and drivers are recommended if you want to connect to Managed Instance:

Драйвер или средствоDriver/tool Version (версия)Version
.NET Framework.NET Framework 4.6.1 (или .NET Core)4.6.1 (or .NET Core)
Драйвер ODBCODBC driver версия 17v17
Драйвер PHPPHP driver 5.2.05.2.0
Драйвер JDBCJDBC driver 6.4.06.4.0
Драйвер Node.jsNode.js driver 2.1.12.1.1
Драйвер OLEDBOLEDB driver 18.0.2.018.0.2.0
SSMSSSMS 18,0 или более поздней версии18.0 or higher
SMOSMO 150 или более поздней версии150 or higher

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