Tutorial: Acceso a SQL Server local desde una VNet administrada por Data Factory mediante un punto de conexión privado
En este tutorial se proporcionan pasos para usar Azure Portal para configurar el servicio Private Link y acceder a SQL Server local desde una red virtual administrada mediante un punto de conexión privado. El uso de una red virtual administrada garantiza que el tráfico hacia y desde el origen de SQL local pasará a través de su propio punto de conexión privado, lo que garantiza la exposición a la nube pública con una capa adicional de seguridad y aislamiento. Los recursos necesarios que se mencionan a continuación son necesarios para admitir el escenario.
Nota:
La solución presentada en este artículo describe la conectividad de SQL Server, pero puede usar un enfoque similar para conectarse y consultar otros conectores locales disponibles que se admiten en Azure Data Factory.
Requisitos previos
- Suscripción de Azure. Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
- Virtual Network. Si no tiene una red virtual, cree una según se describe en Inicio rápido: Creación de una red virtual mediante Azure Portal.
- De la red virtual a la red local. Cree una conexión entre la red virtual y la red local mediante ExpressRoute o VPN. Si prefiere usar una máquina virtual en la nube en una red privada, también puede hacerlo. Solo tiene que crear una red virtual para sus máquinas virtuales en la nube y un enlace privado a la red virtual y podrá acceder a ellas como si fueran máquinas locales en la red privada aunque estén hospedadas en la nube.
- Data Factory con una VNet administrada habilitada. Si no tiene una instancia de Data Factory o la red VNet administrada no está habilitada, cree una según se describe en el artículo Creación de una instancia de Data Factory con una red virtual administrada.
Creación de subredes para los recursos
Use el portal para crear subredes en la red virtual.
Subnet | Descripción |
---|---|
be-subnet | Subred para los servidores backend |
fe-subnet | Subred para el equilibrador de carga interno estándar |
pls-subnet | Subred para el servicio Private Link |
Creación de un equilibrador de carga estándar
Use el portal para crear un equilibrador de carga interno estándar.
En la parte superior izquierda de la pantalla, seleccione Crear un recurso > Redes > Load Balancer.
En la pestaña Conceptos básicos de la página Crear equilibrador de carga, escriba o seleccione la siguiente información:
Configuración Valor Suscripción Selecciona tu suscripción. Grupos de recursos Seleccione el grupo de recursos. Nombre Escriba myLoadBalancer. Region Seleccione Este de EE. UU. Tipo seleccione Interno. SKU Seleccione Estándar. Virtual network Seleccione la red virtual. Subnet Seleccione la subred fe-subnet que se creó en el paso anterior. Asignación de dirección IP seleccione Dinámico. Zona de disponibilidad seleccione Con redundancia de zona. Acepte los valores predeterminados en los demás valores y seleccione Revisar y crear.
En la pestaña Revisar + crear, seleccione Crear.
Creación de recursos del equilibrador de carga
Creación de un grupo de back-end
Un grupo de direcciones de back-end contiene las direcciones IP de las tarjetas de interfaz de red virtuales conectadas al equilibrador de carga.
Cree el grupo de direcciones de back-end myBackendPool para incluir máquinas virtuales para el tráfico de Internet de equilibrio de carga.
- Seleccione Todos los servicios en el menú de la izquierda, Todos los recursos y, después, en la lista de recursos, myLoadBalancer.
- En Configuración, seleccione Grupos de back-end y, a continuación, seleccione Agregar.
- En la página Agregar un grupo back-end, en nombre, escriba myBackEndPool, como el nombre del grupo de back-end y, a continuación, seleccione Aceptar.
Creación de un sondeo de estado
El equilibrador de carga supervisa el estado de la aplicación con un sondeo de estado.
El sondeo de estado agrega o quita las máquinas virtuales del equilibrador de carga a partir de su respuesta a las comprobaciones de estado.
Cree un sondeo de mantenimiento llamado myHealthProbe para supervisar el mantenimiento de las máquinas virtuales.
Seleccione Todos los servicios en el menú de la izquierda, Todos los recursos y, después, en la lista de recursos, myLoadBalancer.
En Configuración, seleccione Sondeos de estado y, a continuación, seleccione Agregar.
Configuración Value Nombre Escriba myHealthProbe. Protocolo seleccione TCP. Port Escriba 22. Intervalo Escriba 15 como número de Intervalo, en segundos, entre los intentos de sondeo. Umbral incorrecto Seleccione 2 como número de Umbral incorrecto o errores de sondeo consecutivos que deben producirse para que una máquina virtual se considere que no funciona de manera correcta. Deje el resto de valores predeterminados y seleccione Aceptar.
Creación de una regla de equilibrador de carga
Las reglas de equilibrador de carga se utilizan para definir cómo se distribuye el tráfico a las máquinas virtuales. Defina la configuración IP del front-end para el tráfico entrante y el grupo de direcciones IP de back-end para recibir el tráfico. Los puertos de origen y de destino se definen en la regla.
En esta sección va a crear una regla de equilibrador de carga:
Seleccione Todos los servicios en el menú de la izquierda, Todos los recursos y, después, en la lista de recursos, myLoadBalancer.
En Configuración, seleccione Reglas de equilibrio de carga y, a continuación, seleccione Agregar.
Use estos valores para configurar la regla de equilibrio de carga:
Configuración Value Nombre Escriba myRule. Versión de la dirección IP Seleccione IPv4. Dirección IP del front-end Seleccione LoadBalancerFrontEnd. Protocolo seleccione TCP. Port Escriba 1433. Puerto back-end Escriba 1433. Grupo back-end Seleccione MyBackendPool. Sondeo de mantenimiento Seleccione myHealthProbe. Tiempo de espera de inactividad (minutos) Mueva el control deslizante a 15 minutos. Restablecimiento de TCP Seleccione Deshabilitado. Deje el resto de valores predeterminados y después seleccione Aceptar.
Creación de un servicio Private Link
En esta sección, va a crear un servicio Private Link detrás de un equilibrador de carga estándar.
En la parte superior izquierda de Azure Portal, seleccione Crear un recurso.
Busque Private Link en el cuadro de Buscar en Marketplace.
Seleccione Crear.
En Información general en Private Link Center, seleccione el botón azul Create private link service (Crear servicio de vínculo privado).
En la pestaña Aspectos básicos en Create private link service (Crear servicio de vínculo privado), escriba o seleccione la información siguiente.
Configuración Valor Detalles del proyecto Suscripción Selecciona tu suscripción. Grupo de recursos Seleccione el grupo de recursos que necesite. Detalles de instancia Nombre Escriba myPrivateLinkService. Region Seleccione Este de EE. UU. Seleccione la pestaña Configuración de salida o seleccione Siguiente: Configuración de salida en la parte inferior de la página.
En la pestaña Configuración de salida, escriba o seleccione la siguiente información:
Configuración Value Equilibrador de carga Seleccione myLoadBalancer. Dirección IP de front-end del equilibrador de carga Seleccione LoadBalancerFrontEnd. Subred NAT de origen Seleccione pls-subnet. Habilitación del proxy TCP V2 Deje el valor predeterminado de No. Configuración de dirección IP privada Deje los valores predeterminados. Seleccione la pestaña Seguridad de acceso o seleccione Siguiente: Seguridad de acceso en la parte inferior de la página.
Deje el valor predeterminado de Solo control de acceso basado en rol en la pestaña Seguridad de acceso.
Seleccione la pestaña Etiquetas o seleccione Siguiente: Etiquetas en la parte inferior de la página.
Seleccione la pestaña Revisar y crear o seleccione Siguiente: Revisar y crear en la parte inferior de la página.
En la pestaña Revisar y crear, seleccione Crear.
Creación de servidores back-end
En la parte superior izquierda del portal, seleccione Crear un recurso > Proceso > Máquina virtual.
En Crear una máquina virtual, escriba o seleccione los valores en la pestaña Básico:
Configuración Valor Detalles del proyecto Subscription Seleccione su suscripción a Azure. Grupo de recursos Seleccione el grupo de recursos que necesite. Detalles de instancia Nombre de la máquina virtual Escriba myVM1. Region Seleccione Este de EE. UU. Opciones de disponibilidad Seleccione Zonas de disponibilidad. Zona de disponibilidad Seleccione 1. Imagen Seleccione Ubuntu Server 22.04 LTS. Instancia de Azure Spot así que seleccione No. Size Elija el tamaño de la máquina virtual o acepte la configuración predeterminada. Cuenta de administrador Nombre de usuario Especifique un nombre de usuario. Origen de la clave pública SSH Genere un nuevo par de claves. Nombre del par de claves mySSHKey. Reglas de puerto de entrada Puertos de entrada públicos Ninguno Seleccione la pestaña Redes o seleccione Siguiente: Discos y, después, Siguiente: Redes.
En la pestaña Redes, seleccione o escriba:
Parámetro Valor Interfaz de red Virtual network Seleccione la red virtual. Subnet be-subnet. Dirección IP pública Selecciona Ninguno. Grupo de seguridad de red de NIC Seleccione Ninguno. Equilibrio de carga ¿Quiere colocar esta máquina virtual como subyacente respecto a una solución de equilibrio de carga existente? Seleccione Sí. Configuración de equilibrio de carga Opciones de equilibrio de carga Seleccione Equilibrio de carga de Azure. Seleccionar un equilibrador de carga Seleccione myLoadBalancer. Seleccionar un grupo de back-end Seleccione MyBackendPool. Seleccione Revisar + crear.
Revise la configuración y, a continuación, seleccione Crear.
Puede repetir los pasos del 1 a 6 para tener más de una máquina virtual de servidor backend para la alta disponibilidad.
Creación de una regla de reenvío al punto de conexión
Inicie sesión y copie el script ip_fwd.sh en las máquinas virtuales del servidor back-end.
Ejecute el script con las siguientes opciones:
sudo ./ip_fwd.sh -i eth0 -f 1433 -a <FQDN/IP> -b 1433
Establezca el marcador de posición
<FQDN/IP>
en la dirección IP SQL Server de destino.Nota:
El FQDN no funciona para SQL Server local a menos que agregue un registro en la zona de Azure DNS.
Ejecute el comando siguiente y compruebe las tablas IP en las máquinas virtuales del servidor backend. Puede ver un registro en las tablas IP con la dirección IP de destino.
sudo iptables -t nat -v -L PREROUTING -n --line-number**
Nota
Si tiene más de una instancia de SQL Server o más de un origen de datos, debe definir varias reglas del equilibrador de carga y registros de la tabla IP con puertos diferentes. De lo contrario, habrá algún conflicto. Por ejemplo,
Puerto de la regla del equilibrador de carga Puerto de back-end de la regla del equilibrador de carga Comando que se ejecuta en la máquina virtual del servidor backend SQL Server 1 1433 1433 sudo ./ip_fwd.sh -i eth0 -f 1433 -a <FQDN/IP> -b 1433 SQL Server 2 1434 1434 sudo ./ip_fwd.sh -i eth0 -f 1434 -a <FQDN/IP> -b 1433 Nota:
Es importante tener en cuenta que la configuración dentro de la máquina virtual (VM) no es permanente. Esto significa que cada vez que se reinicia la máquina virtual, necesitará reconfiguración.
Creación de un punto de conexión privado al servicio Private Link
Seleccione Todos los servicios en el menú de la izquierda, seleccione Todos los recursos y, a continuación, seleccione la factoría de datos en la lista de recursos.
Haga clic en Author & Monitor (Creación y supervisión) para iniciar la interfaz de usuario de Data Factory en una pestaña independiente.
Vaya a la pestaña Manage (Administrar) y, a continuación, vaya a la sección Managed private endpoints (Puntos de conexión privados administrados).
Seleccione + New (Nuevo) en Managed private endpoints (Puntos de conexión privados administrados).
Seleccione el icono del servicio Private Link de la lista y seleccione Continue (Continuar).
Escriba el nombre del punto de conexión privado y seleccione myPrivateLinkService en la lista de servicios Private Link.
Añada
<FQDN>
de SQL Server local de destino.Nota
Al implementar SQL Server en una máquina virtual dentro de una red virtual, es esencial mejorar el FQDN incluyendo privatelink. De lo contrario, se producirá un conflicto con otros registros en la configuración de DNS. Por ejemplo, puede simplemente cambiar el FQDN de SQL Server de sqlserver.westus.cloudapp.azure.net a sqlserver.privatelink.westus.cloudapp.azure.net.
Nota:
Actualmente ApplicationIntent y MultiSubnetFailover no se admiten en las propiedades de conexión SQL.
Cree un punto de conexión privado.
Creación de un servicio vinculado y prueba de la conexión
Vaya a la pestaña Administrar y después vaya a la sección Servicios vinculados.
Seleccione + New (Nuevo) en Linked Service (Servicio vinculado).
Seleccione el icono de SQL Server de la lista y seleccione Continue (Continuar).
Habilite Interactive Authoring (Creación interactiva).
Escriba el FQDN de la instancia de SQL Server local, el nombre de usuario y la contraseña.
A continuación, haga clic en Test connection (Probar conexión).
Nota:
Si tiene más de un servidor de SQL Server y necesita definir varias reglas de equilibrador de carga y registros de tabla de direcciones IP con diferentes puertos, asegúrese de que agrega explícitamente el nombre de puerto después del FQDN al editar el servicio vinculado. La máquina virtual de NAT controlará la traducción de puertos. Si no se especifica explícitamente, la conexión siempre agotará el tiempo de espera.
Solución de problemas
Vaya a la máquina virtual del servidor back-end y confirme mediante telnet que la instancia de SQL Server funciona: telnet <FQDN> 1433.
Contenido relacionado
Avance al siguiente tutorial para obtener información sobre cómo acceder a Microsoft Azure SQL Managed Instance desde una VNet administrada por Data Factory mediante un punto de conexión privado: