Conéctate a una instancia con un extremo de escritura

Descripción general

En esta página, se muestra cómo usar un extremo de escritura para conectarte desde clientes en tu red de nube privada virtual (VPC) a una instancia de Cloud SQL con el acceso privado a servicios (PSA).

Un extremo de escritura es un nombre de servicio de nombre de dominio (DNS) global que se resuelve automáticamente en la dirección IP de la instancia principal actual. En caso de una réplica conmutación por error o cambio operación, este extremo de escritura redirecciona automáticamente las conexiones entrantes a la nueva instancia principal. Puedes usar el extremo de escritura en una cadena de conexión de SQL a la instancia de Cloud SQL en lugar de usar una dirección IP. Al usar un extremo de escritura, puedes evitar tener que realizar cambios en la conexión de la aplicación cuando realizas una operación de conmutación por error o cambio de réplica para la recuperación ante interrupciones regionales o la simulación de recuperación ante desastres.

Cada instancia de Cloud SQL apta tiene un solo extremo de escritura integrado cuyo nombre, creación y actualización administra Cloud SQL. En el siguiente ejemplo, se ilustra su formato:

  primary.103uufa2svq8u.2rb3qdj9tkf4d.global.sql-psa.goog.
  

El extremo de escritura siempre termina con el sufijo .global.sql-psa.goog.. No puedes modificar el nombre ni el formato de este extremo de escritura administrado por Cloud SQL.

Puedes usar el extremo de escritura para todas las operaciones de escritura en la instancia principal, incluidas las inserciones, las actualizaciones, las eliminaciones y los cambios de DDL. También puedes usar el extremo de escritura para operaciones de lectura, como consultas. Cloud SQL cambia automáticamente la dirección IP privada a la que apunta el extremo de escritura cuando realizas una operación de conmutación por error o cambio de réplica para promover una instancia de réplica para que sea la nueva instancia principal.

Genera el extremo de escritura

Si creas una instancia nueva de Cloud SQL, Cloud SQL crea automáticamente el extremo de escritura cuando se cumplen los siguientes requisitos previos:

  • Las siguientes APIs deben estar habilitadas en el Google Cloud proyecto en el que reside tu instancia de Cloud SQL:

    Si no se habilita la API de Cloud DNS en el proyecto, no se podrá crear la zona de DNS de intercambio de tráfico, lo que hará que los nombres de DNS no se puedan usar.

    Una vez que se haya creado correctamente la zona de DNS de intercambio de tráfico, es importante que no se modifique de ninguna manera. Cualquier modificación, incluida la eliminación, hará que el DNS no se pueda usar para la conexión de la base de datos.

  • La instancia de Cloud SQL debe ser de la edición Cloud SQL Enterprise Plus.
  • La instancia de Cloud SQL debe estar configurada para usar una IP privada con el acceso privado a servicios (PSA) habilitado.
  • La función requiere instancias en la nueva arquitectura de red. En la mayoría de los casos, las instancias nuevas se crean con la nueva arquitectura. Para verificar esto, revisa la arquitectura de red de tu instancia.

Cuando actualizas una instancia existente de Cloud SQL Enterprise a una instancia de Cloud SQL Enterprise Plus, Cloud SQL genera automáticamente el extremo de escritura si se cumplen los requisitos previos enumerados anteriormente. Si tu instancia existente está en la arquitectura de red anterior, primero debes actualizar la instancia a la nueva arquitectura de red para obtener el extremo de escritura.

Si ya tienes una instancia de la edición de Cloud SQL Enterprise Plus sin el extremo de escritura y deseas que Cloud SQL genere un extremo de escritura automáticamente, crea una réplica que esté habilitada para la recuperación ante desastres avanzada.

Visualiza el extremo de escritura

gcloud

Para encontrar el extremo de escritura, usa el siguiente comando de gcloud CLI:

      gcloud sql instances describe INSTANCE_NAME \
      | grep writeEndpoint
    

Realiza los siguientes reemplazos:

INSTANCE_NAME: el nombre de la instancia de Cloud SQL.

Los extremos de escritura siempre terminan con el sufijo .global.sql-psa.goog., similar al siguiente ejemplo:

  primary.103uufa2svq8u.2rb3qdj9tkf4d.global.sql-psa.goog.
  

Si no ves el extremo de escritura para una instancia apta, consulta Soluciona problemas.

Conéctate a una instancia de Cloud SQL con un extremo de escritura

sqlcmd

Para conectar un cliente sqlcmd a una instancia de Cloud SQL con el extremo de escritura, ejecuta el siguiente comando:

    sqlcmd -S WRITE_ENDPOINT -U USERNAME -d DATABASE_NAME -P
  

Realiza los siguientes reemplazos:

  • DATABASE_NAME: el nombre de la base de datos. Por ejemplo, main.
  • USERNAME: el nombre de usuario Por ejemplo, sqlserver.
  • WRITE_ENDPOINT: el nombre de DNS o el extremo de escritura. Este valor alfanumérico siempre termina con el .global.sql-psa.goog. sufijo. Por ejemplo, primary.103uufa2svq8u.2rb3qdj9tkf4d.global.sql-psa.goog..

Limitaciones

  • Los extremos de escritura no están disponibles para las creaciones de instancias de Cloud SQL Enterprise.
  • Los extremos de escritura no están disponibles para instancias solo de IP pública ni instancias solo de Private Service Connect.

Soluciona problemas

En las siguientes secciones, se describe la arquitectura de los extremos de escritura y se abordan los problemas comunes de solución de problemas.

Arquitectura de un extremo de escritura

Cuando creas una instancia apta, se genera un extremo de escritura de forma predeterminada.

Para crear un extremo de escritura, Cloud SQL realiza la siguiente configuración:

En el siguiente diagrama, se ilustra cómo funciona este proceso:

Diagrama que muestra cómo el intercambio de tráfico de VPC admite el intercambio de tráfico de zonas de DNS entre proyectos.
Figura 1. Diagrama que muestra cómo el intercambio de tráfico de VPC admite el intercambio de tráfico de zonas de DNS entre una red de productor de servicios y una red de cliente.

Problemas con la resolución de DNS

Si la resolución de DNS no funciona, verifica cada uno de los siguientes elementos:

  1. Asegúrate de que se cumplan todos los requisitos previos.
  2. Asegúrate de que los clientes en los que se espera la resolución se encuentren en la misma red a la que está adjunta la instancia de Cloud SQL. Para verificar esto, usa el gcloud compute instances list comando:
    gcloud compute instances list \
       --format="table( name, zone.basename(), networkInterfaces[].network )" \
       --project=PROJECT_NAME

    Reemplaza PROJECT_NAME por el nombre del proyecto en el que reside la red del consumidor de DNS reside.

  3. Verifica que exista la zona de intercambio de tráfico. Para ello, usa el gcloud dns managed-zones list comando:
    gcloud dns managed-zones list \
        --project=PROJECT_NAME

    Reemplaza PROJECT_NAME por el nombre del proyecto en el que reside la red del consumidor de DNS.

La instancia nueva no tiene un extremo de escritura

Si una instancia recién creada no contiene un extremo de escritura, verifica cada uno de los siguientes elementos:

  1. Asegúrate de que se completen todos los requisitos previos.
  2. Asegúrate de que no haya una zona de DNS de intercambio de tráfico sobrante con el nombre de DNS sql-psa.goog..

    Una zona de DNS de intercambio de tráfico es una zona de DNS sobrante si la red asociada con la zona de DNS no tiene un intercambio de tráfico de VPC con el ID del proyecto de par de la zona de DNS de intercambio de tráfico.

    Si hay una zona de DNS de intercambio de tráfico sobrante con el sql-psa.goog. sufijo, bórrala.

    Para verificar si hay zonas de DNS de intercambio de tráfico sobrantes, usa el gcloud dns managed-zones list comando:

    gcloud dns managed-zones list \
       --project=PROJECT_NAME

    Reemplaza PROJECT_NAME por el nombre del proyecto en el que reside la red del consumidor de DNS.

    Si existe una zona de DNS con el sufijo sql-psa.goog., bórrala después de verificar que la zona de DNS de intercambio de tráfico sea una zona de DNS sobrante.

    Para borrar una zona de DNS, usa el comando gcloud dns managed-zones delete:

    gcloud dns managed-zones delete ZONE_NAME

    Reemplaza ZONE_NAME por el nombre de la zona de DNS asociada con los extremos de escritura. Los valores son alfanuméricos y usan el siguiente formato: cloud-sql-psa-dns-1234567890.

¿Qué sigue?

  • Obtén más información para solucionar problemas de Cloud SQL.