Esta guía muestra cómo usar Azure Private Link para proporcionar conectividad privada a través de una red virtual entre Azure (incluidos los servicios de clientes y de partners de Microsoft) y ClickHouse Cloud. Azure Private Link simplifica la arquitectura de red y protege la conexión entre los endpoints de Azure al eliminar la exposición de los datos a la Internet pública.
Azure admite conectividad entre regiones mediante Private Link. Esto le permite establecer conexiones entre VNets ubicadas en distintas regiones en las que tiene servicios de ClickHouse desplegados.
Es posible que se apliquen cargos adicionales al tráfico entre regiones. Consulte la documentación más reciente de Azure.
Complete los siguientes pasos para habilitar Azure Private Link:
- Obtenga el alias de conexión de Azure para Private Link
- Cree un Private Endpoint en Azure
- Agregue el Private Endpoint Resource ID a su organización de ClickHouse Cloud
- Agregue el Private Endpoint Resource ID a la lista de permitidos de sus servicios
- Acceda a su servicio de ClickHouse Cloud mediante Private Link
ClickHouse Cloud Azure PrivateLink ha pasado de usar filtros de resourceGUID a filtros de Resource ID. Todavía puede usar resourceGUID, ya que es retrocompatible, pero le recomendamos cambiar a los filtros de Resource ID. Para migrar, simplemente cree un nuevo endpoint con el Resource ID, asígnelo al servicio y elimine el anterior basado en resourceGUID.
ClickHouse intenta agrupar sus servicios para reutilizar el mismo servicio de Private Link publicado en la región de Azure. Sin embargo, esta agrupación no está garantizada, especialmente si distribuye sus servicios entre varias organizaciones de ClickHouse.
Si ya tiene Private Link configurado para otros servicios en su organización de ClickHouse, a menudo puede omitir la mayoría de los pasos gracias a esta agrupación y pasar directamente al último paso: Agregar el Private Endpoint Resource ID a la lista de permitidos de sus servicios.
Puede encontrar ejemplos de Terraform en el repositorio de Terraform Provider de ClickHouse.
Obtener el alias de conexión de Azure para Private Link
Opción 1: consola de ClickHouse Cloud
En la consola de ClickHouse Cloud, abra el servicio que quiera conectar mediante PrivateLink y, a continuación, abra el menú Settings. Haga clic en el botón Set up private endpoint. Tome nota de Service name y DNS name, ya que se usarán para configurar Private Link.
Tome nota de Service name y DNS name; los necesitará en los siguientes pasos.
Antes de empezar, necesitarás una clave de API de ClickHouse Cloud. Puedes crear una nueva clave o usar una existente.
Una vez que tengas tu clave de API, configura las siguientes variables de entorno antes de ejecutar cualquier comando:
Obtenga el INSTANCE_ID de ClickHouse filtrando por región, proveedor y nombre del servicio:
Obtén tu alias de conexión de Azure y el nombre de host de DNS privado para Private Link:
Toma nota del endpointServiceId. Lo usarás en el paso siguiente.
Crear un Private Endpoint en Azure
Esta sección cubre detalles específicos de ClickHouse para configurar ClickHouse mediante Azure Private Link. Los pasos específicos de Azure se proporcionan como referencia para orientarle sobre dónde buscar, pero pueden cambiar con el tiempo sin previo aviso por parte del proveedor de nube de Azure. Tenga en cuenta la configuración de Azure en función de su caso de uso específico.Tenga en cuenta que ClickHouse no se responsabiliza de configurar los Private Endpoint y los registros DNS de Azure necesarios.Si tiene algún problema relacionado con tareas de configuración de Azure, póngase en contacto directamente con Soporte de Azure.
En esta sección, vamos a crear un Private Endpoint en Azure. Puede usar Azure Portal o Terraform.
Opción 1: Usar Azure Portal para crear un Private Endpoint en Azure
En Azure Portal, abra Private Link Center → Private Endpoints.
Abra el cuadro de diálogo para crear un Private Endpoint haciendo clic en el botón Create.
En la siguiente pantalla, especifique estas opciones:
- Subscription / Resource Group: Elija la suscripción de Azure y el grupo de recursos para el Private Endpoint.
- Name: Defina un nombre para el Private Endpoint.
- Region: Elija la región donde está implementada la VNet que se conectará a ClickHouse Cloud mediante Private Link.
Después de completar los pasos anteriores, haga clic en el botón Next: Resource.
Seleccione la opción Connect to an Azure resource by resource ID or alias.
En Resource ID or alias, use el endpointServiceId que obtuvo en el paso Obtain Azure connection alias for Private Link.
Haga clic en el botón Next: Virtual Network.
- Virtual network: Elija la VNet que desea conectar a ClickHouse Cloud mediante Private Link
- Subnet: Elija la subred donde se creará el Private Endpoint
Opcional:
- Application security group: Puede asociar un ASG al Private Endpoint y usarlo en Network Security Groups para filtrar el tráfico de red hacia y desde el Private Endpoint.
Haga clic en el botón Next: DNS.
Haga clic en el botón Next: Tags.
Opcionalmente, puede añadir tags a su Private Endpoint.
Haga clic en el botón Next: Review + create.
Por último, haga clic en el botón Create.
El Connection status del Private Endpoint creado estará en estado Pending. Cambiará a Approved una vez que agregue este Private Endpoint a la lista de permitidos del servicio.
Abra la interfaz de red asociada al Private Endpoint y copie la Private IPv4 address (10.0.0.4 en este ejemplo); necesitará esta información en los siguientes pasos.
Use la siguiente plantilla para crear un Private Endpoint con Terraform:
Obtención del Private Endpoint Resource ID
Para usar Private Link, debes agregar el Resource ID de la conexión del Private Endpoint a la lista de elementos permitidos de tu servicio.
El Private Endpoint Resource ID aparece en Azure Portal. Abre el Private Endpoint creado en el paso anterior y haz clic en JSON View:
En properties, busca el campo id y copia este valor:
Método preferido: usar Resource ID
Método heredado: usar resourceGUID
Aún puedes usar resourceGUID por compatibilidad con versiones anteriores. Busca el campo resourceGuid y copia este valor:
Configurar DNS para Private Link
Deberá crear una zona DNS privada (${location_code}.privatelink.azure.clickhouse.cloud) y vincularla a su VNet para acceder a los recursos a través de Private Link.
Crear una zona DNS privada
Opción 1: Usar Azure Portal
Sigue esta guía para crear una zona DNS privada de Azure mediante Azure Portal.
Opción 2: Usar Terraform
Usa la siguiente plantilla de Terraform para crear una zona DNS privada:
Crear un registro DNS con comodín
Cree un registro con comodín y apúntelo a su Private Endpoint:
Opción 1: Usar Azure Portal
- Abra el grupo de recursos
MyAzureResourceGroup y seleccione la zona privada ${region_code}.privatelink.azure.clickhouse.cloud.
- Seleccione + Record set.
- En Name, escriba
*.
- En IP Address, escriba la dirección IP que aparece para Private Endpoint.
- Seleccione OK.
Opción 2: Usar Terraform
Use la siguiente plantilla de Terraform para crear un registro DNS con comodín:
Crear un vínculo de red virtual
Para vincular la zona DNS privada a una red virtual, deberá crear un vínculo de red virtual.
Opción 1: Usar Azure Portal
Siga esta guía para vincular la red virtual a su zona DNS privada.
Opción 2: Usar Terraform
Hay varias formas de configurar DNS. Configure DNS según su caso de uso específico.
Debe hacer que “DNS name”, obtenido en el paso Obtener el alias de conexión de Azure para Private Link, apunte a la dirección IP del Private Endpoint. Esto garantiza que los servicios/componentes dentro de su VPC/red puedan resolverlo correctamente.
Verifica la configuración de DNS
El dominio xxxxxxxxxx.westus3.privatelink.azure.clickhouse.cloud debe apuntar a la IP del Private Endpoint (10.0.0.4 en este ejemplo).
Añade el Private Endpoint Resource ID a tu organización de ClickHouse Cloud
Opción 1: consola de ClickHouse Cloud
Para agregar un endpoint a la organización, ve al paso Agregar el Private Endpoint Resource ID a la lista de permitidos de tus servicios. Al agregar el Private Endpoint Resource ID a la lista de permitidos de los servicios mediante la consola de ClickHouse Cloud, se añade automáticamente a la organización.
Para eliminar un endpoint, abre Organization details -> Private Endpoints y haz clic en el botón de eliminación para quitar el endpoint.
Configure las siguientes variables de entorno antes de ejecutar cualquier comando:
Establezca la variable de entorno ENDPOINT_ID con los datos del paso Obtención del ID de recurso del Private Endpoint.
Ejecute el siguiente comando para agregar el Private Endpoint:
También puedes ejecutar el siguiente comando para eliminar un Private Endpoint:
Después de agregar o quitar un Private Endpoint, ejecute el siguiente comando para aplicarlo en su organización:
Añade el Private Endpoint Resource ID a la lista de permitidos de tus servicios
De forma predeterminada, un servicio de ClickHouse Cloud no está disponible a través de una conexión de Private Link, incluso si dicha conexión de Private Link está aprobada y establecida. Debes añadir explícitamente el Private Endpoint Resource ID de cada servicio que deba estar disponible mediante Private Link.
Opción 1: consola de ClickHouse Cloud
En la consola de ClickHouse Cloud, abra el servicio que desea conectar mediante PrivateLink y, a continuación, vaya a Settings. Introduzca el Resource ID obtenido en el paso anterior.
Si desea permitir el acceso desde una conexión de PrivateLink existente, use el menú desplegable del endpoint existente.
Configura estas variables de entorno antes de ejecutar cualquier comando:
Ejecútelo para cada servicio que deba estar disponible mediante Private Link.
Ejecute el siguiente comando para agregar el Private Endpoint a la lista de permitidos de los servicios:
También puede ejecutar el siguiente comando para quitar un Private Endpoint de la lista de permitidos del servicio:
Después de agregar o eliminar un Private Endpoint de la lista de permitidos de los servicios, ejecuta el siguiente comando para aplicar el cambio en tu organización:
Cada servicio con Private Link habilitado tiene un endpoint público y otro privado. Para conectarte mediante Private Link, debes usar un endpoint privado, que será privateDnsHostnameAPI o DNS nameconsole, obtenido en Obtener el alias de conexión de Azure para Private Link.
Obtener el hostname DNS privado
Opción 1: consola de ClickHouse Cloud
En la consola de ClickHouse Cloud, vaya a Settings. Haga clic en el botón Set up private endpoint. En el panel desplegable que se abre, copie el DNS Name.
Define las siguientes variables de entorno antes de ejecutar cualquier comando:
Ejecute el siguiente comando:
Deberías obtener una respuesta similar a la siguiente:
En este ejemplo, la conexión al hostname xxxxxxx.region_code.privatelink.azure.clickhouse.cloud se enrutará a través de Private Link. Mientras tanto, xxxxxxx.region_code.azure.clickhouse.cloud se enrutará por internet.
Usa privateDnsHostname para conectarte a tu servicio de ClickHouse Cloud mediante Private Link.
Comprobar la configuración de DNS
Ejecute el siguiente comando:
donde “nombre DNS” es privateDnsHostnameAPI o Nombre DNSconsole de Obtener el alias de conexión de Azure para Private Link
Deberías obtener la siguiente respuesta:
La conexión se restableció por el extremo remoto
Lo más probable es que no se haya añadido el Private Endpoint Resource ID a la lista de permitidos del servicio. Vuelve a revisar el paso Añadir el Private Endpoint Resource ID a la lista de permitidos de tus servicios.
Private Endpoint está en estado pendiente
Lo más probable es que no se haya agregado el Private Endpoint Resource ID a la lista de permitidos del servicio. Vuelve al paso Agregar el Private Endpoint Resource ID a la lista de permitidos de tus servicios.
Si tiene problemas para conectarse mediante Private Link, compruebe la conectividad con openssl. Asegúrese de que el estado del endpoint de Private Link sea Accepted.
OpenSSL debería poder conectarse (debería aparecer CONNECTED en la salida). Se espera errno=104.
Comprobar los filtros del Private Endpoint
Configure las siguientes variables de entorno antes de ejecutar cualquier comando:
Ejecute el siguiente comando para verificar los filtros de Private Endpoint:
Para obtener más información sobre Azure Private Link, consulte azure.microsoft.com/en-us/products/private-link.