Connettere un'applicazione a Istanza gestita di database SQL di AzureConnect your application to Azure SQL Database Managed Instance

Ora sono disponibili diverse possibilità quando si decide come e dove ospitare un'applicazione.Today you have multiple choices when deciding how and where you host your application.

È possibile scegliere di ospitare un'applicazione nel cloud tramite il servizio app di Azure o alcune delle opzioni integrate nella rete virtuale di Azure come l'ambiente del servizio app di Azure, la macchina virtuale, il set di scalabilità di macchine virtuali.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. È anche possibile scegliere un approccio cloud ibrido e mantenere le applicazioni in locale.You could also take hybrid cloud approach and keep your applications on-premises.

Indipendentemente dalla scelta effettuata, è possibile collegarla a un'istanza gestita.Whatever choice you made, you can connect it to a Managed Instance.

disponibilità elevata

Connettere un'applicazione all'interno della stessa rete virtualeConnect an application inside the same VNet

Questo è lo scenario più semplice.This scenario is the simplest. Le macchine virtuali all'interno della rete virtuale possono connettersi tra loro direttamente anche se si trovano in subnet diverse.Virtual machines inside the VNet can connect to each other directly even if they are inside different subnets. Ciò significa che per la connessione dell'applicazione all'interno di un ambiente di applicazione o macchina virtuale di Azure è sufficiente impostare la stringa di connessione in modo appropriato.That means that all you need to connect application inside an Azure Application Environment or Virtual Machine is to set the connection string appropriately.

Connettere un'applicazione all'interno di una rete virtuale diversaConnect an application inside a different VNet

Questo scenario è un po' più complesso perché l'istanza gestita ha un indirizzo IP privato nella propria rete virtuale.This scenario is a bit more complex because Managed Instance has private IP address in its own VNet. Per connettersi, un'applicazione richiede l'accesso alla rete virtuale in cui viene distribuita l'istanza gestita.To connect, an application needs access to the VNet where Managed Instance is deployed. Quindi è necessario innanzitutto stabilire una connessione tra l'applicazione e la rete virtuale dell'istanza gestita.So, first you need to make a connection between the application and the Managed Instance VNet. Non è necessario che le reti virtuali si trovino nella stessa sottoscrizione perché questo scenario funzioni.The VNets don’t have to be in the same subscription in order for this scenario to work.

Sono disponibili due opzioni per connettere reti virtuali:There are two options for connecting VNets:

L'opzione di peering è quella preferibile perché il peering usa il backbone Microsoft e quindi, dal punto di vista della connettività non vi è alcuna differenza percepibile nella latenza tra le macchine virtuali nelle reti virtuali con peering e nella stessa rete virtuale.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. Il peering di reti virtuali è limitato alle reti nella stessa area.VNet peering is limited to the networks in the same region.

Importante

Lo scenario di peering di reti virtuali per Istanza gestita è limitato alle reti nella stessa area a causa dei vincoli del peering di reti virtuali globale.VNet peering scenario for Managed Instance is limited to the networks in the same region due to constraints of the Global Virtual Network peering. Vedere anche la relativa sezione del Azure Virtual Networks Frequently Asked Questions per altri dettagli vedere l'articolo.See also the relevant section of the Azure Virtual Networks Frequently Asked Questions article for more details.

Connettersi a un'applicazione localeConnect an on-premises application

Istanza gestita è accessibile solo tramite un indirizzo IP privato.Managed Instance can only be accessed through a private IP address. Per accedere all'istanza in locale, è necessario stabilire una connessione da sito a sito tra l'applicazione e la rete virtuale dell'istanza gestita.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.

Sono disponibili due opzioni per connettersi in locale alla rete virtuale di Azure:There are two options how to connect on-premises to Azure VNet:

Se configurato correttamente in locale alla connessione di Azure e non è possibile stabilire una connessione all'istanza gestita, verificare se il firewall ha aperto la connessione in uscita nella porta SQL 1433 oltre 11000-11999 intervallo di porte per il reindirizzamento.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.

Connettere un'applicazione nella finestra di sviluppoConnect an application on the developers box

Le istanze gestite sono accessibili solo tramite un indirizzo IP privato, quindi, per accedervi dalla finestra di sviluppo, è necessario prima stabilire una connessione tra la finestra di sviluppo e la rete virtuale dell'istanza gestita.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. Per eseguire questa operazione, configurare una connessione da punto a sito a una rete virtuale usando l'autenticazione del certificato di Azure nativo.To do so, configure a Point-to-Site connection to a VNet using native Azure certificate authentication. Per maggiori informazioni, vedere Configurare una connessione da punto a sito per una connessione a un'Istanza gestita di database SQL di Azure da computer locale.For more information, see Configure a point-to-site connection to connect to an Azure SQL Database Managed Instance from on-premises computer.

Connettersi in locale con il peering reti virtualiConnect from on-premises with VNet peering

Un altro scenario implementato dai clienti è quello in cui il gateway VPN è installato in una rete virtuale e una sottoscrizione separata da quelle che ospitano Istanza gestita.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. Sulle due reti virtuali viene quindi eseguito il peering.The two virtual networks are then peered. Il seguente esempio di diagramma di architettura mostra come questo può essere implementato.The following sample architecture diagram shows how this can be implemented.

Peering reti virtuali

Una volta configurata l'infrastruttura di base, è necessario modificare alcune impostazioni in modo che il gateway VPN possa vedere gli indirizzi IP nella rete virtuale che ospita l'istanza gestita.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. Per fare ciò, apportare le seguenti modifiche molto specifiche in Impostazioni di peering.To do so, make the following very specific changes under the Peering settings.

  1. Nella rete che ospita il gateway VPN, accedere a Peering, quindi alla connessione VNet con peering di Istanza gestita, quindi fare clic su Consenti transito gateway.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. Nella rete che ospita Istanza gestita, accedere a Peering, quindi alla connessione VNet con peering del gateway VPN gestita, quindi fare clic su Usa gateway remoti.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.

Connettere un'applicazione ospitata nel servizio app di AzureConnect an Azure App Service hosted application

Istanza gestita è accessibile solo tramite un indirizzo IP privato, quindi, per accedervi dal servizio app di Azure, è necessario prima stabilire una connessione tra l'applicazione e la rete virtuale dell'istanza gestita.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. Vedere Integrazione di un'app in una rete virtuale di Azure.See Integrate your app with an Azure Virtual Network.

Per risolvere il problema, vedere la risoluzione dei problemi delle reti virtuali.For troubleshooting, see Troubleshooting VNets and Applications. Se è possibile stabilire una connessione, provare a sincronizzare la configurazione di rete.If a connection cannot be established, try synching the networking configuration.

Un caso speciale di connessione del servizio app di Azure a Istanza gestita è quando il servizio app di Azure è stato integrato in una rete con il peering della rete virtuale dell'istanza gestita.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. Tale caso richiede la configurazione seguente:That case requires the following configuration to be set up:

  • La rete virtuale dell'istanza gestita NON deve avere gatewayManaged Instance VNet must NOT have gateway
  • La rete virtuale dell'istanza gestita deve avere l'opzione Uso gateway remoto impostataManaged Instance VNet must have Use remote gateways option set
  • La rete virtuale con peering deve avere l'opzione Consenti transito gateway impostataPeered VNet must have Allow gateway transit option set

Questo scenario è illustrato nel diagramma seguente:This scenario is illustrated in the following diagram:

peering app integrate

Nota

La funzionalità Integrazione rete virtuale non consente l'integrazione di un'app con una rete virtuale dotata di un gateway ExpressRoute.The VNet Integration feature does not integrate an app with a VNet that has an ExpressRoute Gateway. Anche se il gateway ExpressRoute è configurato in modalità di coesistenza, l'integrazione rete virtuale non funziona.Even if the ExpressRoute Gateway is configured in coexistence mode the VNet Integration does not work. Se è necessario accedere alle risorse tramite una connessione ExpressRoute, è possibile usare un ambiente del servizio app eseguito nella rete virtuale.If you need to access resources through an ExpressRoute connection, then you can use an App Service Environment, which runs in your VNet.

Risoluzione dei problemi di connettivitàTroubleshooting connectivity issues

Per la risoluzione dei problemi di connettività, verificare quanto segue:For troubleshooting connectivity issues, review the following:

  • Se non si riesce a connettersi all'istanza gestita da una macchina virtuale di Azure entro la stessa rete virtuale ma una subnet diversa, controllare se si dispone di un gruppo di sicurezza di rete impostato nella subnet VM che potrebbero bloccare l'accesso. Si noti inoltre che è necessario aprire connessioni in uscita nella porta SQL 1433 oltre alle porte nell'intervallo 11000-11999 poiché questi sono necessari per la connessione mediante il reindirizzamento all'interno del limite di 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.

  • Assicurarsi che la propagazione BGP sia impostata su Abilitata per la tabella di route associata alla rete virtuale.Ensure that BGP Propagation is set to Enabled for the route table associated with the VNet.

  • Se si utilizza la VPN P2S, controllare la configurazione nel portale Azure per vedere se si vedono i numeri Ingresso/Uscita.If using P2S VPN, check the configuration in the Azure portal to see if you see Ingress/Egress numbers. I numeri diversi da zero indicano che Azure indirizza il traffico da/per un’istanza locale.Non-zero numbers indicate that Azure is routing traffic to/from on-premises.

    Numeri in ingresso/in uscita

  • Verificare che il computer client (che sta eseguendo il client VPN) disponga di voci di route per tutte le reti virtuali a cui è necessario accedere.Check that the client machine (that is running the VPN client) has route entries for all the VNets that you need to access. Le route vengono archiviate in %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

    Come mostrato in questa immagine, ci sono due voci per ogni VNet coinvolta e una terza voce per l'endpoint VPN configurato nel portale.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.

    Un altro modo per verificare le route è tramite il comando seguente.Another way to check the routes is via the following command. L'output mostra le route verso subnet diverse: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
    
  • Se si usa il peering della Vnet, assicurarsi di aver seguito le istruzioni per l'impostazione di Consenti transito Gateway e Usa gateway remoti.If using VNet peering, ensure that you have followed the instructions for setting Allow Gateway Transit and Use Remote Gateways.

Versioni richieste di strumenti e driverRequired versions of drivers and tools

Se si desidera connettersi all'istanza gestita, è consigliabili usare le versioni minime di strumenti e driver seguenti:The following minimal versions of the tools and drivers are recommended if you want to connect to Managed Instance:

Driver/strumentoDriver/tool VersionVersion
.NET Framework.NET Framework 4.6.1 (o .NET Core)4.6.1 (or .NET Core)
Driver ODBCODBC driver v17v17
PHP driverPHP driver 5.2.05.2.0
Driver JDBCJDBC driver 6.4.06.4.0
Driver Node.jsNode.js driver 2.1.12.1.1
Driver OLEDBOLEDB driver 18.0.2.018.0.2.0
SSMSSSMS versioni 18.0 o superiore18.0 or higher
SMOSMO 150 o versione successiva150 or higher

Passaggi successiviNext steps