Ligar a aplicação ao Azure SQL Managed Instance

Aplica-se a:Instância Gerenciada SQL do Azure

Este artigo descreve como conectar seu aplicativo à Instância Gerenciada SQL do Azure em vários cenários de aplicativo diferentes dentro ou entre redes virtuais do Azure.

Hoje você tem várias opções ao decidir como e onde hospedar seu aplicativo. Você pode optar por hospedar um 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, as Máquinas Virtuais do Azure e os Conjuntos de Dimensionamento de Máquina Virtual. Você também pode adotar a abordagem de nuvem híbrida ("mista") e manter seus aplicativos no local. Seja qual for a escolha feita, seu aplicativo pode se conectar à Instância Gerenciada SQL do Azure em vários cenários de aplicativo diferentes dentro ou entre 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 o Power BI e o Serviço de Aplicativo do Azure, ou de uma rede local não conectada às suas redes virtuais via VPN. Para realizar esses e outros cenários semelhantes, consulte Configurar ponto de extremidade público na Instância Gerenciada SQL do Azure.

High availability

Conecte-se de dentro da mesma VNet

Ligar uma aplicação dentro da mesma rede virtual que o SQL Managed Instance é o cenário mais simples. As máquinas virtuais dentro da rede virtual podem se conectar umas às outras diretamente, mesmo que estejam 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 Instância Gerenciada SQL é configurar a cadeia de conexão para direcionar seu ponto de extremidade local de rede virtual.

Conecte-se de dentro de uma VNet diferente

Conectar um aplicativo quando ele reside em uma rede virtual diferente da Instância Gerenciada do SQL requer que o aplicativo primeiro obtenha acesso à rede virtual onde a Instância Gerenciada do SQL está implantada ou à própria Instância Gerenciada do SQL. As duas redes virtuais não precisam estar na mesma assinatura.

Há três opções para se conectar a uma Instância Gerenciada SQL em uma rede virtual diferente:

Dos três, os terminais privados são a opção mais segura e económica em termos de recursos porque:

  • exponha apenas a Instância Gerenciada SQL de sua rede virtual.
  • permitir apenas conectividade unidirecional.
  • requerem 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 de backbone do Azure, portanto, não há nenhuma penalidade de latência percetível para a comunicação entre os limites da rede virtual. O emparelhamento de rede virtual é suportado 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 oferecem suporte apenas ao emparelhamento dentro de sua região.

Ligar a partir do ambiente do local

Você pode conectar seu aplicativo local ao ponto de extremidade local da rede virtual da sua Instância Gerenciada SQL. Para acessá-lo localmente, você precisa fazer uma conexão site a site entre o aplicativo e a rede virtual da Instância Gerenciada SQL. Se o acesso somente de 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 - consulte Configurar ponto de extremidade público na Instância Gerenciada SQL do Azure para saber mais.

Há duas opções para conectar um aplicativo local a uma rede virtual do Azure:

Se você estabeleceu uma conexão local com o Azure e não consegue estabelecer uma conexão com a Instância Gerenciada do SQL, verifique se o firewall tem uma conexão de saída aberta na porta SQL 1433, bem como o intervalo de portas 11000-11999 para redirecionamento.

Conectar uma caixa de desenvolvedor

Também é possível conectar sua caixa de desenvolvedor à Instância Gerenciada SQL. Para acessá-lo a partir da caixa do desenvolvedor por meio da rede virtual, primeiro você precisa fazer uma conexão entre a caixa do desenvolvedor e a rede virtual da Instância Gerenciada SQL. Para fazer isso, configure uma conexão ponto a site com uma rede virtual usando a autenticação de certificado nativo do Azure. Para obter mais informações, consulte Configurar uma conexão ponto a site para se conectar à Instância Gerenciada SQL do Azure a partir de um computador local.

Para obter acesso a dados à sua instância gerenciada de fora de uma rede virtual, consulte Configurar ponto de extremidade público na Instância Gerenciada SQL do Azure.

Conecte-se a uma rede spoke

Outro cenário comum é quando um gateway VPN é instalado em uma rede virtual separada (e talvez assinatura) - rede spoke - daquela que hospeda a Instância Gerenciada SQL (rede hub). A conectividade com a Instância Gerenciada 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 de VNet ou um gateway VNet-to-VNet.

O diagrama de arquitetura de exemplo a seguir mostra o emparelhamento de VNet:

Diagram showing Virtual network peering.

Se você estiver emparelhando redes hub e spoke, verifique se o gateway VPN vê os endereços IP da rede do hub. Para fazer isso, faça as seguintes alterações em Configurações de emparelhamento:

  1. Na rede virtual que hospeda o gateway VPN (rede falada), vá para Emparelhamentos, vá para a conexão de rede virtual emparelhada para Instância Gerenciada SQL e selecione Permitir Trânsito de Gateway.
  2. Na rede virtual que hospeda a Instância Gerenciada SQL (rede de hub), vá para Emparelhamentos, vá para a conexão de rede virtual emparelhada para o gateway VPN e selecione Usar gateways remotos.

Conectar o Serviço de Aplicativo do Azure

Você também pode conectar um aplicativo hospedado pelo Serviço de Aplicativo do Azure quando ele estiver integrado à sua rede virtual. Para fazer isso, selecione um dos mecanismos listados em Conectar de dentro de uma VNet diferente. Para obter acesso a dados à sua instância gerenciada de fora de uma rede virtual, consulte Configurar ponto de extremidade público na Instância Gerenciada SQL do Azure.

Um caso especial para conectar o Serviço de Aplicativo do Azure à Instância Gerenciada do SQL é quando você integra o Serviço de Aplicativo do Azure a uma rede emparelhada a uma rede virtual de Instância Gerenciada do SQL. Este caso requer que esteja definida a seguinte configuração:

  • A rede virtual da Instância Gerenciada SQL NÃO deve ter um gateway
  • A rede virtual da Instância Gerenciada SQL deve ter a Use remote gateways opção definida
  • A rede virtual emparelhada deve ter a Allow gateway transit opção definida

Este cenário é ilustrado no diagrama a seguir:

Diagram for integrated app peering.

Nota

O recurso de integração de rede virtual não integra um aplicativo com uma rede virtual que tenha um gateway de Rota Expressa. Mesmo que o gateway da Rota Expressa esteja configurado no modo de coexistência, a integração de rede virtual não funciona. Se você precisar acessar recursos por meio de uma conexão de Rota Expressa, poderá usar o Ambiente do Serviço de Aplicativo, que é executado em sua rede virtual.

Para solucionar problemas de acesso ao Serviço de Aplicativo do Azure via rede virtual, consulte Solução de problemas de redes e aplicativos virtuais.

Resolver problemas de conectividade

Para solucionar problemas de conectividade, revise o seguinte:

  • Se você não conseguir se conectar à Instância Gerenciada SQL de uma máquina virtual do Azure dentro da mesma rede virtual, mas em uma sub-rede diferente, verifique se você tem um Grupo de Segurança de Rede configurado na sub-rede da VM que pode estar bloqueando o acesso. Além disso, abra a conexão de saída na porta SQL 1433, bem como portas no intervalo 11000-11999, já que elas são necessárias para se conectar via redirecionamento dentro do limite do Azure.

  • Verifique se a propagação de rotas de gateway está 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 ver se você vê os números de Entrada/Saída . Números diferentes de zero indicam que o Azure está roteando o tráfego de/para o local.

    Screenshot showing ingress/egress numbers in the Azure portal.

  • Verifique se a máquina cliente (que está executando 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.

    Screenshot showing the route.txt.

    Como 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 é através do seguinte comando. A saída mostra as rotas para as várias 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 estiver a utilizar o peering de rede virtual, confirme que seguiu as instruções para definir Permitir o Trânsito de Gateway e utilizar Gateways Remotos.

  • Se estiver a utilizar o peering de rede virtual para ligar uma aplicação do Serviço de Aplicações do Azure alojada e a rede virtual do SQL Managed Instance tiver um intervalo de endereços IP públicos, confirme se as definições de aplicação alojada permitem que o tráfego de saída seja encaminhado para redes IP públicas. Siga as instruções em Integração de rede virtual regional.

Embora versões mais antigas possam funcionar, a tabela a seguir lista as versões mínimas recomendadas das ferramentas e drivers para se conectar à Instância Gerenciada SQL:

Driver/ferramenta Versão
.NET Framework 4.6.1 (ou .NET Core)
Controlador ODBC v17
Controlador PHP 5.2.0
Controlador JDBC 6.4.0
Controlador Node.js 2.1.1
Controlador OLEDB 18.0.2.0
SSMS 18.0 ou superior
OMU 150 ou superior

Próximos passos