Connettere l'applicazione a un'istanza gestita di SQL di Azure

Si applica a: Istanza gestita di SQL di Azure

Ora sono disponibili diverse possibilità quando si decide come e dove ospitare un'applicazione.

È possibile scegliere di ospitare l'applicazione nel cloud usando Servizio app di Azure o alcune opzioni integrate della rete virtuale di Azure, ad esempio ambiente Servizio app di Azure, azure Macchine virtuali e set di scalabilità di macchine virtuali. È anche possibile scegliere un approccio cloud ibrido e mantenere le applicazioni in locale.

Indipendentemente dalla scelta effettuata, è possibile connetterlo a Istanza gestita di SQL di Azure.

Questo articolo descrive come connettere un'applicazione a Istanza gestita di SQL di Azure in diversi scenari di applicazione dall'interno della rete virtuale.

Importante

È anche possibile abilitare l'accesso ai dati all'istanza gestita dall'esterno di una rete virtuale. È possibile accedere all'istanza gestita da servizi di Azure multi-tenant come Power BI, Servizio app di Azure o una rete locale non connessa a una VPN usando l'endpoint pubblico in un'istanza gestita. Sarà necessario abilitare l'endpoint pubblico nell'istanza gestita e consentire il traffico degli endpoint pubblici nel gruppo di sicurezza di rete associato alla subnet dell'istanza gestita. Vedere altri dettagli importanti su Configurare l'endpoint pubblico in Istanza gestita di SQL di Azure.

Disponibilità elevata

Connettersi all'interno della stessa rete virtuale

La connessione di un'applicazione nella stessa rete virtuale di Istanza gestita di SQL è lo scenario più semplice. Le macchine virtuali all'interno della rete virtuale possono connettersi tra loro direttamente anche se si trovano in subnet diverse. Ciò significa che per la connessione dell'applicazione all'interno di un ambiente del servizio app o in una macchina virtuale è sufficiente impostare la stringa di connessione in modo appropriato.

Connettersi all'interno di una rete virtuale diversa

La connessione di un'applicazione quando si trova all'interno di una rete virtuale diversa da Istanza gestita di SQL è un po' più complessa perché nella rete virtuale di Istanza gestita di SQL ci sono indirizzi IP privati. Per connettersi, un'applicazione ha bisogno dell'accesso alla rete virtuale in cui viene distribuita Istanza gestita di SQL. Quindi è necessario stabilire una connessione tra l'applicazione e la rete virtuale di Istanza gestita di SQL. Non è necessario che le reti virtuali si trovino nella stessa sottoscrizione perché questo scenario funzioni.

Per connettere le reti virtuali esistono due opzioni:

Il peering è preferibile perché usa la rete backbone Microsoft, quindi dal punto di vista della connettività non esiste alcuna differenza evidente nella latenza tra le macchine virtuali in una rete virtuale con peering e nella stessa rete virtuale. Il peering di rete virtuale è supportato tra le reti nella stessa area. Il peering di rete virtuale globale è supportato anche con la limitazione descritta nella nota seguente.

Importante

Il 22/09/2020 è stato annunciato il supporto per il peering di rete virtuale globale per i cluster virtuali appena creati. Ciò significa che il peering di reti virtuali globale è supportato per le Istanze gestite di SQL create nelle subnet vuote dopo la data di annuncio, nonché per tutte le istanze gestite successivamente create in tali subnet. Per tutte le altre istanze gestite da SQL il supporto del peering è limitato alle reti nella stessa area a causa dei vincoli del peering di rete virtuale globale. Per altre informazioni dettagliate, vedere anche la sezione pertinente dell'articolo Domande frequenti sulle reti virtuali di Azure. Per poter usare il peering di rete virtuale globale per le istanze gestite di SQL dai cluster virtuali creati prima della data di annuncio, valutare la possibilità di configurare la finestra di manutenzione nelle istanze, in quanto le istanze verranno spostate in nuovi cluster virtuali che supportano il peering di rete virtuale globale.

Connettersi da locale

È anche possibile connettere l'applicazione locale a Istanza gestita di SQL tramite rete virtuale (indirizzo IP privato). Per accedervi dall'ambiente locale, è necessario stabilire una connessione da sito a sito tra l'applicazione e la rete virtuale Istanza gestita di SQL. Per l'accesso ai dati all'istanza gestita dall'esterno di una rete virtuale, vedere Configurare l'endpoint pubblico in Istanza gestita di SQL di Azure.

Sono disponibili due opzioni per connettersi in locale a una rete virtuale di Azure:

Se è stata stabilita una connessione dall'ambiente locale ad Azure e non è possibile stabilire una connessione all'istanza gestita di SQL, controllare se il firewall ha la connessione in uscita aperta sulla porta SQL 1433 e sull'intervallo di porte 11000 11999 per il reindirizzamento.

Connettere la casella per sviluppatori

È anche possibile connettere la casella di sviluppo a Istanza gestita di SQL. Per accedervi dalla casella di sviluppo tramite la rete virtuale, è prima necessario stabilire una connessione tra la casella di sviluppo e la rete virtuale Istanza gestita di SQL. A tale scopo, configurare una connessione da punto a sito a una rete virtuale usando l'autenticazione nativa del certificato di Azure. Per altre informazioni, vedere Configurare una connessione da punto a sito per connettersi a Istanza gestita di SQL di Azure da un computer locale.

Per l'accesso ai dati all'istanza gestita dall'esterno di una rete virtuale, vedere Configurare l'endpoint pubblico in Istanza gestita di SQL di Azure.

Connettersi con il peering reti virtuali

Un altro scenario implementato dai clienti è la posizione in cui un gateway VPN viene installato in una rete virtuale e una sottoscrizione separata da quella che ospita Istanza gestita di SQL. Sulle due reti virtuali viene quindi eseguito il peering. Il seguente esempio di diagramma di architettura mostra come questo può essere implementato.

Peering di rete virtuale

Dopo aver configurato l'infrastruttura di base, è necessario modificare alcune impostazioni in modo che il gateway VPN possa visualizzare gli indirizzi IP nella rete virtuale che ospita Istanza gestita di SQL. Per fare ciò, apportare le seguenti modifiche molto specifiche in Impostazioni di peering.

  1. Nella rete virtuale che ospita il gateway VPN passare a Peering, passare alla connessione di rete virtuale con peering per Istanza gestita di SQL e quindi fare clic su Consenti transito gateway.
  2. Nella rete virtuale che ospita Istanza gestita di SQL passare a Peering, passare alla connessione di rete virtuale con peering per il gateway VPN e quindi fare clic su Usa gateway remoti.

Connettere Servizio app di Azure

È anche possibile connettere un'applicazione ospitata da Servizio app di Azure. Per accedervi da Servizio app di Azure tramite rete virtuale, è prima necessario stabilire una connessione tra l'applicazione e la rete virtuale Istanza gestita di SQL. Vedere Integrare un'app con una rete virtuale di Azure. Per l'accesso ai dati all'istanza gestita dall'esterno di una rete virtuale, vedere Configurare l'endpoint pubblico in Istanza gestita di SQL di Azure.

Per la risoluzione dei problemi di Servizio app di Azure l'accesso tramite rete virtuale, vedere Risoluzione dei problemi relativi a reti virtuali e applicazioni.

Un caso speciale di connessione di Servizio app di Azure a Istanza gestita di SQL consiste nell'integrare Servizio app di Azure a una rete con peering a una rete virtuale Istanza gestita di SQL. Tale caso richiede la configurazione seguente:

  • Istanza gestita di SQL rete virtuale non deve avere un gateway
  • Istanza gestita di SQL rete virtuale deve avere l'opzione Use remote gateways impostata
  • La rete virtuale con peering deve avere l'opzione Allow gateway transit impostata

Questo scenario è illustrato nel diagramma seguente:

peering app integrate

Nota

La funzionalità di integrazione della rete virtuale non integra un'app con una rete virtuale con un gateway ExpressRoute. Anche se il gateway ExpressRoute è configurato in modalità di coesistenza, l'integrazione della rete virtuale non funziona. Se è necessario accedere alle risorse tramite una connessione ExpressRoute, è possibile usare ambiente del servizio app, che viene eseguito nella rete virtuale.

Risoluzione dei problemi di connettività

Per la risoluzione dei problemi di connettività, verificare quanto segue:

  • Se non è possibile connettersi a Istanza gestita di SQL da una macchina virtuale di Azure all'interno della stessa rete virtuale ma da una subnet diversa, verificare se si dispone di un gruppo di sicurezza di rete impostato nella subnet della macchina virtuale che potrebbe bloccare l'accesso. Inoltre, aprire la connessione in uscita nella porta SQL 1433, nonché le porte nell'intervallo 11000-11999, poiché sono necessarie per la connessione tramite reindirizzamento all'interno del limite di Azure.

  • Assicurarsi che propagazione BGP sia impostata su Abilitato per la tabella di route associata alla rete virtuale.

  • Se si utilizza la VPN P2S, controllare la configurazione nel portale Azure per vedere se si vedono i numeri Ingresso/Uscita. I numeri diversi da zero indicano che Azure indirizza il traffico da/per un’istanza locale.

    Numeri in ingresso/in uscita

  • Verificare che il computer client (che esegue il client VPN) contenga voci di route per tutte le reti virtuali a cui è necessario accedere. Le route vengono archiviate in %AppData%\Roaming\Microsoft\Network\Connections\Cm\<GUID>\routes.txt.

    route.txt

    Come illustrato in questa immagine, sono presenti due voci per ogni rete virtuale coinvolta e una terza voce per l'endpoint VPN configurato nel portale.

    Un altro modo per verificare le route è tramite il comando seguente. L'output mostra le route verso subnet diverse:

    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 di reti virtuali, assicurarsi di aver seguito le istruzioni per l'impostazione di Consenti transito Gateway e Usa gateway remoti.

  • Se si usa il peering di reti virtuali per connettere un'applicazione ospitata da un servizio app Azure e la rete virtuale dell'istanza gestita di SQL ha un intervallo di indirizzi IP pubblici, assicurarsi che le impostazioni dell'applicazione ospitata consentano il routing del traffico in uscita alle reti IP pubbliche. Seguire le istruzioni riportate in Integrazione della rete virtuale a livello di area.

Versioni richieste di strumenti e driver

Se si vuole connettersi a Istanza gestita di SQL, è consigliabile usare le versioni minime degli strumenti e dei driver seguenti:

Driver/strumento Versione
.NET Framework 4.6.1 (o .NET Core)
Driver ODBC v17
PHP driver 5.2.0
Driver JDBC 6.4.0
Driver Node.js 2.1.1
Driver OLEDB 18.0.2.0
SSMS 18.0 o successiva
SMO 150 o successiva

Passaggi successivi