Conectar seu aplicativo à Instância Gerenciada de SQL do Azure
Aplica-se a: Instância Gerenciada de SQL do Azure
Este artigo descreve como conectar seu aplicativo à Instância Gerenciada de SQL do Azure em vários cenários de aplicativos diferentes dentro ou entre as redes virtuais do Azure.
Atualmente, você tem várias opções ao decidir como e onde hospedar seu aplicativo. Você pode optar por hospedar o aplicativo na nuvem usando o Serviço de Aplicativo do Azure ou algumas das opções integradas de rede virtual do Azure como o Ambiente do Serviço de Aplicativo do Azure, a Máquina Virtual do Azure e os Conjuntos de Dimensionamento de Máquinas Virtuais. Você também pode adotar a abordagem de nuvem híbrida ("mista") e manter seus aplicativos no local. Seja qual for a escolha que você fizer, seu aplicativo pode se conectar à Instância Gerenciada de SQL do Azure em vários cenários de aplicativos diferentes dentro ou entre as redes virtuais do Azure.
Você também pode habilitar o acesso a dados para sua instância gerenciada de fora de uma rede virtual – por exemplo, de serviços multilocatários do Azure, como Power BI e Azure App Service, ou de uma rede local não conectada às suas redes virtuais via VPN. Para realizar esses e outros cenários semelhantes, confira Configurar ponto de extremidade público na Instância Gerenciada de SQL do Azure.
Conectar de dentro da mesma VNet
Conectar um aplicativo dentro da mesma rede virtual que a Instância Gerenciada de SQL é o cenário mais simples. As máquinas virtuais dentro da rede virtual podem se conectar entre si diretamente, mesmo se estiverem dentro de sub-redes diferentes. Isso significa que conectar um aplicativo dentro do Ambiente do Serviço de Aplicativo ou uma máquina virtual implantada na mesma rede virtual que a SQL Managed Instance é configurar a cadeia de conexão para direcionar seu VNet-local endpoint.
Conectar de dentro de uma VNet diferente
Conectar um aplicativo quando ele reside em uma rede virtual diferente daquela da Instância Gerenciada de SQL requer que o aplicativo primeiro obtenha acesso à rede virtual onde a Instância Gerenciada de SQL está implantada ou à própria Instância Gerenciada de SQL. As duas redes virtuais não precisam estar na mesma assinatura.
Há três opções para se conectar a um Instância Gerenciada de SQL em uma rede virtual diferente:
- Pontos de extremidade privados
- Emparelhamento VNET do Azure
- Gateway de VPN VNET a VNET (portal do Azure, PowerShell, CLI do Azure)
Dos três pontos de extremidade privados, os pontos de extremidade privados são a opção mais segura e econômica de recursos pelo seguinte:
- exposição apenas à Instância Gerenciada de SQL de sua rede virtual.
- permissão apenas de conectividade unidirecional.
- exigência de apenas um endereço IP na rede virtual do aplicativo.
Se os pontos de extremidade privados não puderem atender totalmente aos requisitos do seu cenário, considere o emparelhamento de rede virtual. O emparelhamento usa a rede do Azure de backbone, portanto, não há nenhuma penalidade de latência perceptível para comunicação entre limites de rede virtual. O emparelhamento de rede virtual tem suporte entre redes em todas as regiões (emparelhamento de rede virtual global), enquanto as instâncias hospedadas em sub-redes criadas antes de 22 de setembro de 2020 só dão suporte ao emparelhamento em sua região.
Conectar-se do local
Você pode conectar seu aplicativo local ao ponto de extremidade local da VNet da Instância Gerenciada de SQL. Para acessá-la localmente, você precisa fazer uma conexão site a site entre o aplicativo e a rede virtual da Instância Gerenciada de SQL. Se o acesso somente a dados à sua instância gerenciada for suficiente, você poderá se conectar a ela de fora de uma rede virtual por meio de um ponto de extremidade público – análise Configurar ponto de extremidade público no Instância Gerenciada de SQL do Azure para saber mais.
Há duas opções para conectar um aplicativo local a uma rede virtual do Azure:
- Conexão VPN site a site (portal do Azure, PowerShell, CLI do Azure)
- Conexão do Azure ExpressRoute
Se você estabeleceu a conexão do local ao Azure e não consegue estabelecer conexão com a Instância Gerenciada de SQL, verifique se o firewall tem a conexão de saída aberta na porta 1433 do SQL, bem como no intervalo de 11000 a 11999 de portas para o redirecionamento.
Conectar uma caixa do desenvolvedor
Também é possível conectar sua caixa de desenvolvedor à Instância Gerenciada de SQL. Para acessá-la na caixa de desenvolvedor pela rede virtual, primeiro você precisa fazer uma conexão entre a caixa de desenvolvedor e a rede virtual da Instância Gerenciada de SQL. Para isso, configure uma conexão ponto a site a uma rede virtual usando a autenticação de certificado nativa do Azure. Para ver mais informações, confira Configurar uma conexão ponto a site para conectar-se a uma Instância Gerenciada de SQL do Azure de um computador local.
Para obter acesso de dados à sua instância gerenciada de um local externo à rede virtual, confira Configurar ponto de extremidade público na Instância Gerenciada de SQL do Azure.
Conectar-se a uma rede spoke
Outro cenário comum é onde um gateway de VPN é instalado em uma rede virtual separada (e talvez assinatura) - rede spoke - a partir do que hospeda a Instância Gerenciada de SQL (rede hub). A conectividade com Instância Gerenciada de SQL da rede spoke é configurada por meio de uma das opções listadas em Conectar de dentro de uma VNet diferente: pontos de extremidade privados, emparelhamento VNet ou um gateway de VNet para VNet.
O diagrama de arquitetura de exemplo a seguir mostra o emparelhamento VNet:
Se você estiver emparelhando redes hub e spoke, verifique se o gateway de VPN vê os endereços IP da rede do hub. Para fazer isso, faça as seguintes alterações nas Configurações de emparelhamento:
- Na rede virtual que hospeda o gateway de VPN (rede spoke), acesse Emparelhamentos, vá para a conexão de rede virtual emparelhada para a Instância Gerenciada de SQL e selecione Permitir Trânsito de Gateway.
- Na rede virtual que hospeda a Instância Gerenciada de SQL (rede de hub), acesse Emparelhamentos, vá para a conexão de rede virtual emparelhada para o gateway de VPN e selecione Usar gateways remotos.
Conectar o Serviço de Aplicativo do Azure
Você também pode conectar um aplicativo hospedado por Serviço de Aplicativo do Azure quando ele é integrado à sua rede virtual. Para fazer isso, selecione um dos mecanismos listados em Conectar de dentro de uma VNet diferente. Para obter acesso de dados à sua instância gerenciada de um local externo à rede virtual, confira Configurar ponto de extremidade público na Instância Gerenciada de SQL do Azure.
Um caso especial para conectar o Serviço de Aplicativo do Azure à Instância Gerenciada de SQL é quando você integra o Serviço de Aplicativo do Azure a uma rede emparelhada a uma rede virtual da Instância Gerenciada de SQL. Esse caso exige a definição da seguinte configuração:
- A rede virtual da Instância Gerenciada de SQL não deve ter um gateway
- A rede virtual da Instância Gerenciada de SQL deve ter a opção
Use remote gateways
definida - A rede virtual emparelhada deve ter a opção
Allow gateway transit
definida
Este cenário é ilustrado no seguinte diagrama:
Observação
O recurso de integração de rede virtual não integra um aplicativo com uma rede virtual que tem um gateway do ExpressRoute. Mesmo se o Gateway do ExpressRoute estiver configurado no modo de coexistência, a Integração com a rede virtual não funcionará. Se for necessário acessar recursos por meio de uma conexão do ExpressRoute, você poderá usar um Ambiente do Serviço de Aplicativo executado na Rede Virtual.
Para solucionar problemas de acesso ao Serviço de Aplicativo do Azure por meio da rede virtual, confira Solucionar problemas de rede virtual e aplicativos.
Solucionar problemas de conectividade
Para solucionar problemas de conectividade, verifique o seguinte:
Se não for possível conectar-se à Instância Gerenciada de SQL de uma máquina virtual do Azure na mesma rede virtual, mas em uma sub-rede diferente, verifique se há um Grupo de Segurança de Rede definido na sub-rede da VM que poderia estar bloqueando o acesso. Além disso, abra a conexão de saída na porta SQL 1433, bem como portas no intervalo de 11000 a 11999, já que elas são necessárias para se conectar por meio de redirecionamento dentro do limite do Azure.
Certifique-se de que a propagação de rotas de gateway esteja desabilitada para a tabela de rotas associada à rede virtual.
Se estiver usando VPN ponto a site, verifique a configuração no portal do Azure para verificar se os números de Entrada/Saída são mostrados. Números diferentes de zero indicam que o Azure está roteando o tráfego de/para o local.
Verifique se o computador cliente (que executa o cliente VPN) tem entradas de rota para todas as redes virtuais que você precisa acessar. As rotas são armazenadas em
%AppData%\Roaming\Microsoft\Network\Connections\Cm\<GUID>\routes.txt
.Conforme mostrado nesta imagem, há duas entradas para cada rede virtual envolvida e uma terceira entrada para o ponto de extremidade VPN configurado no portal.
Outra maneira de verificar as rotas é por meio do comando a seguir. A saída mostra as rotas para as diversas sub-redes:
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 você estiver usando o emparelhamento de rede virtual, verifique se as instruções de configuração Permitir trânsito de gateway e usar gateways remotos foram seguidas.
Se você estiver usando o emparelhamento de rede virtual para conectar um aplicativo hospedado no Serviço de Aplicativo do Azure e a rede virtual da Instância Gerenciada de SQL tiver um intervalo de endereços IP públicos, verifique se as configurações do aplicativo hospedado permitem que o tráfego de saída seja roteado para redes IP públicas. Siga as instruções em Integração de rede virtual regional.
Versões recomendadas de drivers e ferramentas
Embora as versões mais antigas possam funcionar, a tabela a seguir lista as versões mínimas das ferramentas e drivers recomendadas para conexão com uma Instância Gerenciada de SQL:
Driver/ferramenta | Versão |
---|---|
.NET Framework | 4.6.1 (ou .NET Core) |
Driver ODBC | v17 |
Driver PHP | 5.2.0 |
Driver JDBC | 6.4.0 |
Driver Node.js | 2.1.1 |
Driver OLE DB | 18.0.2.0 |
SSMS | 18.0 ou superior |
SMO | 150 ou superior |