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.

Diagrama demonstrando alta disponibilidade.

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:

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:

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:

Diagrama mostrando um emparelhamento de rede virtual.

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:

  1. 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.
  2. 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:

Diagrama para emparelhamento de aplicativo integrado.

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.

    Captura de tela mostrando os números de entrada/saída no portal do Azure.

  • 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.

    Captura d tela mostrando route.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.

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