Conexión de la aplicación a Instancia administrada de Azure SQL

Se aplica a:Azure SQL Managed Instance

Este artículo describe cómo conectar su aplicación a Azure SQL Managed Instance en una serie de escenarios de aplicación diferentes dentro o entre redes virtuales Azure.

Hoy en día puede elegir entre varias opciones sobre cuándo y cómo hospedar la aplicación. Puede elegir hospedar una aplicación en la nube mediante Azure App Service o algunas de las opciones integradas de red virtual de Azure, como Azure App Service Environment, Azure Virtual Machines y conjuntos de escalado de máquinas virtuales. También podría elegir un enfoque de nube híbrida ("mixto") y mantener las aplicaciones en el entorno local. Sea cual sea la elección que elija, la aplicación puede conectarse a Azure SQL Managed Instance en varios escenarios de aplicación diferentes dentro de redes virtuales de Azure o entre ellas.

También puede habilitar el acceso a los datos a la instancia administrada desde fuera de una red virtual, por ejemplo, desde servicios multiinquilino de Azure, como Power BI y Azure App Service, o desde una red local no conectada a las redes virtuales a través de VPN. Para realizar estos escenarios y similares, consulte Configuración del punto de conexión público en Azure SQL Managed Instance.

High availability

Conexión dentro de la misma VNet

La conexión de una aplicación dentro de la misma red virtual que Instancia administrada de SQL es el escenario más sencillo. Las máquinas virtuales dentro de la red virtual pueden conectarse directamente entre sí si se encuentran en subredes diferentes. Esto significa que, para conectar una aplicación que está en un entorno de App Service Environment o una máquina virtual, solo hace falta configurar la cadena de conexión para que apunte al punto de conexión de red virtual local.

Conexión desde dentro de una red virtual diferente

La conexión de una aplicación cuando reside en una red virtual diferente a la de SQL Managed Instance requiere que la aplicación obtenga acceso primero a la red virtual donde se implementa SQL Managed Instance o a la propia instancia de SQL Managed Instance. Las redes virtuales no tienen por qué estar en la misma suscripción.

Hay tres opciones para conectarse a SQL Managed Instance en una red virtual diferente:

De las tres, los puntos de conexión privados son la opción más segura y económica para los recursos porque:

  • solo exponen la instancia de SQL Managed Instance de su red virtual
  • solo permiten conectividad unidireccional
  • solo requieren una dirección IP en la red virtual de la aplicación

Si los puntos de conexión privados no pueden cumplir completamente los requisitos del escenario, considere la posibilidad de emparejamiento de redes virtuales en su lugar. El emparejamiento usa la red troncal de Azure, por lo que no hay ninguna penalización de latencia notable para la comunicación entre los límites de la red virtual. El emparejamiento de redes virtuales se admite entre redes en todas las regiones (emparejamiento de red virtual global), mientras que las instancias hospedadas en subredes creadas antes del 22 de septiembre de 2020 solo admiten el emparejamiento dentro de su región.

Conexión desde el entorno local

Puede conectar la aplicación local al punto de conexión local de la red virtual de SQL Managed Instance. Para hacerlo desde el entorno local, debe establecer una conexión de sitio a sitio entre la aplicación y la red virtual de Instancia administrada de SQL. Si el acceso de solo datos a la instancia administrada es suficiente, puede conectarse a ella desde fuera de una red virtual a través de un punto de conexión público. Consulte Configuración del punto de conexión público en Azure SQL Managed Instance para más información.

Hay dos opciones para conectar una aplicación local a una red virtual de Azure:

Si ha establecido una conexión local a Azure correctamente y no puede establecer una conexión a SQL Managed Instance, compruebe si el firewall tiene abierta la conexión saliente en el puerto 1433 de SQL, así como el intervalo de puertos 11000-11999 para el redireccionamiento.

Conexión del cuadro de desarrollador

También es posible conectar el cuadro de desarrollador a Instancia administrada de SQL. Para acceder al servicio desde su cuadro de desarrollador a través de una red virtual, primero debe establecer una conexión entre el cuadro de desarrollador y la red virtual de SQL Managed Instance. Para ello, configure una conexión de punto a sitio a una red virtual mediante la autenticación de certificados de Azure nativa. Para obtener más información, consulte Configuración de una conexión de punto a sitio para conectarse a Azure SQL Managed Instance desde un equipo local.

Para obtener acceso de datos a la instancia administrada desde fuera de una red virtual, consulte Configuración de un punto de conexión público en Azure SQL Managed Instance.

Conexión a una red tipo spoke

Otro escenario común es el lugar donde se instala una puerta de enlace de VPN en una red virtual independiente (y quizás una suscripción),-red tipo spoke, en relación con la que hospeda SQL Managed Instance (red central). La conectividad a SQL Managed Instance desde la red radial se configura a través de una de las opciones enumeradas en Conexión desde una red virtual diferente: puntos de conexión privados, emparejamiento de VNet o puerta de enlace de red virtual a red virtual.

En el diagrama de arquitectura de ejemplo siguiente se muestra el emparejamiento de VNet:

Diagram showing Virtual network peering.

Si va a emparejar redes en estrella tipo hub-and-spoke, asegúrese de que VPN Gateway ve las direcciones IP de la red del concentrador. Para ello, realice los siguientes cambios en Configuración de emparejamiento:

  1. En la red virtual que hospeda la puerta de enlace de VPN, vaya a Emparejamientos, busque la conexión de red virtual emparejada de SQL Managed Instance y seleccione Permitir tránsito de puerta de enlace.
  2. En la red virtual que hospeda SQL Managed Instance (red central), vaya a Emparejamientos, busque la conexión de red virtual emparejada de la puerta de enlace de VPN y seleccione Usar puertas de enlace remotas.

Conexión de Azure App Service

También puede conectar una aplicación hospedada por Azure App Service cuando se integra con la red virtual. Para ello, seleccione uno de los mecanismos enumerados en Conectar desde dentro de una red virtual diferente. Para obtener acceso de datos a la instancia administrada desde fuera de una red virtual, consulte Configuración de un punto de conexión público en Azure SQL Managed Instance.

Un caso especial de conexión de Azure App Service a SQL Managed Instance es cuando se integra Azure App Service en una red emparejada a una red virtual de Instancia administrada de SQL. Ese caso requiere la siguiente configuración:

  • La red virtual de Instancia administrada de SQL no debe tener una puerta de enlace.
  • La red virtual de Instancia administrada de SQL debe tener establecida la opción Use remote gateways.
  • La red virtual emparejada debe tener establecida la opción Allow gateway transit.

Este escenario se ilustra en el diagrama siguiente:

Diagram for integrated app peering.

Nota:

La característica de integración de la red virtual no integra una aplicación con una red virtual que tenga una puerta de enlace de ExpressRoute. Incluso si la puerta de enlace de ExpressRoute está configurada en modo de coexistencia, la integración de la red virtual no funcionará. Si necesita acceder a recursos mediante una conexión de ExpressRoute, puede usar App Service Environment, que funciona en la red virtual.

Para solucionar problemas con el acceso de Azure App Service a través de una red virtual, consulte Solución de problemas con redes virtuales y aplicaciones.

Solución de problemas de conectividad

Para solucionar problemas de conectividad, revise lo siguiente:

  • Si no puede conectarse a Instancia administrada de SQL desde una máquina virtual de Azure dentro de la misma red virtual, pero una subred diferente, compruebe que no haya un grupo de seguridad de red establecido en la subred de la máquina virtual que bloquee el acceso. Además, abra la conexión saliente en el puerto 1433 de SQL, así como los puertos del intervalo 11000-11999, ya que son necesarios para conectarse mediante redireccionamiento dentro del límite de Azure.

  • Asegúrese de que la propagación de las rutas de puerta de enlace está deshabilitada para la tabla de rutas asociada a la red virtual.

  • Si utiliza VPN de punto a punto, compruebe la configuración en Azure Portal para ver si detecta números de entrada/salida. Los números distintos de cero indican que Azure enruta el tráfico hacia y desde un entorno local.

    Screenshot showing ingress/egress numbers in the Azure portal.

  • Compruebe que la máquina cliente (que ejecuta el cliente de VPN) tenga entradas de ruta para todas las redes virtuales a las que necesita acceso. Las rutas se almacenan en %AppData%\Roaming\Microsoft\Network\Connections\Cm\<GUID>\routes.txt.

    Screenshot showing the route.txt.

    Como se muestra en esta imagen, hay dos entradas para cada red virtual implicada y una tercera entrada para el punto de conexión de VPN que está configurado en el portal.

    Otra manera de comprobar las rutas es mediante el comando siguiente. La salida muestra las rutas a las diversas subredes:

    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
    
  • Si usa el emparejamiento de red virtual, asegúrese de que ha seguido las instrucciones para configurar Permitir tránsito de puerta de enlace y Usar puertas de enlace remotas.

  • Si usa el emparejamiento de red virtual para conectar una aplicación hospedada por Azure App Service, y la red virtual de Instancia administrada de SQL tiene un intervalo de direcciones IP públicas, asegúrese de que la configuración de la aplicación hospedada permita que el tráfico saliente se enrute a redes con direcciones IP públicas. Siga las instrucciones que se indican en Integración con red virtual regional.

Aunque las versiones anteriores pueden funcionar, en la tabla siguiente se enumeran las versiones mínimas recomendadas de las herramientas y controladores para conectarse a SQL Managed Instance:

Controlador/Herramienta Versión
.NET Framework 4.6.1 o .NET Core
Controlador ODBC v17
Controlador PHP 5.2.0
Controlador JDBC 6.4.0
Controlador de Node.js 2.1.1
Controlador de OLEDB 18.0.2.0
SSMS 18.0 o superior
SMO 150 o superior

Pasos siguientes