Panoramica
Questa pagina mostra come utilizzare un endpoint di scrittura per connetterti da client nella rete Virtual Private Cloud (VPC) a un'istanza Cloud SQL utilizzando l'accesso privato ai servizi (PSA).
Un endpoint di scrittura è un nome DNS (Domain Name Service) globale che si risolve automaticamente nell'indirizzo IP dell'istanza principale corrente. In caso di operazione di failover o cambio della replica, questo endpoint di scrittura reindirizza automaticamente le connessioni in entrata alla nuova istanza principale. Puoi utilizzare l'endpoint di scrittura in una stringa di connessione SQL all'istanza Cloud SQL anziché utilizzare un indirizzo IP. Utilizzando un endpoint di scrittura, puoi evitare di dover apportare modifiche alla connessione dell'applicazione quando esegui un'operazione di failover o cambio della replica per il ripristino in caso di interruzione della regione o per un'esercitazione di ripristino di emergenza.
Ogni istanza Cloud SQL idonea ha un singolo endpoint di scrittura integrato il cui nome, creazione e aggiornamento sono gestiti da Cloud SQL. L'esempio seguente illustra il suo formato:
primary.103uufa2svq8u.2rb3qdj9tkf4d.global.sql-psa.goog.
L'endpoint di scrittura termina sempre con il suffisso .global.sql-psa.goog..
Non puoi modificare il nome o il formato di questo endpoint di scrittura gestito da Cloud SQL.
Puoi utilizzare l'endpoint di scrittura per tutte le operazioni di scrittura sull'istanza principale, inclusi inserimenti, aggiornamenti, eliminazioni e modifiche DDL. Puoi utilizzare l'endpoint di scrittura anche per le operazioni di lettura, ad esempio le query. L'indirizzo IP privato a cui fa riferimento l'endpoint di scrittura viene modificato automaticamente da Cloud SQL quando esegui un'operazione di failover o cambio della replica per promuovere un'istanza replica come nuova istanza principale.
Genera l'endpoint di scrittura
Se crei una nuova istanza Cloud SQL, Cloud SQL crea automaticamente l'endpoint di scrittura quando vengono soddisfatti i seguenti prerequisiti:
- Le seguenti API devono essere abilitate
nel Google Cloud progetto in cui si trova l'istanza Cloud SQL:
Se non abiliti l'API Cloud DNS nel progetto, non viene creata la zona DNS di peering, il che renderà inutilizzabili i nomi DNS.
Una volta creata correttamente la zona DNS di peering, è importante che non venga modificata in alcun modo. Qualsiasi modifica, inclusa l'eliminazione, renderà inutilizzabile il DNS per la connessione al database.
- L'istanza Cloud SQL deve essere la versione Cloud SQL Enterprise Plus.
- L'istanza Cloud SQL deve essere configurata per utilizzare un IP privato con l'accesso privato ai servizi (PSA) abilitato.
- La funzionalità richiede istanze sulla nuova architettura di rete. Nella maggior parte dei casi, le nuove istanze vengono create con la nuova architettura. Per verificarlo, controlla l'architettura di rete dell'istanza.
Quando esegui l'upgrade di un'istanza Cloud SQL Enterprise esistente a un'istanza Cloud SQL Enterprise Plus, Cloud SQL genera automaticamente l'endpoint di scrittura se vengono soddisfatti i prerequisiti elencati in precedenza. Se l'istanza esistente si trova nella vecchia architettura di rete, devi prima eseguire l'upgrade dell'istanza alla nuova architettura di rete per ottenere l'endpoint di scrittura.
Visualizza l'endpoint di scrittura
gcloud
Per trovare l'endpoint di scrittura, utilizza il seguente comando gcloud CLI:
gcloud sql instances describe INSTANCE_NAME \ | grep writeEndpoint
Esegui le seguenti sostituzioni:
INSTANCE_NAME: il nome dell'istanza Cloud SQL.
Gli endpoint di scrittura terminano sempre con il suffisso .global.sql-psa.goog., come nell'esempio seguente:
primary.103uufa2svq8u.2rb3qdj9tkf4d.global.sql-psa.goog.
Se non vedi l'endpoint di scrittura per un'istanza idonea, consulta la sezione Risoluzione dei problemi.
Connettiti a un'istanza Cloud SQL utilizzando un endpoint di scrittura
sqlcmd
Per connettere un client sqlcmd a un'istanza Cloud SQL utilizzando l'endpoint di scrittura,
esegui il seguente comando:
sqlcmd -S WRITE_ENDPOINT -U USERNAME -d DATABASE_NAME -P
Esegui le seguenti sostituzioni:
- DATABASE_NAME: il nome del database. Ad esempio,
main. - USERNAME: il nome utente. Ad esempio,
sqlserver. - WRITE_ENDPOINT: il nome DNS o l'endpoint di scrittura. Questo valore alfanumerico
termina sempre con il
.global.sql-psa.goog.suffisso. Ad esempio,primary.103uufa2svq8u.2rb3qdj9tkf4d.global.sql-psa.goog..
Limitazioni
- Gli endpoint di scrittura non sono disponibili per le creazioni di istanze Cloud SQL Enterprise.
- Gli endpoint di scrittura non sono disponibili per le istanze solo con IP pubblico o solo con Private Service Connect.
Risoluzione dei problemi
Le sezioni seguenti descrivono l'architettura degli endpoint di scrittura e trattano i problemi comuni di risoluzione dei problemi.
Architettura di un endpoint di scrittura
Quando crei un'istanza idonea, viene generato un endpoint di scrittura per impostazione predefinita.
Per creare un endpoint di scrittura, Cloud SQL esegue la seguente configurazione:
- Crea una zona DNS privata nella rete VPC del producer di servizi Cloud SQL
- Crea una zona DNS di peering nella rete VPC del cliente
- Crea un record DNS nella zona DNS privata nella rete del producer di servizi
Il seguente diagramma illustra il funzionamento di questo processo:
Problemi di risoluzione DNS
Se la risoluzione DNS non funziona, controlla ciascuno dei seguenti elementi:
- Assicurati che tutti i prerequisiti siano soddisfatti.
- Assicurati che i client in cui è prevista la risoluzione si trovino in
nella stessa rete a cui è collegata l'istanza Cloud SQL. Per verificarlo, utilizza il
gcloud compute instances listcomando:gcloud compute instances list \ --format="table( name, zone.basename(), networkInterfaces[].network )" \ --project=PROJECT_NAME
Sostituisci PROJECT_NAME con il nome del progetto in cui si trova la rete consumer DNS risiede.
- Verifica che la zona di peering esista. Per farlo, utilizza il
gcloud dns managed-zones listcomando:gcloud dns managed-zones list \ --project=PROJECT_NAME
Sostituisci PROJECT_NAME con il nome del progetto in cui si trova la rete consumer DNS.
La nuova istanza non ha un endpoint di scrittura
Se una nuova istanza non contiene un endpoint di scrittura, controlla ciascuno dei seguenti elementi:
- Assicurati che tutti i prerequisiti siano soddisfatti.
- Assicurati che non esista una zona DNS di peering residua con il nome DNS
sql-psa.goog..Una zona DNS di peering è una zona DNS residua se la rete associata a la zona DNS non ha un peering VPC con l'ID progetto peer della zona DNS di peering.
Se esiste una zona DNS di peering residua con il
sql-psa.goog.suffisso, eliminala.Per verificare la presenza di zone DNS di peering residue, utilizza il
gcloud dns managed-zones listcomando:gcloud dns managed-zones list \ --project=PROJECT_NAME
Sostituisci PROJECT_NAME con il nome del progetto in cui si trova la rete consumer DNS.
Se esiste una zona DNS con il suffisso
sql-psa.goog., eliminala dopo aver verificato che la zona DNS di peering sia una zona DNS residua.Per eliminare una zona DNS, utilizza il comando
gcloud dns managed-zones delete:gcloud dns managed-zones delete ZONE_NAME
Sostituisci ZONE_NAME con il nome della zona DNS associata agli endpoint di scrittura. I valori sono alfanumerici e utilizzano il seguente formato:
cloud-sql-psa-dns-1234567890.
Passaggi successivi
- Scopri di più sulla risoluzione dei problemi di Cloud SQL.