Para desacoplar seus aplicativos do endereço IP ou do identificador uniforme de recursos (URI) específico da instância principal do AlloyDB para PostgreSQL durante alternâncias, failovers entre regiões, restaurações de backup ou migrações, configure um endpoint de gravação.
Um endpoint é um recurso do AlloyDB que fornece um nome de Sistema de Nomes de Domínio (DNS) estável que seus aplicativos podem usar para se conectar a uma instância do AlloyDB. Essa abstração simplifica o gerenciamento de conexões durante eventos operacionais, como recuperação de desastres, restaurações de backup ou migrações, porque é possível redirecionar o nome DNS do endpoint para uma instância diferente sem alterar a configuração do aplicativo.
Os endpoints do AlloyDB são compatíveis com o tipo WRITE_ENDPOINT. Um endpoint de gravação direciona o tráfego para uma única instância principal do AlloyDB e atende ao tráfego de leitura e gravação.
Embora o nome DNS funcione como um recurso global, o recurso de endpoint em si é regional. Mesmo assim, cada endpoint pode ser vinculado a instâncias globalmente, e o nome DNS dele é resolvido em qualquer local.
Benefícios de usar endpoints
O uso de um endpoint de gravação oferece os seguintes benefícios:
- Recuperação de desastres simplificada:se você realizar uma alternância ou um failover entre regiões para um cluster secundário, o AlloyDB vai atualizar automaticamente o endpoint para apontar para a nova instância principal. Seus aplicativos podem se reconectar usando o mesmo nome DNS do endpoint, reduzindo o objetivo de tempo de recuperação (RTO).
- Recuperação de backup simplificada:quando você restaura uma instância de um backup, o AlloyDB cria uma nova instância com um novo endereço IP. É possível atualizar o endpoint para apontar para a instância recém-restaurada. Esse recurso permite que os aplicativos retomem a operação sem mudanças na configuração.
- Migrações mais fáceis:durante as migrações, é possível alternar um endpoint de um banco de dados de origem para uma instância do AlloyDB com o mínimo de interrupção do aplicativo.
Limitações
- Os endpoints só são compatíveis com instâncias configuradas para usar o acesso a serviços particulares (PSA). Os endpoints não são compatíveis com instâncias configuradas para usar o Private Service Connect (PSC).
- O suporte aos conectores de linguagem do AlloyDB e ao proxy de autenticação do AlloyDB não está disponível para endpoints de gravação.
- Não há suporte para operações de modificação simultâneas (como atualizações simultâneas ou uma operação de atualização e exclusão) em endpoints que apontam para a mesma instância de destino, o que pode resultar em falha.
Antes de começar
- Instale e inicialize a Google Cloud CLI.
- Ative a API Cloud DNS.
- Verifique se você tem uma instância do AlloyDB para servir como destino para o endpoint.
Para receber as permissões necessárias para gerenciar endpoints, peça ao administrador para conceder a você o papel do Identity and Access Management (IAM) de Administrador do AlloyDB (
roles/alloydb.admin) no projeto. Esse papel predefinido contém as permissões necessárias para gerenciar endpoints.Essas permissões também podem ser concedidas com papéis personalizados ou outros papéis predefinidos. As permissões específicas necessárias são:
alloydb.endpoints.createalloydb.endpoints.updatealloydb.endpoints.getalloydb.endpoints.listalloydb.endpoints.delete
Para mais informações, consulte Papéis e permissões do IAM do AlloyDB.
É possível criar e gerenciar endpoints de gravação usando a Google Cloud CLI.
Crie um endpoint
Para criar um endpoint de gravação, use a Google Cloud CLI. O tipo de endpoint
precisa ser WRITE_ENDPOINT e precisa segmentar uma única instância principal.
Console
No console do Google Cloud , acesse a página Endpoints.
Clique em Criar endpoint.
No campo Nome do endpoint, insira um ID para o endpoint. Precisa conter letras minúsculas (a-z), números e hifens, além de começar com uma letra minúscula e terminar com uma letra minúscula ou um número.
Selecione uma Região.
Em Tipo de endpoint, selecione Gravação.
No campo Instância de destino, selecione a instância principal para que este endpoint deve apontar.
Clique em Criar.
gcloud
gcloud beta alloydb endpoints create ENDPOINT_ID \
--project=PROJECT_ID \
--region=REGION_ID \
--endpoint-type=ENDPOINT_TYPE \
--target-instances=TARGET_INSTANCE_NAME
Substitua:
ENDPOINT_ID: um identificador exclusivo para o endpoint. Esse ID precisa ser exclusivo no projeto e no local especificados.PROJECT_ID: o ID do projeto Google Cloud .REGION_ID: o ID da região em que você quer criar o endpoint, por exemplo,us-central1.ENDPOINT_TYPE: o tipo do recurso de endpoint. SomenteWRITE_ENDPOINTé aceito.TARGET_INSTANCE_NAME: o nome completo do recurso da instância do AlloyDB para PostgreSQL para que o endpoint aponta. O caminho completo do recurso para uma instância tem o seguinte formato:projects/$PROJECT/locations/$LOCATION/clusters/$CLUSTER/instances/$INSTANCE.
Conectar-se a uma instância usando um endpoint
Para se conectar à instância do AlloyDB usando um endpoint, primeiro é necessário conseguir o nome DNS gerado automaticamente associado ao endpoint.
Encontrar o nome DNS
É possível ver o nome DNS de um endpoint usando a Google Cloud CLI.
Console
No console do Google Cloud , acesse a página Endpoints.
Encontre o endpoint ao qual você quer se conectar e copie o valor na coluna Nome do DNS.
gcloud
Use o comando
gcloud beta alloydb endpoints describe:gcloud beta alloydb endpoints describe ENDPOINT_ID \ --project=PROJECT_ID \ --region=REGION_IDSubstitua:
ENDPOINT_ID: o ID do endpoint.PROJECT_ID: o ID do projeto do Google Cloud .REGION_ID: o ID da região em que o endpoint reside.
Na resposta ao comando, encontre o campo
dnsNamee copie o valor dele.
Conectar usando o psql
Depois de ter o nome DNS, use-o como host na string de conexão
ou na ferramenta do cliente. Por exemplo, para se conectar usando o cliente psql, execute o
seguinte comando:
psql -h DNS_NAME -U USERNAME -d DATABASE_NAME
Substitua:
DNS_NAME: o nome DNS do endpointUSERNAME: o usuário do banco de dados que será usado para a conexão.DATABASE_NAME: o nome do banco de dados a ser conectado;
Para mais informações sobre como usar o psql, consulte
Conectar usando o cliente psql.
Atualizar um endpoint
Para mudar a instância para que um endpoint aponta, como após uma operação de restauração, use os seguintes comandos:
Console
No console do Google Cloud , acesse a página Endpoints.
Na linha do endpoint que você quer atualizar, clique em Ações e selecione Editar.
No campo Instância de destino, selecione a nova instância principal para a qual esse endpoint deve apontar.
Clique em Atualizar.
gcloud
gcloud beta alloydb endpoints update ENDPOINT_ID \
--project=PROJECT_ID \
--region=REGION_ID \
--target-instances=NEW_TARGET_INSTANCE_NAME
Substitua:
ENDPOINT_ID: o ID do endpoint a ser atualizado.PROJECT_ID: o ID do projeto do Google Cloud .REGION_ID: o ID da região em que o endpoint reside.NEW_TARGET_INSTANCE_NAME: o nome completo do recurso das novas instâncias de destino.
Listar endpoints
Para listar todos os endpoints em um determinado projeto e região, use o seguinte comando:
Console
No console do Google Cloud , acesse a página Endpoints.
A página lista todos os endpoints no projeto atual.
gcloud
gcloud beta alloydb endpoints list --project=PROJECT_ID \
--region=REGION_ID
Substitua:
PROJECT_ID: o ID do projeto do Google Cloud .REGION_ID: o ID da região em que o endpoint reside.
Ver detalhes do endpoint
Para ver os detalhes de um endpoint específico, use o seguinte comando da Google Cloud CLI:
gcloud
gcloud beta alloydb endpoints describe ENDPOINT_ID \
--project=PROJECT_ID \
--region=REGION_ID
Substitua:
ENDPOINT_ID: o ID do endpoint a ser descrito.PROJECT_ID: o ID do projeto do Google Cloud .REGION_ID: o ID da região em que o endpoint reside.
No console do Google Cloud , é possível ver os detalhes do endpoint na página Endpoints.
Excluir um endpoint
Para excluir um endpoint, use os seguintes comandos:
Console
No console do Google Cloud , acesse a página Endpoints.
Na linha do endpoint que você quer excluir, clique em Ações e, em seguida, selecione Excluir.
Para confirmar, digite o ID do endpoint e clique em Excluir.
gcloud
gcloud beta alloydb endpoints delete ENDPOINT_ID \
--project=PROJECT_ID \
--region=REGION_ID
Substitua:
ENDPOINT_ID: o ID do endpoint a ser excluído.PROJECT_ID: o ID do projeto do Google Cloud .REGION_ID: o ID da região em que o endpoint reside.
Comportamento do endpoint de gravação durante a troca ou o failover entre regiões
Embora o nome DNS de um endpoint seja resolvido para o IP de uma instância específica na criação, esses endpoints são dinâmicos. No caso de atividades de replicação entre regiões, como uma troca ou um failover entre regiões (pré-lançamento), os endpoints de gravação do AlloyDB mantêm a conectividade contínua sem intervenção manual. Quando um cluster secundário é promovido para se tornar o novo cluster principal, o endpoint atualiza automaticamente o registro DNS para apontar para a nova instância principal. Esse comportamento elimina a reconfiguração manual das strings de conexão do aplicativo, reduzindo significativamente a complexidade operacional e minimizando o tempo de inatividade para atender a um objetivo de tempo de recuperação (RTO).
Depois que a operação e a propagação de DNS forem concluídas, o aplicativo poderá se reconectar à nova instância principal usando o mesmo nome DNS do endpoint.
Evitar gravações conflitantes durante o failover
O uso de um endpoint de gravação durante um failover entre regiões ajuda a evitar gravações conflitantes, direcionando automaticamente o novo tráfego de gravação para longe do cluster primário original e em direção ao novo. Para mais informações sobre o comportamento do endpoint de gravação durante o failover, consulte Usar endpoints de gravação para evitar o split-brain.
A seguir
- Saiba mais sobre como se conectar a uma instância do AlloyDB.