Questa pagina descrive come utilizzare gli endpoint di scrittura di AlloyDB per PostgreSQL per semplificare la gestione delle connessioni ai database per le tue applicazioni.
Un endpoint è una risorsa AlloyDB che fornisce un nome di servizio DNS (Domain Name Service) stabile che le tue applicazioni possono utilizzare per connettersi a un'istanza AlloyDB. Utilizzando un endpoint, disaccoppi l'applicazione dall'indirizzo IP o dall'URI (Uniform Resource Identifier) specifico di un'istanza. Questa astrazione semplifica la gestione delle connessioni durante gli eventi operativi, ad esempio ripristino di emergenza, i ripristinamenti dei backup o le migrazioni, perché puoi reindirizzare il nome DNS dell'endpoint a un'altra istanza senza modificare la configurazione dell'applicazione.
Gli endpoint AlloyDB supportano il tipo WRITE_ENDPOINT. Un endpoint di scrittura indirizza il traffico a una singola istanza principale di AlloyDB e gestisce sia il traffico di lettura sia quello di scrittura.
Sebbene il nome DNS funzioni come risorsa globale, la risorsa endpoint stessa è regionale. Anche così, ogni endpoint può collegarsi a istanze a livello globale e il relativo nome DNS viene risolto da qualsiasi località.
Vantaggi dell'utilizzo degli endpoint
L'utilizzo di un endpoint di scrittura offre i seguenti vantaggi:
- Disaster ripristino di emergenza: se esegui uno switchover o un failover tra regioni a un cluster secondario, AlloyDB aggiorna automaticamente l'endpoint in modo che punti alla nuova istanza principale. Le applicazioni possono quindi riconnettersi utilizzando lo stesso nome DNS dell'endpoint, riducendo l'obiettivo del tempo di ripristino (RTO).
- Ripristino dei backup senza interruzioni: quando ripristini un'istanza da un backup, AlloyDB crea una nuova istanza con un nuovo indirizzo IP. Puoi aggiornare l'endpoint in modo che punti all'istanza appena ripristinata. In questo modo, le applicazioni possono riprendere l'operazione senza modifiche alla configurazione.
- Migrazioni più semplici: durante le migrazioni, puoi passare un endpoint da un database di origine a un'istanza AlloyDB con un'interruzione minima dell'applicazione.
Limitazioni
- Gli endpoint supportano solo le istanze configurate per l'utilizzo di accesso ai servizi privati (PSA). Gli endpoint non supportano le istanze configurate per l'utilizzo di Private Service Connect (PSC).
- Il supporto per i connettori di linguaggio AlloyDB e il proxy di autenticazione AlloyDB non è disponibile per l'endpoint di scrittura.
- Le operazioni di modifica simultanea (ad esempio aggiornamenti simultanei o un'operazione di aggiornamento ed eliminazione) sugli endpoint che puntano alla stessa istanza target non sono supportate e potrebbero causare errori.
Prima di iniziare
- Installa e inizializza Google Cloud CLI.
- Abilita l'API Cloud DNS.
- Assicurati di avere un'istanza AlloyDB esistente da utilizzare come target per l'endpoint.
Per ottenere le autorizzazioni necessarie per gestire gli endpoint, chiedi all' amministratore di concederti il ruolo IAM (Identity and Access Management)
roles/alloydb.adminAlloyDB Admin (roles/alloydb.admin) nel progetto. Questo ruolo predefinito contiene le autorizzazioni necessarie per gestire gli endpoint.Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti. Le autorizzazioni specifiche richieste sono:
alloydb.endpoints.createalloydb.endpoints.updatealloydb.endpoints.getalloydb.endpoints.listalloydb.endpoints.delete
Per saperne di più, consulta Ruoli e autorizzazioni IAM di AlloyDB.
Puoi creare e gestire gli endpoint di scrittura utilizzando Google Cloud CLI.
Creazione di un endpoint
Per creare un endpoint di scrittura, utilizza Google Cloud CLI. Il tipo di endpoint deve essere WRITE_ENDPOINT e deve avere come target una singola istanza principale.
Console
Nella Google Cloud console, vai alla pagina Endpoint.
Fai clic su Crea endpoint.
Nel campo Nome endpoint, inserisci un ID per l'endpoint. Deve essere composto da lettere minuscole (a-z), numeri e trattini, deve iniziare con una lettera minuscola e terminare con una lettera minuscola o un numero.
Seleziona una regione.
Per Tipo di endpoint, seleziona Scrittura.
Nel campo Istanza target, seleziona l'istanza principale a cui deve puntare questo endpoint.
Fai clic su Crea.
gcloud
gcloud beta alloydb endpoints create ENDPOINT_ID \
--project=PROJECT_ID \
--region=REGION_ID \
--endpoint-type=ENDPOINT_TYPE \
--target-instances=TARGET_INSTANCE_NAME
Sostituisci quanto segue:
ENDPOINT_ID: un identificatore univoco per l'endpoint. Questo ID deve essere univoco all'interno del progetto e della località specificati.PROJECT_ID: l'ID del tuo Google Cloud progetto.REGION_ID: l'ID della regione in cui vuoi creare l'endpoint, ad esempious-central1.ENDPOINT_TYPE: il tipo di risorsa endpoint. È supportato soloWRITE_ENDPOINT.TARGET_INSTANCE_NAME: il nome completo della risorsa dell'istanza AlloyDB per PostgreSQL a cui punta l'endpoint. Il percorso completo della risorsa per un'istanza ha il seguente formato:projects/$PROJECT/locations/$LOCATION/clusters/$CLUSTER/instances/$INSTANCE.
Connessione a un'istanza utilizzando un endpoint
Per connetterti all'istanza AlloyDB utilizzando un endpoint, devi prima ottenere il nome DNS generato automaticamente associato all'endpoint.
Ottenere il nome DNS
Puoi visualizzare il nome DNS di un endpoint utilizzando Google Cloud CLI.
Console
Nella Google Cloud console, vai alla pagina Endpoint.
Trova l'endpoint a cui vuoi connetterti e copia il valore nella colonna Nome DNS.
gcloud
Utilizza il
gcloud beta alloydb endpoints describecomando:gcloud beta alloydb endpoints describe ENDPOINT_ID \ --project=PROJECT_ID \ --region=REGION_IDSostituisci quanto segue:
ENDPOINT_ID: l'ID dell'endpointPROJECT_ID: il tuo Google Cloud ID progettoREGION_ID: l'ID della regione in cui si trova l'endpoint
Nell'output comando, trova il campo
dnsNamee copia il relativo valore.
Connessione tramite psql
Dopo aver ottenuto il nome DNS, puoi utilizzarlo come host nella stringa di connessione o nello strumento client. Ad esempio, per connetterti utilizzando il client psql, esegui il seguente comando:
psql -h DNS_NAME -U USERNAME -d DATABASE_NAME
Sostituisci quanto segue:
DNS_NAME: il nome DNS dell'endpointUSERNAME: l'utente del database con cui connettertiDATABASE_NAME: il nome del database a cui connetterti
Per saperne di più sull'utilizzo di psql, consulta
Connessione tramite il client psql.
Aggiornamento di un endpoint
Per modificare l'istanza a cui punta un endpoint, ad esempio dopo un'operazione di ripristino, utilizza i seguenti comandi:
Console
Nella Google Cloud console, vai alla pagina Endpoint.
Nella riga dell'endpoint che vuoi aggiornare, fai clic su Azioni e poi seleziona Modifica.
Nel campo Istanza target, seleziona la nuova istanza principale a cui deve puntare questo endpoint.
Fai clic su Aggiorna.
gcloud
gcloud beta alloydb endpoints update ENDPOINT_ID \
--project=PROJECT_ID \
--region=REGION_ID \
--target-instances=NEW_TARGET_INSTANCE_NAME
Sostituisci quanto segue:
ENDPOINT_ID: l'ID dell'endpoint da aggiornarePROJECT_ID: il tuo Google Cloud ID progettoREGION_ID: l'ID della regione in cui si trova l'endpointNEW_TARGET_INSTANCE_NAME: il nome completo della risorsa delle nuove istanze di destinazione
Elenco degli endpoint
Per elencare tutti gli endpoint in un determinato progetto e in una determinata regione, utilizza il seguente comando:
Console
Nella Google Cloud console, vai alla pagina Endpoint.
La pagina elenca tutti gli endpoint nel progetto corrente.
gcloud
gcloud beta alloydb endpoints list --project=PROJECT_ID \
--region=REGION_ID
Sostituisci quanto segue:
PROJECT_ID: il tuo Google Cloud ID progettoREGION_ID: l'ID della regione in cui si trova l'endpoint
Visualizzazione dei dettagli dell'endpoint
Per visualizzare i dettagli di un endpoint specifico, utilizza il seguente comando Google Cloud CLI:
gcloud
gcloud beta alloydb endpoints describe ENDPOINT_ID \
--project=PROJECT_ID \
--region=REGION_ID
Sostituisci quanto segue:
ENDPOINT_ID: l'ID dell'endpoint da descriverePROJECT_ID: il tuo Google Cloud ID progettoREGION_ID: l'ID della regione in cui si trova l'endpoint
Nella Google Cloud console, puoi visualizzare i dettagli dell'endpoint nella pagina Endpoint.
Eliminazione di un endpoint
Per eliminare un endpoint, utilizza i seguenti comandi:
Console
Nella Google Cloud console, vai alla pagina Endpoint.
Nella riga dell'endpoint che vuoi eliminare, fai clic su Azioni e poi seleziona Elimina.
Per confermare, digita l'ID dell'endpoint e fai clic su Elimina.
gcloud
gcloud beta alloydb endpoints delete ENDPOINT_ID \
--project=PROJECT_ID \
--region=REGION_ID
Sostituisci quanto segue:
ENDPOINT_ID: l'ID dell'endpoint da eliminarePROJECT_ID: il tuo Google Cloud ID progettoREGION_ID: l'ID della regione in cui si trova l'endpoint
Comportamento dell'endpoint di scrittura durante il cambio o il failover tra regioni
Sebbene il nome DNS di un endpoint venga risolto nell'IP di un'istanza specifica al momento della creazione, questi endpoint sono dinamici. In caso di attività di replica tra regioni, come un cambio o un failover tra regioni (anteprima), gli endpoint di scrittura di AlloyDB garantiscono una connettività continua senza intervento manuale. Quando un cluster secondario viene promosso a nuovo cluster principale, l'endpoint aggiorna automaticamente il record DNS in modo che punti alla nuova istanza principale. Questo comportamento elimina la riconfigurazione manuale delle stringhe di connessione dell'applicazione, riducendo significativamente la complessità operativa e riducendo al minimo i tempi di inattività per soddisfare un obiettivo del tempo di ripristino (RTO).
Una volta completata l'operazione e la propagazione del DNS, l'applicazione può riconnettersi alla nuova istanza principale utilizzando lo stesso nome DNS dell'endpoint.
Prevenzione di scritture in conflitto durante il failover
L'utilizzo di un endpoint di scrittura durante un failover tra regioni consente di evitare scritture in conflitto indirizzando automaticamente il nuovo traffico di scrittura dal cluster principale originale a quello nuovo. Per saperne di più sul comportamento dell'endpoint di scrittura durante il failover, consulta Utilizzare gli endpoint di scrittura per evitare lo split-brain.
Passaggi successivi
- Scopri di più sulla connessione a un'istanza AlloyDB.