En esta página, se describe cómo usar los extremos de escritura de AlloyDB para PostgreSQL para simplificar la administración de conexiones de bases de datos para tus aplicaciones.
Un extremo es un recurso de AlloyDB que proporciona un nombre de servicio de nombre de dominio (DNS) estable que tus aplicaciones pueden usar para conectarse a una instancia de AlloyDB. Si usas un extremo, desacoplas tu aplicación de la dirección IP o el identificador de recursos uniforme (URI) específicos de una instancia. Esta abstracción simplifica la administración de conexiones durante los eventos operativos (por ejemplo, recuperación ante desastres, restablecimiento de copias de seguridad o migraciones), ya que puedes redireccionar el nombre de DNS del extremo a otra instancia 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 tráfico de lectura y escritura.
Si bien el nombre 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 actualizará 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 tu objetivo de tiempo de recuperación (RTO).
- Recuperación sin problemas de copias de seguridad: Cuando restableces una instancia a partir de 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. Esto 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 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 lenguaje de AlloyDB y el proxy de autenticación de AlloyDB no está disponible para el extremo de escritura.
- No se admiten las operaciones de modificación simultáneas (como las actualizaciones simultáneas o una operación de actualización y una de eliminación) en los extremos que apuntan a la misma instancia de destino, y es posible que se produzca un error.
Antes de comenzar
- Instala y, luego, inicializa Google Cloud CLI.
- Habilita la API de Cloud DNS.
- Asegúrate de tener una instancia de AlloyDB existente que sirva como destino para el extremo.
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.createalloydb.endpoints.updatealloydb.endpoints.getalloydb.endpoints.listalloydb.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 segmentarse para una sola instancia principal.
Console
En la consola de Google Cloud , ve a la página Endpoints.
Haz clic en Crear extremo.
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.
Selecciona una Región.
En Tipo de extremo, selecciona Escribir.
En el campo Instancia de destino, selecciona la instancia principal a la que debe apuntar este extremo.
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 admiteWRITE_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 de un recurso de 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 asociado al extremo.
Obtén el nombre de DNS
Puedes ver el nombre de DNS de un extremo con Google Cloud CLI.
Console
En la consola de Google Cloud , ve a la página Endpoints.
Busca el extremo al que deseas conectarte y copia el valor de la columna Nombre de DNS.
gcloud
Usa el comando de
gcloud beta alloydb endpoints describe:gcloud beta alloydb endpoints describe ENDPOINT_ID \ --project=PROJECT_ID \ --region=REGION_IDReemplaza lo siguiente:
ENDPOINT_ID: Es el ID del extremo.PROJECT_ID: ID del proyecto de Google CloudREGION_ID: Es el ID de la región en la que reside el extremo.
En el resultado del comando, busca el campo
dnsNamey copia su valor.
Conéctate con psql
Después de obtener el nombre de DNS, puedes usarlo como host en tu cadena de conexión o herramienta de 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: Es el nombre de DNS del extremo.USERNAME: Es el usuario de la base de datos con el que se realizará 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, por ejemplo, después de una operación de restablecimiento, usa los siguientes comandos:
Console
En la consola de Google Cloud , ve a la página Endpoints.
En la fila del extremo que deseas actualizar, haz clic en Acciones y, luego, selecciona Editar.
En el campo Instancia de destino, selecciona la nueva instancia principal a la que debe apuntar este extremo.
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: ID del proyecto de Google CloudREGION_ID: Es el ID de la región en la que reside el extremo.NEW_TARGET_INSTANCE_NAME: Es el nombre completo del recurso de las nuevas instancias de destino.
Enumerar extremos
Para enumerar todos los extremos en un proyecto y una región determinados, usa el siguiente comando:
Console
En la consola de Google Cloud , ve a la página 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: ID del proyecto de Google CloudREGION_ID: Es 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: ID del proyecto de Google CloudREGION_ID: Es 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 Endpoints.
Borra un extremo †
Para borrar un extremo, usa los siguientes comandos:
Console
En la consola de Google Cloud , ve a la página Endpoints.
En la fila del extremo que deseas borrar, haz clic en Acciones y, luego, selecciona Borrar.
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: ID del extremo que se borraráPROJECT_ID: ID del proyecto de Google CloudREGION_ID: Es el ID de la región en la que reside el extremo.
Comportamiento del endpoint 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 el caso de las actividades de replicación entre regiones, como una conmutación o una conmutación por error entre regiones (versión preliminar), los extremos de escritura de AlloyDB garantizan una conectividad continua sin intervención manual. Cuando un clúster secundario se promueve para convertirse 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 necesidad de volver a configurar manualmente las cadenas de conexión de la aplicación, lo que reduce significativamente 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 cerebro dividido.
¿Qué sigue?
- Obtén más información para conectarte a una instancia de AlloyDB.