Administra conexiones de bases de datos con extremos de escritura

Para desvincular tus aplicaciones de la dirección IP o el identificador uniforme de recursos (URI) específicos de tu instancia principal de AlloyDB para PostgreSQL durante los cambios, las conmutaciones por error entre regiones, los restablecimientos de copias de seguridad o las migraciones, puedes configurar un extremo de escritura.

Un extremo es un recurso de AlloyDB que proporciona un nombre de sistema de nombres de dominio (DNS) estable que tus aplicaciones pueden usar para conectarse a una instancia de AlloyDB. Esta abstracción simplifica la administración de conexiones durante los eventos operativos, por ejemplo, la recuperación ante desastres, las restauraciones de copias de seguridad o las migraciones, ya que puedes redireccionar el nombre de DNS del extremo a una instancia diferente sin cambiar la configuración de tu aplicación.

Los extremos de AlloyDB admiten el tipo WRITE_ENDPOINT. Un extremo de escritura dirige el tráfico a una sola instancia principal de AlloyDB y entrega el tráfico de lectura y escritura.

Si bien el nombre de DNS funciona como un recurso global, el recurso de extremo en sí es regional. Aun así, cada extremo puede vincularse a instancias de forma global, y su nombre de DNS se resuelve desde cualquier ubicación.

Beneficios de usar extremos

El uso de un extremo de escritura proporciona los siguientes beneficios:

  • Recuperación ante desastres simplificada: Si realizas un cambio o una conmutación por error entre regiones a un clúster secundario, AlloyDB actualiza automáticamente el extremo para que apunte a la nueva instancia principal. Luego, tus aplicaciones pueden volver a conectarse con el mismo nombre de DNS del extremo, lo que reduce el objetivo de tiempo de recuperación (RTO).
  • Recuperación optimizada de copias de seguridad: Cuando restableces una instancia desde una copia de seguridad, AlloyDB crea una instancia nueva con una dirección IP nueva. Puedes actualizar tu extremo para que apunte a la instancia recién restablecida. Esta capacidad permite que las aplicaciones reanuden su funcionamiento sin cambios en la configuración.
  • Migraciones más sencillas: Durante las migraciones, puedes cambiar un extremo de una base de datos de origen a una instancia de AlloyDB con una interrupción mínima de la aplicación.

Limitaciones

  • Los extremos solo admiten instancias que estén configuradas para usar el acceso privado a servicios (PSA). Los extremos no admiten instancias configuradas para usar Private Service Connect (PSC).
  • La compatibilidad con los conectores de lenguajes para AlloyDB y el proxy de autenticación de AlloyDB no está disponible para los extremos de escritura.
  • No se admiten las operaciones de modificación simultáneas (como actualizaciones simultáneas o una operación de actualización y eliminación) en los extremos que apuntan a la misma instancia de destino, y podrían generar errores.

Antes de comenzar

  1. Instala y, luego, inicializa Google Cloud CLI.
  2. Habilita la API de Cloud DNS.
  3. Asegúrate de tener una instancia de AlloyDB existente que sirva como destino para el extremo.
  4. Para obtener los permisos que necesitas para administrar extremos, pídele a tu administrador que te otorgue el rol de Identity and Access Management (IAM) de Administrador de AlloyDB (roles/alloydb.admin) en tu proyecto. Este rol predefinido contiene los permisos necesarios para administrar extremos.

    También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos. Los permisos específicos necesarios son los siguientes:

    • alloydb.endpoints.create
    • alloydb.endpoints.update
    • alloydb.endpoints.get
    • alloydb.endpoints.list
    • alloydb.endpoints.delete

Para obtener más información, consulta Roles y permisos de IAM de AlloyDB.

Puedes crear y administrar extremos de escritura con Google Cloud CLI.

Crear un extremo

Para crear un extremo de escritura, usa Google Cloud CLI. El tipo de extremo debe ser WRITE_ENDPOINT y debe orientarse a una sola instancia principal.

Console

  1. En la consola de Google Cloud , ve a la página Extremos.

    Ir a Endpoints

  2. Haz clic en Crear extremo.

  3. En el campo Nombre del extremo, ingresa un ID para tu extremo. Debe incluir letras minúsculas (de la "a" a la "z"), números y guiones. Además, debe comenzar con una letra minúscula y terminar con una letra minúscula o un número.

  4. Selecciona una Región.

  5. En Tipo de extremo, selecciona Escritura.

  6. En el campo Instancia de destino, selecciona la instancia principal a la que debe apuntar este extremo.

  7. Haz clic en Crear.

gcloud

gcloud beta alloydb endpoints create ENDPOINT_ID \
    --project=PROJECT_ID \
    --region=REGION_ID \
    --endpoint-type=ENDPOINT_TYPE \
    --target-instances=TARGET_INSTANCE_NAME

Reemplaza lo siguiente:

  • ENDPOINT_ID: Es un identificador único para el extremo. Este ID debe ser único dentro del proyecto y la ubicación especificados.
  • PROJECT_ID: Es el ID del proyecto de Google Cloud .
  • REGION_ID: Es el ID de la región en la que deseas crear el extremo, por ejemplo, us-central1.
  • ENDPOINT_TYPE: Es el tipo de recurso del extremo. Solo se admite WRITE_ENDPOINT.
  • TARGET_INSTANCE_NAME: Es el nombre completo del recurso de la instancia de AlloyDB para PostgreSQL a la que apunta el extremo. La ruta de acceso completa del recurso para una instancia tiene el siguiente formato: projects/$PROJECT/locations/$LOCATION/clusters/$CLUSTER/instances/$INSTANCE.

Conéctate a una instancia con un extremo

Para conectarte a tu instancia de AlloyDB con un extremo, primero debes obtener el nombre de DNS generado automáticamente que está asociado al extremo.

Obtén el nombre de DNS

Puedes ver el nombre de DNS de un extremo con Google Cloud CLI.

Console

  1. En la consola de Google Cloud , ve a la página Extremos.

    Ir a Endpoints

  2. Busca el extremo al que deseas conectarte y copia el valor en la columna Nombre de DNS.

gcloud

  1. Usa el comando de gcloud beta alloydb endpoints describe:

    gcloud beta alloydb endpoints describe ENDPOINT_ID \
        --project=PROJECT_ID \
        --region=REGION_ID
    

    Reemplaza lo siguiente:

    • ENDPOINT_ID: Es el ID del extremo.
    • PROJECT_ID: Es el ID del proyecto de Google Cloud .
    • REGION_ID: el ID de la región en la que reside el extremo
  2. En el resultado del comando, busca el campo dnsName y copia su valor.

Conéctate con psql

Una vez que tengas el nombre de DNS, puedes usarlo como host en tu cadena de conexión o herramienta cliente. Por ejemplo, para conectarte con el cliente psql, ejecuta el siguiente comando:

psql -h DNS_NAME -U USERNAME -d DATABASE_NAME

Reemplaza lo siguiente:

  • DNS_NAME: el nombre de DNS del extremo
  • USERNAME: el usuario de la base de datos con el que se establecerá la conexión
  • DATABASE_NAME: el nombre de la base de datos a la que te conectarás.

Para obtener más información sobre el uso de psql, consulta Conéctate con el cliente psql.

Actualiza un extremo

Para cambiar la instancia a la que apunta un extremo, como después de una operación de restablecimiento, usa los siguientes comandos:

Console

  1. En la consola de Google Cloud , ve a la página Extremos.

    Ir a Endpoints

  2. En la fila del extremo que deseas actualizar, haz clic en Acciones y, luego, selecciona Editar.

  3. En el campo Instancia de destino, selecciona la nueva instancia principal a la que debe apuntar este extremo.

  4. Haz clic en Actualizar.

gcloud

gcloud beta alloydb endpoints update ENDPOINT_ID \
    --project=PROJECT_ID \
    --region=REGION_ID \
    --target-instances=NEW_TARGET_INSTANCE_NAME

Reemplaza lo siguiente:

  • ENDPOINT_ID: Es el ID del extremo que se actualizará.
  • PROJECT_ID: Es el ID del proyecto de Google Cloud .
  • REGION_ID: el ID de la región en la que reside el extremo
  • NEW_TARGET_INSTANCE_NAME: Es el nombre completo del recurso de las instancias de destino nuevas.

Enumerar extremos

Para enumerar todos los extremos de un proyecto y una región determinados, usa el siguiente comando:

Console

  1. En la consola de Google Cloud , ve a la página Extremos.

    Ir a Endpoints

    En la página, se enumeran todos los extremos del proyecto actual.

gcloud

gcloud beta alloydb endpoints list --project=PROJECT_ID \
    --region=REGION_ID

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto de Google Cloud .
  • REGION_ID: el ID de la región en la que reside el extremo

Ver detalles del extremo

Para ver los detalles de un extremo específico, usa el siguiente comando de Google Cloud CLI:

gcloud

gcloud beta alloydb endpoints describe ENDPOINT_ID \
    --project=PROJECT_ID \
    --region=REGION_ID

Reemplaza lo siguiente:

  • ENDPOINT_ID: Es el ID del extremo que se describirá.
  • PROJECT_ID: Es el ID del proyecto de Google Cloud .
  • REGION_ID: el ID de la región en la que reside el extremo

En la consola de Google Cloud , puedes ver los detalles del extremo en la página Extremos.

Borra un extremo †

Para borrar un extremo, usa los siguientes comandos:

Console

  1. En la consola de Google Cloud , ve a la página Extremos.

    Ir a Endpoints

  2. En la fila del extremo que quieres borrar, haz clic en Acciones y, luego, selecciona Borrar.

  3. Para confirmar, escribe el ID del extremo y, luego, haz clic en Borrar.

gcloud

gcloud beta alloydb endpoints delete ENDPOINT_ID \
    --project=PROJECT_ID \
    --region=REGION_ID

Reemplaza lo siguiente:

  • ENDPOINT_ID: Es el ID del extremo que se borrará.
  • PROJECT_ID: Es el ID del proyecto de Google Cloud .
  • REGION_ID: el ID de la región en la que reside el extremo

Comportamiento del extremo de escritura durante el cambio o la conmutación por error entre regiones

Si bien el nombre de DNS de un extremo se resuelve en la IP de una instancia específica en el momento de la creación, estos extremos son dinámicos. En caso de que se realicen actividades de replicación entre regiones, como un cambio o una conmutación por error entre regiones (versión preliminar), los extremos de escritura de AlloyDB mantienen la conectividad continua sin intervención manual. Cuando se asciende un clúster secundario para que se convierta en el nuevo clúster principal, el extremo actualiza automáticamente su registro DNS para que apunte a la nueva instancia principal. Este comportamiento elimina la reconfiguración manual de las cadenas de conexión de la aplicación, lo que reduce de forma significativa la complejidad operativa y minimiza el tiempo de inactividad para cumplir con un objetivo de tiempo de recuperación (RTO).

Una vez que se completen la operación y la propagación de DNS, tu aplicación podrá volver a conectarse a la nueva instancia principal con el mismo nombre de DNS del extremo.

Evita escrituras en conflicto durante la conmutación por error

Usar un extremo de escritura durante una conmutación por error entre regiones ayuda a evitar escrituras en conflicto, ya que dirige automáticamente el tráfico de escritura nuevo lejos del clúster principal original y hacia el nuevo. Para obtener más información sobre el comportamiento del extremo de escritura durante la conmutación por error, consulta Usa extremos de escritura para evitar el síndrome de cerebro dividido.

¿Qué sigue?