Per connetterti a un'istanza AlloyDB per PostgreSQL principale, di pool di lettura o secondaria da più reti Virtual Private Cloud (VPC) appartenenti a gruppi, team, progetti o organizzazioni diversi senza configurare il peering di rete VPC, puoi configurare Private Service Connect.
Ruoli obbligatori
A seconda che tu stia configurando l'infrastruttura di Private Service Connect o che ti stia connettendo come client di database, concedi i ruoli Identity and Access Management (IAM) appropriati:
| Attività | Ruolo | Descrizione |
|---|---|---|
| Configura gli endpoint e i collegamenti di rete di Private Service Connect | Compute Network Admin (roles/compute.networkAdmin) |
Concede il controllo completo sulla rete VPC consumer che avvia una connessione a un'istanza AlloyDB. Se ti connetti da più reti VPC, ogni rete è gestita dal proprio amministratore. |
| Configura zone DNS private e record | DNS Administrator (roles/dns.admin) |
Concede il controllo completo sulle risorse Cloud DNS, incluse le zone DNS private e i set di record. |
| Crea e gestisci cluster e istanze AlloyDB | Amministratore AlloyDB (roles/alloydb.admin) |
Fornisce il controllo completo dei cluster e delle istanze AlloyDB nel corso del loro ciclo di vita. Se utilizzi un ruolo personalizzato, concedi alloydb.clusters.create (per abilitare Private Service Connect su un cluster) e alloydb.instances.create e alloydb.instances.update (per configurare i progetti consumer consentiti e gli URI dei collegamenti di rete). |
| Connettiti a un'istanza come client | Client AlloyDB (roles/alloydb.client) e Service Usage Consumer (roles/serviceusage.serviceUsageConsumer) (facoltativo) |
Obbligatorio se ti connetti tramite il proxy di autenticazione AlloyDB o gli AlloyDB Language Connector. Se utilizzi anche l'autenticazione IAM del database, concedi il ruolo AlloyDB Database User (roles/alloydb.databaseUser). Se ti connetti direttamente utilizzando l'autenticazione integrata del database, non sono richiesti ruoli IAM per la connessione client. |
Crea un endpoint Private Service Connect
Gli endpoint di Private Service Connect sono indirizzi IP interni in una rete VPC consumer a cui i client in quella rete possono accedere direttamente per connettersi alle istanze AlloyDB.
Per fare in modo che AlloyDB crei automaticamente l'endpoint Private Service Connect, segui questi passaggi:
- Riutilizza una policy di connessione al servizio esistente o creane una nelle tue reti VPC. Con questa policy, puoi eseguire automaticamente il provisioning degli endpoint Private Service Connect.
- Crea un cluster e un'istanza AlloyDB con Private Service Connect abilitato per l'istanza e configura l'istanza in modo che crei automaticamente gli endpoint Private Service Connect.
- Recupera l'endpoint per l'istanza. In questo modo puoi utilizzare l'endpoint per connetterti all'istanza.
- (Facoltativo) Aggiorna un cluster e un'istanza AlloyDB esistenti con Private Service Connect abilitato per generare automaticamente gli endpoint.
Puoi anche creare l'endpoint Private Service Connect manualmente.
Crea l'endpoint automaticamente
Per configurare l'istanza in modo che AlloyDB crei automaticamente l'endpoint Private Service Connect, segui questi passaggi generali:
- Crea una policy di connessione al servizio.
- Crea un'istanza AlloyDB.
- Recupera l'endpoint.
- Aggiorna un'istanza per creare automaticamente gli endpoint.
- Configura la connettività in uscita.
Crea una policy di connessione al servizio
Puoi riutilizzare una policy di connessione ai servizi esistente o crearne una utilizzando la console Google Cloud o Google Cloud CLI.
Una policy di connessione al servizio consente di autorizzare una classe di servizio specificata a creare un endpoint Private Service Connect nella rete VPC consumer. Puoi utilizzare la policy di connessione al servizio per consentire ad AlloyDB di creare automaticamente endpoint Private Service Connect.
Console
Nella console Google Cloud , vai alla pagina Private Service Connect.
Fai clic sulla scheda Policy di connessione.
Fai clic su Crea policy di connessione.
Inserisci un nome per la policy di connessione.
Nella sezione Dettagli servizio, per Classe di servizio, seleziona
google-cloud-alloydb.Nella sezione Ambito degli endpoint, seleziona una Rete e una Regione a cui si applica questa policy.
Nella sezione Configurazione endpoint, seleziona una o più subnet dal menu Subnet. Le subnet vengono utilizzate per allocare gli indirizzi IP per gli endpoint.
(Facoltativo) Specifica un limite di connessioni per la policy. Il limite determina il numero di endpoint che AlloyDB può creare per questa policy di connessione. Se non specifichi un limite di connessioni, non esiste alcun limite.
Fai clic su Crea policy.
gcloud
Per creare una policy di connessione al servizio, utilizza il
comando service-connection-policies create.
gcloud network-connectivity service-connection-policies create POLICY_NAME \
--network=NETWORK \
--project=PROJECT_ID \
--region=REGION \
--service-class=SERVICE_CLASS \
--subnets=https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETS \
--psc-connection-limit=LIMIT \
--description="DESCRIPTION" \
--producer-instance-location=PRODUCER_INSTANCE_LOCATION \
--allowed-google-producers-resource-hierarchy-level=LIST_OF_NODES
Sostituisci quanto segue:
POLICY_NAME: il nome della policy di connessione ai servizi.NETWORK: la rete a cui si applica questa policy.PROJECT_ID: l'ID progetto o il numero del progetto della rete VPC. Per le reti VPC condivise, devi eseguire il deployment delle policy di connessione ai servizi nel progetto host, perché queste policy non sono supportate nei progetti di servizio.REGION: la regione a cui si applica questa policy. La stessa policy deve esistere per ogni regione in cui vuoi automatizzare la connettività dei servizi.SERVICE_CLASS: l'identificatore della risorsa della classe di servizio fornito dal producer. Per AlloyDB, la classe di servizio ègoogle-cloud-alloydb.SUBNETS: una o più subnet consumer normali utilizzate per allocare gli indirizzi IP per gli endpoint Private Service Connect. Questi indirizzi IP vengono allocati automaticamente e restituiti al pool della subnet man mano che le istanze di servizi gestiti vengono create ed eliminate. Le subnet devono trovarsi nella stessa regione della policy di connessione ai servizi. Se più policy di connessione condividono la stessa regione, puoi riutilizzare la stessa subnet in queste policy. Puoi inserire più subnet in un elenco separato da virgole.LIMIT: il numero massimo di endpoint che puoi creare con questa policy. Se non specifichi un limite, non verrà applicato alcun limite.DESCRIPTION: una descrizione facoltativa della policy di connessione ai servizi.PRODUCER_INSTANCE_LOCATION: specifica se la policy automatizza le connessioni alle istanze AlloyDB. Puoi impostare questo valore su uno dei seguenti:none(valore predefinito): l'istanza AlloyDB si trova nello stesso progetto della policy di connessione ai servizi. In un ambiente VPC condiviso, se l'istanza AlloyDB si trova in un progetto di servizio e stai creando la policy di connessione nel progetto host, devi impostare questo parametro sucustom-resource-hierarchy-levels.custom-resource-hierarchy-levels: richiede di impostare il percorso della località di Resource Manager per i progetti per i quali vuoi automatizzare la connettività tramite il parametroallowed-google-producers-resource-hierarchy-level.
LIST_OF_NODES: imposta questo parametro se la località dell'istanza producer è impostata sucustom-resource-hierarchy-levels. Questo parametro è un elenco di progetti, cartelle e organizzazioni in cui si trovano le istanze per cui vuoi automatizzare la connettività. L'elenco è nel formatoprojects/PROJECT_ID,folders/FOLDER_IDoorganizations/ORGANIZATION_ID.
Ad esempio, il seguente comando crea una policy di connessione ai servizi per la classe di servizio google-cloud-alloydb che alloca gli indirizzi IP dalla subnet managed-service-subnet. Con questa policy è possibile creare un massimo di 10 endpoint Private Service Connect. Gli endpoint devono essere creati in progetti che si trovano nella stessa organizzazione dell'istanza del servizio gestito. L'istanza AlloyDB si trova nel progetto myproject.
gcloud network-connectivity service-connection-policies create alloydb-policy \
--network=default \
--project=my-project \
--region=us-central1 \
--service-class=google-cloud-alloydb \
--subnets=managed-service-subnet \
--psc-connection-limit=10 \
--producer-instance-location=custom-resource-hierarchy-levels \
--allowed-google-producers-resource-hierarchy-level=projects/myproject
Crea un'istanza AlloyDB
Puoi creare un'istanza con Private Service Connect abilitato e configurarla in modo che crei automaticamente gli endpoint utilizzando la console Google Cloud , gcloud CLI o Terraform.
Console
Nella console Google Cloud , vai alla pagina Cluster.
Fai clic su Crea cluster.
In ID cluster, inserisci
my-cluster.Inserisci una password. Prendi nota di questa password perché la utilizzerai in questa guida rapida.
Mantieni la versione del database predefinita.
Seleziona la regione
us-central1 (Iowa).Mantieni l'ID istanza predefinito,
my-cluster-primary.In Disponibilità a livello di zona, mantieni Zona singola come opzione selezionata. Sebbene non sia consigliabile un'istanza a zona singola per la produzione, in questa guida rapida utilizzerai una zona singola per ridurre al minimo i costi. Per saperne di più, consulta Riduci i costi utilizzando le istanze di base.
Seleziona il tipo di macchina
2 vCPU, 16 GB.Mantieni la connettività con IP privato.
- Seleziona Private Service Connect (PSC).
- Fai clic su Aggiungi un endpoint.
- Seleziona il progetto in cui vuoi creare l'endpoint.
- Seleziona la rete.
- Fai clic su Controlla policy per informazioni sulla policy di connessione al servizio.
Mantieni le impostazioni predefinite in Sicurezza di rete.
Non apportare modifiche in Mostra opzioni avanzate.
Fai clic su Crea cluster. La creazione del cluster da parte di AlloyDB e la sua visualizzazione nella pagina Panoramica del cluster principale potrebbero richiedere alcuni minuti.
gcloud
Per creare il cluster, utilizza il comando gcloud alloydb clusters
create.
gcloud alloydb clusters create CLUSTER_ID \
--password=PASSWORD \
--region=REGION_ID \
--project=PROJECT_ID \
--enable-private-service-connectSostituisci quanto segue:
CLUSTER_ID: l'ID del cluster che stai creando. Deve iniziare con una lettera minuscola e può contenere lettere minuscole, numeri e trattini.PASSWORD: la password da utilizzare per l'utentepostgrespredefinito.REGION_ID: la regione in cui si trova il cluster.PROJECT_ID: l'ID del progetto in cui si trova il cluster.
Questo comando avvia un'operazione a lunga esecuzione, restituendo un ID operazione.
Per creare l'istanza AlloyDB, un pool principale o un pool di lettura per l'utilizzo di Private Service Connect, utilizza il comando gcloud alloydb instances create. Includi il parametro --allowed-psc-projects per specificare quali progetti consumer possono creare endpoint per connettersi a questa istanza.
gcloud alloydb instances create INSTANCE_ID \
--instance-type=PRIMARY \
--cpu-count=CPU_COUNT \
--availability-type=AVAILABILITY \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--allowed-psc-projects=ALLOWED_PROJECT_LIST \
--psc-network-attachment-uri=NETWORK_ATTACHMENT_URI \
--psc-auto-connections=network=CONSUMER_NETWORK,project=CONSUMER_PROJECTSostituisci quanto segue:
INSTANCE_ID: l'ID dell'istanza che stai creando. Deve iniziare con una lettera minuscola e può contenere lettere minuscole, numeri e trattini.CPU_COUNT: il numero di vCPU che vuoi per l'istanza. I valori validi includono:2: 2 vCPU, 16 GB di RAM4: 4 vCPU, 32 GB di RAM8: 8 vCPU, 64 GB di RAM16: 16 vCPU, 128 GB di RAM32: 32 vCPU, 256 GB di RAM64: 64 vCPU, 512 GB di RAM96: 96 vCPU, 768 GB di RAM128: 128 vCPU, 864 GB di RAM
AVAILABILITY: indica se questa istanza deve essere ad alta affidabilità (HA), con nodi in più zone. I valori validi includono:REGIONAL: crea un'istanza ad alta affidabilità con nodi attivi e in standby separati e failover automatico tra i due. Questo è il valore predefinito, adatto per gli ambienti di produzione.ZONAL: crea un'istanza di base, contenente un solo nodo e nessun failover automatico.
REGION_ID: la regione in cui si trova l'istanza.CLUSTER_ID: l'ID del cluster che hai creato in precedenza.ALLOWED_PROJECT_LIST: l'elenco separato da virgole di ID progetto o numeri di progetto a cui vuoi consentire l'accesso all'istanza, ad esempiomy-project-1,12345,my-project-n.NETWORK_ATTACHMENT_URI(facoltativo): il nome completo della risorsa dell'URI del collegamento di rete che crei per la connettività in uscita. Ad esempioprojects/PROJECT_ID/regions/REGION_ID/networkAttachments/NETWORK_ATTACHMENT_ID.CONSUMER_NETWORK: il percorso della rete VPC in cui vengono creati gli endpoint Private Service Connect. Ad esempio:projects/my-host-project/global/networks/default. Questa opzione si applica quando crei gli endpoint automaticamente. Assicurati che la policy di connessione al servizio sia stata creata. Puoi creare la policy prima o dopo la creazione dell'istanza.CONSUMER_PROJECT: il progetto in cui viene creato l'endpoint Private Service Connect. Se utilizzi una rete VPC condiviso, può trattarsi del progetto host o del progetto di servizio. Tutti i progetti specificati nei parametri di connessione automatica vengono aggiunti automaticamente ai progetti consentiti. Facoltativamente, puoi aggiungere all'elenco dei progetti consentiti i progetti in cui vuoi creare manualmente gli endpoint Private Service Connect.
Un cluster secondario creato per un cluster primario abilitato per Private Service Connect eredita automaticamente la configurazione di Private Service Connect. Per saperne di più, consulta Crea un cluster secondario.
Terraform
Per creare un cluster e un'istanza AlloyDB con Private Service Connect abilitato, utilizza le risorse Terraform google_alloydb_cluster e google_alloydb_instance:
resource "google_alloydb_cluster" "default" {
cluster_id = "alloydb-cluster"
location = "us-central1"
psc_config {
psc_enabled = true
}
}
resource "google_alloydb_instance" "default" {
cluster = google_alloydb_cluster.default.name
instance_id = "alloydb-instance"
instance_type = "PRIMARY"
machine_config {
cpu_count = 2
}
psc_instance_config {
allowed_consumer_projects = [data.google_project.project.number]
psc_auto_connections {
consumer_network = google_compute_network.default.id
consumer_project = data.google_project.project.project_id
}
psc_interface_configs {
network_attachment_resource = google_compute_network_attachment.default.id
}
}
}
resource "google_compute_network" "default" {
name = "alloydb-network"
auto_create_subnetworks = false
}
resource "google_compute_subnetwork" "default" {
name = "alloydb-subnetwork"
region = "us-central1"
network = google_compute_network.default.id
ip_cidr_range = "10.0.0.0/16"
}
resource "google_compute_network_attachment" "default" {
name = "alloydb-network-attachment"
region = "us-central1"
connection_preference = "ACCEPT_AUTOMATIC"
subnetworks = [
google_compute_subnetwork.default.self_link
]
}
data "google_project" "project" {}
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Recupera l'endpoint
Recuperando l'indirizzo IP interno, che è l'endpoint Private Service Connect per un'istanza, puoi utilizzare questo endpoint per connetterti all'istanza.
Per visualizzare le informazioni su un'istanza, incluso l'indirizzo IP che funge da endpoint Private Service Connect per l'istanza, utilizza il comando gcloud alloydb instances describe:
gcloud alloydb instances describe INSTANCE_NAME \ --project=PROJECT_ID \ --cluster=CLUSTER_ID \ --region=REGION_ID \ --format='json(pscInstanceConfig.pscAutoConnections)'
Sostituisci quanto segue:
- INSTANCE_NAME: il nome dell'istanza AlloyDB. Se per questa istanza è abilitato Private Service Connect, gli endpoint di Private Service Connect nelle reti VPC possono connettersi all'istanza.
- PROJECT_ID: l'ID o il numero di progetto del progetto Google Cloud che contiene l'istanza.
- CLUSTER_ID: l'ID del cluster.
- REGION_ID: la regione in cui si trova l'istanza.
Nella risposta, prendi nota del valore visualizzato accanto al campo pscInstanceConfig.pscAutoConnections.ipAddress. Questo valore è l'indirizzo IP interno che è anche l'endpoint Private Service Connect per l'istanza.
Aggiorna un'istanza per creare automaticamente gli endpoint
Per aggiornare un'istanza in modo da creare automaticamente gli endpoint, utilizza il comando gcloud alloydb instances update con il parametro --psc-auto-connections:
gcloud alloydb instances update INSTANCE_ID \
--cluster=CLUSTER_ID \
--region=REGION_ID \
--project=PROJECT_ID \
--psc-auto-connections=network=CONSUMER_NETWORK,project=CONSUMER_PROJECTSostituisci quanto segue:
INSTANCE_ID: l'ID dell'istanza che stai aggiornando.CLUSTER_ID: l'ID del cluster.REGION_ID: la regione in cui si trova l'istanza.PROJECT_ID: l'ID del progetto in cui si trova l'istanzaCONSUMER_NETWORK: il percorso della rete VPC in cui vengono creati gli endpoint Private Service Connect, ad esempioprojects/my-host-project/global/networks/default.CONSUMER_PROJECT: il progetto in cui viene creato l'endpoint Private Service Connect.
Configura la connettività in uscita
Per abilitare la connettività in uscita per l'istanza AlloyDB con Private Service Connect abilitato, devi impostare l'URI del collegamento di rete per l'istanza. Per saperne di più, consulta Configura la connettività in uscita.
Crea l'endpoint manualmente
Le sezioni seguenti spiegano come creare manualmente un endpoint Private Service Connect.
Crea un'istanza AlloyDB
Puoi creare un'istanza con Private Service Connect abilitato utilizzando la console Google Cloud , gcloud CLI o Terraform.
Console
Nella console Google Cloud , vai alla pagina Cluster.
Fai clic su Crea cluster.
In ID cluster, inserisci
my-cluster.Inserisci una password. Prendi nota di questa password perché la utilizzerai in questa guida rapida.
Mantieni la versione del database predefinita.
Seleziona la regione
us-central1 (Iowa).Mantieni l'ID istanza predefinito,
my-cluster-primary.In Disponibilità a livello di zona, mantieni Zona singola come opzione selezionata. Sebbene non sia consigliabile un'istanza a zona singola per la produzione, in questa guida rapida utilizzerai una zona singola per ridurre al minimo i costi. Per saperne di più, consulta Riduci i costi utilizzando le istanze di base.
Seleziona il tipo di macchina
2 vCPU, 16 GB.Mantieni la connettività con IP privato e seleziona Private Service Connect (PSC).
In Progetti consumer consentiti, inserisci gli ID progetto o i numeri di progetto che vuoi autorizzare a connettersi all'istanza.
Mantieni le impostazioni predefinite in Sicurezza di rete.
Non apportare modifiche in Mostra opzioni avanzate.
Fai clic su Crea cluster. La creazione del cluster da parte di AlloyDB e la sua visualizzazione nella pagina Panoramica del cluster principale potrebbero richiedere alcuni minuti.
gcloud
Per creare il cluster, utilizza il comando gcloud alloydb clusters
create.
gcloud alloydb clusters create CLUSTER_ID \
--password=PASSWORD \
--region=REGION_ID \
--project=PROJECT_ID \
--enable-private-service-connectSostituisci quanto segue:
CLUSTER_ID: l'ID del cluster che stai creando. Deve iniziare con una lettera minuscola e può contenere lettere minuscole, numeri e trattini.PASSWORD: la password da utilizzare per l'utentepostgrespredefinito.REGION_ID: la regione in cui si trova il cluster.PROJECT_ID: l'ID del progetto in cui si trova il cluster.
Questo comando avvia un'operazione a lunga esecuzione, restituendo un ID operazione.
Per creare l'istanza principale, utilizza il comando gcloud alloydb instances create.
gcloud alloydb instances create INSTANCE_ID \
--instance-type=PRIMARY \
--cpu-count=CPU_COUNT \
--availability-type=AVAILABILITY \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_ID \
--allowed-psc-projects=ALLOWED_PROJECT_LIST \
--psc-network-attachment-uri=NETWORK_ATTACHMENT_URISostituisci quanto segue:
INSTANCE_ID: l'ID dell'istanza che stai creando. Deve iniziare con una lettera minuscola e può contenere lettere minuscole, numeri e trattini.CPU_COUNT: il numero di vCPU che vuoi per l'istanza. I valori validi includono:2: 2 vCPU, 16 GB di RAM4: 4 vCPU, 32 GB di RAM8: 8 vCPU, 64 GB di RAM16: 16 vCPU, 128 GB di RAM32: 32 vCPU, 256 GB di RAM64: 64 vCPU, 512 GB di RAM96: 96 vCPU, 768 GB di RAM128: 128 vCPU, 864 GB di RAM
AVAILABILITY: indica se questa istanza deve essere ad alta affidabilità (HA), con nodi in più zone. I valori validi includono:REGIONAL: crea un'istanza ad alta affidabilità con nodi attivi e in standby separati e failover automatico tra i due. Questo è il valore predefinito, adatto per gli ambienti di produzione.ZONAL: crea un'istanza di base, contenente un solo nodo e nessun failover automatico.
REGION_ID: la regione in cui si trova l'istanza.CLUSTER_ID: l'ID del cluster che hai creato in precedenza.ALLOWED_PROJECT_LIST: l'elenco separato da virgole di ID progetto o numeri di progetto a cui vuoi consentire l'accesso all'istanza, ad esempiomy-project-1,12345,my-project-n.NETWORK_ATTACHMENT_URI(facoltativo): il nome completo della risorsa dell'URI del collegamento di rete che crei per la connettività in uscita. Ad esempioprojects/PROJECT_ID/regions/REGION_ID/networkAttachments/NETWORK_ATTACHMENT_ID.
Un cluster secondario creato per un cluster primario abilitato per Private Service Connect eredita automaticamente la configurazione di Private Service Connect. Per saperne di più, consulta Crea un cluster secondario.
Terraform
Per creare un cluster e un'istanza AlloyDB con Private Service Connect abilitato, utilizza le risorse Terraform google_alloydb_cluster e google_alloydb_instance:
resource "google_alloydb_cluster" "default" {
cluster_id = "alloydb-cluster"
location = "us-central1"
psc_config {
psc_enabled = true
}
}
resource "google_alloydb_instance" "default" {
cluster = google_alloydb_cluster.default.name
instance_id = "alloydb-instance"
instance_type = "PRIMARY"
machine_config {
cpu_count = 2
}
psc_instance_config {
allowed_consumer_projects = [data.google_project.project.number]
psc_interface_configs {
network_attachment_resource = google_compute_network_attachment.default.id
}
}
}
resource "google_compute_network" "default" {
name = "alloydb-network"
auto_create_subnetworks = false
}
resource "google_compute_subnetwork" "default" {
name = "alloydb-subnetwork"
region = "us-central1"
network = google_compute_network.default.id
ip_cidr_range = "10.0.0.0/16"
}
resource "google_compute_network_attachment" "default" {
name = "alloydb-network-attachment"
region = "us-central1"
connection_preference = "ACCEPT_AUTOMATIC"
subnetworks = [
google_compute_subnetwork.default.self_link
]
}
data "google_project" "project" {}
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Recupera il collegamento al servizio
Dopo aver creato un'istanza AlloyDB con Private Service Connect abilitato, ottieni l'URL del collegamento al servizio e utilizzalo per creare l'endpoint Private Service Connect.
Per visualizzare i dettagli di un'istanza, utilizza il comando gcloud alloydb instances describe.
gcloud alloydb instances describe INSTANCE_ID \
--cluster=CLUSTER_ID \
--region=REGION_IDSostituisci quanto segue:
INSTANCE_ID: l'ID dell'istanza.CLUSTER_ID: l'ID del cluster.REGION_ID: la regione in cui è stato eseguito il deployment del cluster AlloyDB.
Di seguito è riportato un esempio di risposta per il comando:
{
"pscInstanceConfig": {
"serviceAttachmentLink": "https://www.googleapis.com/compute/v1/projects/my-project/regions/my-region/serviceAttachments/my-service-attachment-id",
"allowedConsumerProjects": [
"45678",
"12345",
"67890"
],
"pscDnsName": "015f5524-0555-4a0a-ac5a-0d15d64b15cb.008225d5-070a-4566-aaad-fcb3c87c5901.us-east4.alloydb-psc.goog."
}
}
Il parametro serviceAttachmentLink contiene il valore dell'URL del collegamento al servizio.
Crea un endpoint Private Service Connect
Per creare un endpoint Private Service Connect, passa l'URL del collegamento al servizio insieme a un nome endpoint univoco. Per saperne di più sulla creazione di un endpoint Private Service Connect, consulta Crea un endpoint.
Puoi anche prenotare un indirizzo IP interno per l'endpoint Private Service Connect utilizzando il comando gcloud compute addresses create, quindi utilizzare l'indirizzo IP prenotato durante la creazione dell'endpoint o eseguire il provisioning dell'indirizzo IP interno e della regola di forwarding utilizzando Terraform:
resource "google_compute_address" "psc_endpoint_ip" {
name = "alloydb-psc-endpoint-ip"
region = "us-central1"
subnetwork = google_compute_subnetwork.default.id
address_type = "INTERNAL"
}
resource "google_compute_forwarding_rule" "psc_endpoint" {
name = "alloydb-psc-endpoint"
region = "us-central1"
network = google_compute_network.default.id
ip_address = google_compute_address.psc_endpoint_ip.self_link
load_balancing_scheme = ""
target = google_alloydb_instance.default.psc_instance_config[0].service_attachment_link
}
Configura la connettività in uscita
Per abilitare la connettività in uscita, imposta l'URI del collegamento di rete quando crei o aggiorni un'istanza AlloyDB. Questo URI consente la connettività sicura tra il tuo progetto e l'istanza AlloyDB durante le operazioni in uscita, come le migrazioni.
Crea il collegamento di rete
Puoi creare un collegamento di rete che accetti le connessioni automaticamente (ACCEPT_AUTOMATIC) o manualmente (ACCEPT_MANUAL). Per saperne di più sulla creazione di un collegamento di rete, consulta Crea e gestisci i collegamenti di rete.
Se scegli di creare un collegamento di rete che accetta automaticamente le connessioni, non devi impostare esplicitamente un elenco di progetti accettati. Per accettare le connessioni manualmente, devi aggiungere il numero del progetto di proprietà del servizio in cui si trova l'istanza AlloyDB all'elenco dei progetti accettati.
Per trovare il numero di progetto di proprietà del servizio, esegui questo comando:
gcloud alloydb clusters describe CLUSTER_ID --region=REGION_IDDi seguito è riportato un esempio di risposta:
pscConfig:
pscEnabled: true
serviceOwnedProjectNumber: 123456789012
Dopo aver identificato il numero di progetto di proprietà del servizio, aggiungi il progetto all'elenco dei progetti accettati e poi crea il collegamento di rete.
Assicurati che la regione del collegamento di rete sia la stessa dell'istanza AlloyDB. Inoltre, la subnet utilizzata per creare il collegamento di rete deve appartenere agli intervalli IP RFC 1918, ovvero 10.0.0.0/8, 172.16.0.0/12 e 192.168.0.0/16.
Aggiorna un'istanza per la connettività in uscita
Per abilitare la connettività in uscita per un'istanza AlloyDB esistente con Private Service Connect abilitato, utilizza il comando gcloud alloydb instances update con il parametro --psc-network-attachment-uri:
gcloud alloydb instances update INSTANCE_ID \
--cluster=CLUSTER_ID \
--region=REGION_ID \
--project=PROJECT_ID \
--psc-network-attachment-uri=NETWORK_ATTACHMENT_URISostituisci quanto segue:
INSTANCE_ID: l'ID dell'istanza.CLUSTER_ID: l'ID del cluster.REGION_ID: la regione in cui si trova l'istanza.PROJECT_ID: l'ID del progetto in cui si trova l'istanzaNETWORK_ATTACHMENT_URI: il nome completo della risorsa dell'URI del collegamento di rete che crei per la connettività in uscita, ad esempioprojects/PROJECT_ID/regions/REGION_ID/networkAttachments/NETWORK_ATTACHMENT_ID.
Le istanze AlloyDB create prima del 1° marzo 2025 non possono essere aggiornate per abilitare le connessioni in uscita. In alternativa, ti consigliamo di utilizzare una delle seguenti opzioni:
- Crea una replica di replica tra regioni (CRR) regionale dell'istanza principale con la connettività in uscita abilitata. Quindi, esegui un cambio per designare l'istanza di replica come nuova istanza principale.
- Esegui un backup del cluster AlloyDB e dell'istanza principale esistenti. Quindi, crea un nuovo cluster AlloyDB e un'istanza principale con la connettività in uscita abilitata. Infine, ripristina il backup creato in precedenza nel nuovo cluster.
Disattiva la connettività in uscita
Per disattivare la connettività in uscita per un'istanza AlloyDB esistente, utilizza il comando gcloud alloydb instances update con il parametro --clear-psc-network-attachment-uri:
gcloud alloydb instances update INSTANCE_ID \
--cluster=CLUSTER_ID \
--region=REGION_ID \
--project=PROJECT_ID \
--clear-psc-network-attachment-uriSostituisci quanto segue:
INSTANCE_ID: l'ID dell'istanza.CLUSTER_ID: l'ID del cluster.REGION_ID: la regione in cui si trova l'istanza.PROJECT_ID: l'ID del progetto in cui si trova l'istanza
Connettiti a un'istanza AlloyDB
Puoi connetterti a un'istanza AlloyDB con Private Service Connect abilitato utilizzando una delle seguenti opzioni:
- Connettiti direttamente utilizzando un record DNS
- Utilizza il proxy di autenticazione AlloyDB con un record DNS
- Utilizza i connettori dei linguaggi AlloyDB con un record DNS
- Connettiti direttamente utilizzando un indirizzo IP interno
pscDnsName pregenerato dell'istanza all'indirizzo IP interno dell'endpoint Private Service Connect.Per i metodi che utilizzano un record DNS, devi creare il record in una zona DNS privata nella rete VPC consumer corrispondente. Il pscDnsName restituito dall'API AlloyDB è una stringa del nome host pregenerata e non viene risolto finché non crei una zona DNS privata e un record A nella tua rete VPC consumer.
Configura una zona gestita DNS e un record DNS
Per configurare una zona gestita DNS e un record DNS nella rete consumer, segui questi passaggi:
gcloud
Per visualizzare le informazioni di riepilogo su un'istanza AlloyDB, incluso il
pscDnsNamepregenerato dell'istanza, utilizza il comandogcloud alloydb instances describe:gcloud alloydb instances describe INSTANCE_ID \ --cluster=CLUSTER_ID \ --region=REGION_ID \ --format='json(pscInstanceConfig)'Sostituisci quanto segue:
INSTANCE_ID: l'ID dell'istanza.CLUSTER_ID: l'ID del cluster.REGION_ID: la regione in cui si trova l'istanza.
Nella risposta, verifica che venga visualizzato il campo
pscDnsName. Il nome DNS ha il patternINSTANCE_UID.CLUSTER_UID.REGION_NAME.alloydb-psc.goog., ad esempio015f5524-0555-4a0a-ac5a-0d15d64b15cb.008225d5-070a-4566-aaad-fcb3c87c5901.us-east4.alloydb-psc.goog.Per creare una zona DNS privata, utilizza il comando
gcloud dns managed-zones create. Questa zona è associata alla rete VPC utilizzata per connettersi all'istanza AlloyDB tramite l'endpoint Private Service Connect.gcloud dns managed-zones create ZONE_NAME \ --project=PROJECT_ID \ --description=DESCRIPTION \ --dns-name=DNS_NAME \ --networks=NETWORK_NAME \ --visibility=privateSostituisci quanto segue:
ZONE_NAME: il nome della zona DNS.PROJECT_ID: l'ID o il numero del progetto Google Cloud che contiene la zona.DESCRIPTION: una descrizione della zona (ad esempioDNS zone for the AlloyDB instance).DNS_NAME: il nome DNS della zona, ad esempioINSTANCE_UID.CLUSTER_UID.REGION_NAME.alloydb-psc.goog.(o il dominio principalealloydb-psc.goog.).NETWORK_NAME: il nome della rete VPC consumer. Per una rete VPC condiviso, imposta questo valore sul percorso completo della rete VPC, ad esempioprojects/cymbal-project/global/networks/shared-vpc-network.
Dopo aver creato l'endpoint Private Service Connect, crea un record DNS
Anella zona utilizzando il comandogcloud dns record-sets create:gcloud dns record-sets create DNS_NAME \ --project=PROJECT_ID \ --type=RRSET_TYPE \ --rrdatas=RR_DATA \ --zone=ZONE_NAMESostituisci quanto segue:
DNS_NAME: ilpscDnsNameche hai recuperato in precedenza in questa procedura.RRSET_TYPE: il tipo di record di risorse del set di record DNS (A).RR_DATA: l'indirizzo IP interno allocato per l'endpoint Private Service Connect (ad esempio,198.51.100.5).
Terraform
Per creare una zona Cloud DNS privata e un record A che mappa l'indirizzo pscDnsName dell'istanza all'indirizzo IP interno dell'endpoint Private Service Connect, utilizza le risorse Terraform google_dns_managed_zone e google_dns_record_set:
resource "google_dns_managed_zone" "psc_dns_zone" {
name = "alloydb-psc-zone"
dns_name = google_alloydb_instance.default.psc_instance_config[0].psc_dns_name
description = "Private DNS zone for AlloyDB PSC endpoint"
visibility = "private"
private_visibility_config {
networks {
network_url = google_compute_network.default.id
}
}
}
resource "google_dns_record_set" "psc_dns_record" {
name = google_alloydb_instance.default.psc_instance_config[0].psc_dns_name
type = "A"
ttl = 300
managed_zone = google_dns_managed_zone.psc_dns_zone.name
rrdatas = [google_compute_address.psc_endpoint_ip.address]
}
Connettiti direttamente utilizzando un record DNS
Dopo aver creato un endpoint Private Service Connect e configurato un record DNS privato A per l'pscDnsName dell'istanza, puoi connetterti direttamente da un client nella rete VPC consumer utilizzando il nome DNS (senza il punto finale):
psql -U USERNAME -h DNS_NAME -d DATABASE_NAMESostituisci quanto segue:
USERNAME: il nome dell'utente del database che si connette all'istanza.DNS_NAME: il nome del record DNS (ad esempiopscDnsNamedell'istanza senza il punto finale) che viene risolto nell'endpoint Private Service Connect.DATABASE_NAME: il nome del database a cui connettersi (ad esempiopostgres).
Connettiti utilizzando il proxy di autenticazione AlloyDB
Il proxy di autenticazione AlloyDB è un connettore che ti consente di stabilire connessioni autorizzate e criptate ai database AlloyDB. Il proxy di autenticazione AlloyDB funziona con un client locale in esecuzione nell'ambiente locale. L'applicazione comunica con il proxy di autenticazione AlloyDB con il protocollo di database standard utilizzato dal tuo database.
Quando imposti il flag --psc durante l'avvio del client Auth Proxy, l'Auth Proxy di AlloyDB risolve l'pscDnsName dell'istanza utilizzando il record DNS privato che hai creato per connetterti all'istanza abilitata per Private Service Connect.
Avvia il client proxy Auth passando l'URI dell'istanza che recuperi utilizzando il comando gcloud alloydb instances describe e imposta il flag --psc.
Per saperne di più sulla connessione a un'istanza utilizzando il proxy di autenticazione, consulta Connettiti utilizzando il proxy di autenticazione AlloyDB.
Connettiti utilizzando gli AlloyDB Language Connector
Gli AlloyDB Language Connector sono librerie che forniscono mTLS automatizzato con TLS 1.3 e autorizzazione IAM durante la connessione a un'istanza AlloyDB.
Dopo aver configurato il connettore di linguaggio per Private Service Connect, risolve il pscDnsName dell'istanza utilizzando il record DNS privato che hai creato per connetterti all'istanza.
Java
Se utilizzi Private Service Connect per connetterti all'istanza AlloyDB, includi quanto segue:
config.addDataSourceProperty("alloydbIpType", "PSC");
Per saperne di più sull'utilizzo di un endpoint Private Service Connect nel connettore Java per AlloyDB, consulta il repository GitHub.
Python (pg8000)
Se utilizzi Private Service Connect per connetterti all'istanza AlloyDB, includi quanto segue:
def getconn() -> pg8000.dbapi.Connection:
conn: pg8000.dbapi.Connection = connector.connect(
inst_uri,
"pg8000",
user=user,
password=password,
db=db,
# use ip_type to specify PSC
ip_type=IPTypes.PSC,
)
return conn
Per saperne di più sull'utilizzo di un endpoint Private Service Connect nel connettore Python di AlloyDB, consulta il repository GitHub.
Python (asyncpg)
Se utilizzi Private Service Connect per connetterti all'istanza AlloyDB, includi quanto segue:
async def getconn() -> asyncpg.Connection:
conn: asyncpg.Connection = await connector.connect(
inst_uri,
"asyncpg",
user=user,
password=password,
db=db,
# use ip_type to specify PSC
ip_type=IPTypes.PSC,
)
return conn
Per saperne di più sull'utilizzo di un endpoint Private Service Connect nel connettore Python di AlloyDB, consulta il repository GitHub.
Go (pgx)
Se utilizzi Private Service Connect per connetterti all'istanza AlloyDB, includi quanto segue:
d.Dial(ctx, instURI, alloydbconn.WithPSC())
Per saperne di più sull'utilizzo di un endpoint Private Service Connect nel connettore AlloyDB Go, consulta il repository GitHub.
Go (database/sql)
Se utilizzi Private Service Connect per connetterti all'istanza AlloyDB, includi quanto segue:
cleanup, err := postgres.RegisterDriver(
"alloydb",
alloydbconn.WithDefaultDialOptions(alloydbconn.WithPSC()),
)
Per saperne di più sull'utilizzo di un endpoint Private Service Connect nel connettore AlloyDB Go, consulta il repository GitHub.
Connettiti direttamente tramite un indirizzo IP interno
Dopo aver creato un endpoint Private Service Connect, puoi connetterti direttamente a un'istanza AlloyDB utilizzando l'indirizzo IP interno dell'endpoint senza configurare un record DNS.
Per recuperare l'indirizzo IP di un endpoint Private Service Connect creato manualmente, utilizza il comando
gcloud compute addresses describe:gcloud compute addresses describe ADDRESS_NAME \ --project=PROJECT_ID \ --region=REGION_NAMESostituisci quanto segue:
ADDRESS_NAME: il nome della risorsa dell'indirizzo IP riservato dell'endpoint.PROJECT_ID: l'ID o il numero di progetto Google Cloud che contiene l'endpoint.REGION_NAME: il nome della regione per l'endpoint.
Per connetterti all'istanza AlloyDB, utilizza l'indirizzo IP interno:
psql -U USERNAME -h IP_ADDRESSSostituisci quanto segue:
USERNAME: il nome dell'utente che si connette all'istanza.IP_ADDRESS: l'indirizzo IP interno dell'endpoint.
Limitazioni
- Puoi configurare fino a 20 endpoint Private Service Connect che si connettono al collegamento al servizio di un'istanza AlloyDB con Private Service Connect abilitato.
- Non puoi utilizzare il flag
--networkquando crei un cluster abilitato per Private Service Connect perché è associato all'accesso privato ai servizi. - Non puoi attivare o disattivare Private Service Connect su un'istanza esistente.
- Non puoi configurare un'istanza in cui è abilitato Private Service Connect per utilizzare l'accesso privato ai servizi.