Conexión de la aplicación a Instancia administrada de Azure SQL
Se aplica a: Azure SQL Managed Instance
En este artículo se describe cómo conectar una aplicación a Azure SQL Managed Instance en varios escenarios de aplicación diferentes dentro de redes virtuales de Azure o entre ellas.
Hoy en día puede elegir entre varias opciones sobre cuándo y cómo hospedar la aplicación. Puede elegir alojar una aplicación en la nube mediante Azure App Service o algunas de las opciones integradas de Virtual Network de Azure, como Azure App Service Environment, Azure Virtual Machines y Virtual Machine Scale Sets. 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 lograr estos escenarios y similares, consulte Configuración del punto de conexión público en Azure SQL Managed Instance.
Conexión desde dentro de la misma red virtual
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:
- Puntos de conexión privados
- Emparejamiento de VNet de Azure
- Puerta de enlace VPN de red virtual a red virtual (Azure Portal, PowerShell, CLI de Azure)
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:
- Conexión VPN de sitio a sitio (Azure Portal, PowerShell, CLI de Azure)
- Conexión de Azure ExpressRoute
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:
Si va a emparejar redes en estrella tipo hub-and-spoke, asegúrese de que VPN Gateway vea las direcciones IP de la red del centro de conectividad. Para ello, realice los siguientes cambios en Configuración de emparejamiento:
- 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.
- 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:
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.
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
.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.
Versiones recomendadas de controladores y herramientas
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 |