Conexión a un clúster con acceso privado en Azure Cosmos DB for PostgreSQL
SE APLICA A: Azure Cosmos DB for PostgreSQL (con tecnología de la extensión de base de datos de Citus en PostgreSQL)
En este tutorial se crea una máquina virtual (VM) y un clúster de Azure Cosmos DB for PostgreSQL, y se establece el acceso privado entre ellos.
Prerrequisitos
- Una cuenta de Azure con una suscripción activa. Si no tiene ninguna cuenta, cree una gratuita.
- Si quiere ejecutar el código localmente, instale la CLI de Azure. También puede ejecutar el código en Azure Cloud Shell.
Creación de una red virtual
En primer lugar, configure un grupo de recursos y una red virtual para almacenar el clúster y la VM.
az group create \
--name link-demo \
--location eastus
az network vnet create \
--resource-group link-demo \
--name link-demo-net \
--address-prefix 10.0.0.0/16
az network nsg create \
--resource-group link-demo \
--name link-demo-nsg
az network vnet subnet create \
--resource-group link-demo \
--vnet-name link-demo-net \
--name link-demo-subnet \
--address-prefixes 10.0.1.0/24 \
--network-security-group link-demo-nsg
Creación de una máquina virtual
Para la demostración, crearemos una VM que ejecuta Debian Linux y el cliente PostgreSQL psql
.
# provision the VM
az vm create \
--resource-group link-demo \
--name link-demo-vm \
--vnet-name link-demo-net \
--subnet link-demo-subnet \
--nsg link-demo-nsg \
--public-ip-address link-demo-net-ip \
--image Debian11 \
--admin-username azureuser \
--generate-ssh-keys
# install psql database client
az vm run-command invoke \
--resource-group link-demo \
--name link-demo-vm \
--command-id RunShellScript \
--scripts \
"sudo touch /home/azureuser/.hushlogin" \
"sudo DEBIAN_FRONTEND=noninteractive apt-get update" \
"sudo DEBIAN_FRONTEND=noninteractive apt-get install -q -y postgresql-client"
Creación de un clúster con un vínculo privado
Cree un clúster de Azure Cosmos DB for PostgreSQL en Azure Portal.
Seleccione Crear un recurso en la esquina superior izquierda del portal.
En la página Crear un recurso, seleccione Bases de datos y, luego, seleccione Azure Cosmos DB.
En la página Selección de opción de API, en el mosaico de PostgreSQL, seleccione Crear.
En la página Creación de un clúster de Azure Cosmos DB for PostgreSQL, rellene la siguiente información:
Grupo de recursos: seleccione Nuevo y escriba link-demo.
Nombre del clúster: escriba link-demo-sg.
Nota
El nombre del clúster debe ser único globalmente en Azure porque crea una entrada DNS. Si
link-demo-sg
no está disponible, escriba otro nombre y ajuste los pasos siguientes según sea necesario.Ubicación: seleccione Este de EE. UU.
Contraseña: escriba y confirme una contraseña.
Seleccione Siguiente: Redes.
En la pestaña Redes, en Método de conectividad, seleccione Acceso privado.
En la pantalla Crear punto de conexión privado, escriba o seleccione los valores siguientes:
- Grupo de recursos:
link-demo
- Ubicación:
(US) East US
. - Nombre:
link-demo-sg-c-pe1
- Target sub resource (Subrecurso de destino) :
coordinator
- Red virtual:
link-demo-net
- Subred:
link-demo-subnet
- Integrar con la zona DNS privada: sí
- Grupo de recursos:
Seleccione Aceptar.
Después de crear el punto de conexión privado, seleccione Revisar y crear y, luego, seleccione Crear para crear el clúster.
Acceso al clúster de forma privada desde la VM
El vínculo privado permite que la VM se conecte al clúster e impide que los hosts externos lo hagan. En este paso, comprobaremos que el cliente de la base de datos psql de nuestra VM puede comunicarse con el nodo de coordinación del clúster.
PG_URI='host=c-link-demo-sg.12345678901234.postgres.cosmos.azure.com port=5432 dbname=citus user=citus password={your_password} sslmode=require'
# Attempt to connect to cluster with psql in the VM
az vm run-command invoke \
--resource-group link-demo \
--name link-demo-vm \
--command-id RunShellScript \
--scripts "psql '$PG_URI' -c 'SHOW citus.version;'" \
--query 'value[0].message' \
| xargs printf
Nota:
En la cadena de conexión, reemplace {your_password}
por la contraseña del clúster o el token de Microsoft Entra ID. Para obtener más información, consulte opciones de autenticación.
Debería ver un número de versión para Citus en la salida. Si es así, psql pudo ejecutar el comando y el vínculo privado funcionó.
Limpieza de recursos
Ha visto cómo crear un vínculo privado entre una VM y un clúster. Ahora puede desaprovisionar los recursos.
Elimine el grupo de recursos y sus recursos se desaprovisionarán:
az group delete --resource-group link-demo
# press y to confirm
Pasos siguientes
- Más información sobre el acceso privado
- Obtenga información sobre los puntos de conexión privados.
- Más información sobre las redes virtuales
- Obtenga información sobre las zonas DNS privadas.