Creación y administración de Private Link para Azure Database for MySQL mediante la CLI
SE APLICA A: Azure Database for MySQL: servidor único
Importante
El servidor único de Azure Database for MySQL está en proceso de retirada. Es muy recomendable actualizar al servidor flexible de Azure Database for MySQL. Para obtener más información sobre la migración al servidor flexible de Azure Database for MySQL, consulte ¿Qué sucede con el servidor único de Azure Database for MySQL?
Un punto de conexión privado es el bloque de creación fundamental para el vínculo privado en Azure. Permite que los recursos de Azure, como las máquinas virtuales, se comuniquen de manera privada con recursos de vínculos privados. En este artículo, obtendrá información sobre cómo usar la CLI de Azure para crear una VM en una instancia de Azure Virtual Network y un servidor de Azure Database for MySQL con un punto de conexión privado de Azure.
Nota
La característica de vínculo privado solo está disponible para servidores de Azure Database for MySQL en los planes de tarifa De uso general u Optimizado para memoria. Asegúrese de que el servidor de bases de datos esté incluido en uno de estos planes de tarifa.
Requisitos previos
Use el entorno de Bash en Azure Cloud Shell. Para más información, consulte Inicio rápido para Bash en Azure Cloud Shell.
Si prefiere ejecutar comandos de referencia de la CLI localmente, instale la CLI de Azure. Si utiliza Windows o macOS, considere la posibilidad de ejecutar la CLI de Azure en un contenedor Docker. Para más información, vea Ejecución de la CLI de Azure en un contenedor de Docker.
Si usa una instalación local, inicie sesión en la CLI de Azure mediante el comando az login. Siga los pasos que se muestran en el terminal para completar el proceso de autenticación. Para ver otras opciones de inicio de sesión, consulte Inicio de sesión con la CLI de Azure.
En caso de que se le solicite, instale las extensiones de la CLI de Azure la primera vez que la use. Para más información sobre las extensiones, consulte Uso de extensiones con la CLI de Azure.
Ejecute az version para buscar cuál es la versión y las bibliotecas dependientes que están instaladas. Para realizar la actualización a la versión más reciente, ejecute az upgrade.
- En este artículo se necesita la versión 2.0.28 o posterior de la CLI de Azure. Si usa Azure Cloud Shell, ya está instalada la versión más reciente.
Crear un grupo de recursos
Para poder crear un recurso, debe crear un grupo de recursos que hospede la red virtual. Cree un grupo de recursos con az group create. En este ejemplo, se crea un grupo de recursos denominado myResourceGroup en la ubicación westeurope:
az group create --name myResourceGroup --location westeurope
Creación de una red virtual
Cree la red virtual con az network vnet create. En este ejemplo se crea una red virtual predeterminada denominada myVirtualNetwork con una subred denominada mySubnet:
az network vnet create \
--name myVirtualNetwork \
--resource-group myResourceGroup \
--subnet-name mySubnet
Deshabilitación de las directivas de punto de conexión privado
Azure implementa los recursos en la subred de una red virtual, por lo que debe crear o actualizar la subred para deshabilitar las directivas de red del punto de conexión privado. Actualice una configuración de subred denominada mySubnet con az network vnet subnet update:
az network vnet subnet update \
--name mySubnet \
--resource-group myResourceGroup \
--vnet-name myVirtualNetwork \
--disable-private-endpoint-network-policies true
Creación de la máquina virtual
Cree la máquina virtual con az vm create. Cuando se le solicite, proporcione una contraseña que se usará como credenciales de inicio de sesión para la VM. En este ejemplo se crea una máquina virtual llamada myVm:
az vm create \
--resource-group myResourceGroup \
--name myVm \
--image Win2019Datacenter
Nota
La dirección IP pública de la máquina virtual. Usará esta dirección para conectarse a la VM desde Internet en el paso siguiente.
Creación de un servidor de Azure Database for MySQL
Cree un servidor de Azure Database for MySQL con el comando az mysql server create. Recuerde que el nombre de la instancia de MySQL Server debe ser único en Azure, así que reemplace el valor de marcador de posición entre corchetes por su propio valor único:
# Create a server in the resource group
az mysql server create \
--name mydemoserver \
--resource-group myResourcegroup \
--location westeurope \
--admin-user mylogin \
--admin-password <server_admin_password> \
--sku-name GP_Gen5_2
Nota
En algunos casos, Azure Database for MySQL y la subred de red virtual se encuentran en distintas suscripciones. En estos casos debe garantizar las siguientes configuraciones:
- Asegúrese de que ambas suscripciones tengan el proveedor de recursos Microsoft.DBforMySQL registrado. Para más información, consulte resource-manager-registration.
Creación del punto de conexión privado
Cree un punto de conexión privado para el servidor de MySQL en la instancia de Virtual Network:
az network private-endpoint create \
--name myPrivateEndpoint \
--resource-group myResourceGroup \
--vnet-name myVirtualNetwork \
--subnet mySubnet \
--private-connection-resource-id $(az resource show -g myResourcegroup -n mydemoserver --resource-type "Microsoft.DBforMySQL/servers" --query "id" -o tsv) \
--group-id mysqlServer \
--connection-name myConnection
Configuración de la zona DNS privada
Cree una zona DNS privada para el dominio del servidor de MySQL y cree un vínculo de asociación con la instancia de Virtual Network.
az network private-dns zone create --resource-group myResourceGroup \
--name "privatelink.mysql.database.azure.com"
az network private-dns link vnet create --resource-group myResourceGroup \
--zone-name "privatelink.mysql.database.azure.com"\
--name MyDNSLink \
--virtual-network myVirtualNetwork \
--registration-enabled false
# Query for the network interface ID
$networkInterfaceId=$(az network private-endpoint show --name myPrivateEndpoint --resource-group myResourceGroup --query 'networkInterfaces[0].id' -o tsv)
az resource show --ids $networkInterfaceId --api-version 2019-04-01 -o json
# Copy the content for privateIPAddress and FQDN matching the Azure database for MySQL name
# Create DNS records
az network private-dns record-set a create --name myserver --zone-name privatelink.mysql.database.azure.com --resource-group myResourceGroup
az network private-dns record-set a add-record --record-set-name myserver --zone-name privatelink.mysql.database.azure.com --resource-group myResourceGroup -a <Private IP Address>
Nota
El FQDN de la configuración de DNS del cliente no se resuelve en la dirección IP privada configurada. Tendrá que configurar una zona DNS para el FQDN configurado, como se muestra aquí.
Conexión a una máquina virtual desde Internet
Conéctese a la máquina virtual myVm desde Internet de la siguiente manera:
En la barra de búsqueda del portal, escriba myVm.
Seleccione el botón Conectar. Después de seleccionar el botón Conectar, se abre Conectar a máquina virtual.
Seleccione Descargar archivo RDP. Azure crea un archivo de Protocolo de Escritorio remoto ( .rdp) y lo descarga en su equipo.
Abra el archivo downloaded.rdp.
Cuando se le pida, seleccione Conectar.
Escriba el nombre de usuario y la contraseña que especificó al crear la VM.
Nota:
Es posible que tenga que seleccionar Más opciones>Usar otra cuenta para especificar las credenciales que escribió al crear la máquina virtual.
Seleccione Aceptar.
Puede recibir una advertencia de certificado durante el proceso de inicio de sesión. Si recibe una advertencia de certificado, seleccione Sí o Continuar.
Una vez que aparezca el escritorio de la máquina virtual, minimícelo para volver a su escritorio local.
Acceso al servidor de MySQL de forma privada desde la VM
En el Escritorio remoto de myVm, abra PowerShell.
Escriba
nslookup mydemomysqlserver.privatelink.mysql.database.azure.com
.Recibirá un mensaje similar a este:
Server: UnKnown Address: 168.63.129.16 Non-authoritative answer: Name: mydemomysqlserver.privatelink.mysql.database.azure.com Address: 10.1.3.4
Pruebe la conexión de vínculo privado para el servidor MySQL con cualquier cliente disponible. En el ejemplo siguiente se ha usado MySQL Workbench para realizar la operación.
En Nueva conexión, escriba o seleccione esta información:
Configuración Value Nombre de la conexión Seleccione el nombre de la conexión que prefiera. Hostname Seleccione mydemoserver.privatelink.mysql.database.azure.com Nombre de usuario Escriba el nombre de usuario como nombre_de_usuario@nombre_de_servidor, que se proporciona durante la creación del servidor MySQL. Contraseña Escriba una contraseña proporcionada durante la creación del servidor MySQL. Seleccione Conectar.
Examine las bases de datos en el menú izquierdo.
(Opcionalmente) Cree o consulte la información de la base de datos MySQL.
Cierre la conexión de Escritorio remoto a myVm.
Limpieza de recursos
Cuando ya no se necesite, puede utilizar az group delete para quitar el grupo de recursos y todos los recursos que contiene:
az group delete --name myResourceGroup --yes
Pasos siguientes
- Más información sobre Qué es un punto de conexión privado de Azure