Questa pagina descrive come connettere un'istanza Cloud Data Fusion privata a un'istanza Cloud SQL privata che ospita un database MySQL. Una configurazione simile funziona per le istanze Postgres e SQL Server. Le connessioni pubbliche sono possibili.
Consigliato: per motivi di sicurezza, utilizza istanze private di Cloud SQL e Cloud Data Fusion.
Crea istanze private in Cloud Data Fusion e Cloud SQL
Per connetterti a un'istanza Cloud SQL privata da un'istanza Cloud Data Fusion privata, utilizza una VM proxy di Compute Engine. È necessario un proxy perché la rete Cloud SQL non è in peering diretto con la rete Cloud Data Fusion e i peer transitivi non possono comunicare tra loro (consulta la panoramica sul peering di rete VPC).
Per creare le istanze private, segui questi passaggi:
Se non ne hai già una, crea un'istanza privata di Cloud Data Fusion. tra cui:
- Configurazione di una rete VPC
- Allocazione di un intervallo IP
Crea un'istanza Cloud SQL privata nella stessa rete VPC della tua istanza Cloud Data Fusion.
Dopo aver creato l'istanza, vai alla pagina Istanze Cloud SQL ed espandi la sezione Dettagli istanza. Nella sezione Connetti a questa istanza, copia l'IP e il nome della connessione.
Crea una VM di Compute Engine privata
Per creare la VM, puoi inserire i comandi seguenti in Cloud Shell o in un altro ambiente in cui è installato Google Cloud SDK.
I comandi creano una VM con indirizzi IP sia interni sia pubblici (--no-address
non è specificato nel comando di creazione della VM di esempio) in modo che la VM possa accedere a Container Registry per ottenere l'immagine proxy. Puoi utilizzare IP interni, ma devi anche abilitare l'accesso privato Google per la subnet in cui si trova la VM.
Esporta le seguenti variabili di ambiente:
export PROJECT=CUSTOMER_PROJECT export REGION=VM_REGION export ZONE=`gcloud compute zones list --filter="name=${REGION}" --limit 1 --uri --project=${PROJECT}| sed 's/.*\///'` export NETWORK=CUSTOMER_VPC_NETWORK_NAME export SUBNET=CUSTOMER_VPC_SUBNET_NAME export INSTANCE_NAME=COMPUTE_ENGINE_VM_NAME export SQL_CONN=SQL_INSTANCE_CONNECTION_NAME export CDF_IP_RANGE=CLOUD_DATA_FUSION_IP_RANGE export VM_IMAGE=$(gcloud compute images list --project=$PROJECT | grep cos-stable | awk 'FNR == 1 {print $1}') export SQL_PORT=DB_PORT # MySQL 3306 # PostgreSQL 5432 # SQLServer 1433
Sostituisci quanto segue:
CUSTOMER_PROJECT
: il nome del tuo progettoVM_REGION
: la regione in cui si trova la VM di Compute EngineCUSTOMER_VPC_NETWORK_NAME
: il nome della tua reteCUSTOMER_VPC_SUBNET_NAME
: nome della subnetCOMPUTE_ENGINE_VM_NAME
: il nome della VM di Compute EngineSQL_INSTANCE_CONNECTION_NAME
: il nome della connessione del passaggio precedenteCLOUD_DATA_FUSION_IP_RANGE
: l'intervallo di indirizzi IPDB_PORT
: il numero di porta del database Cloud SQL
Crea una regola firewall per consentire il traffico in entrata di Cloud Data Fusion con il seguente comando gcloud CLI:
gcloud compute firewall-rules create allow-private-cdf \ --allow=tcp:22,tcp:${SQL_PORT} \ --source-ranges=$CDF_IP_RANGE --network=$NETWORK --project=$PROJECT
Crea la VM con il seguente comando gcloud CLI:
gcloud compute --project=${PROJECT} instances create ${INSTANCE_NAME} \ --zone=${ZONE} \ --machine-type=g1-small \ --subnet=${SUBNET} \ --metadata=startup-script="docker run -d -p 0.0.0.0:${SQL_PORT}:${SQL_PORT} gcr.io/cloudsql-docker/gce-proxy:latest /cloud_sql_proxy -instances=${SQL_CONN}=tcp:0.0.0.0:${SQL_PORT}" \ --maintenance-policy=MIGRATE \ --scopes=https://www.googleapis.com/auth/cloud-platform \ --image=${VM_IMAGE} \ --image-project=cos-cloud
Ottieni l'IP interno della VM con il seguente comando gcloud CLI:
export IP=`gcloud compute \ --project=${PROJECT} instances describe ${INSTANCE_NAME} \ --zone ${ZONE} | grep "networkIP" | awk '{print $2}'`
Promuovi l'IP interno della VM a un IP statico con il seguente comando gcloud CLI:
gcloud compute --project=${PROJECT} addresses create mysql-proxy \ --addresses ${IP} --region ${REGION} --subnet ${SUBNET}
Ottieni l'IP da utilizzare nella stringa di connessione JDBC MySQL di Cloud Data Fusion quando configuri la connessione:
echo ${IP}
Dopo aver creato la VM con un IP statico, utilizza l'IP come host o inseriscilo nella stringa di connessione JDBC per accedere al database MySQL da Cloud Data Fusion.
Accedi a MySQL da Cloud Data Fusion
Prima di connetterti all'istanza MySQL dall'istanza Cloud Data Fusion, installa il driver JDBC MySQL da Cloud Data Fusion Hub (o direttamente dai download della community MySQL).
Inserisci i dettagli della connessione per il tuo database MySQL in Cloud Data Fusion. Puoi inserire i dettagli e testare la connessione nella pagina Wrangler.
(Facoltativo) Altri modi per connettersi a MySQL
Puoi accedere a MySQL nei seguenti modi in Cloud Data Fusion:
- Nella pagina Studio, fai clic sul plug-in di origine MySQL e inserisci i dettagli della connessione.
Nella pagina Studio, utilizza invece il plug-in di origine del database, che ha proprietà simili (Stringa di connessione, Nomeutente, Password e Argomenti di connessione).
Altre connessioni
Anche se è consigliabile connettere le istanze private, sono possibili le seguenti connessioni:
- Da un'istanza Cloud Data Fusion pubblica a un'istanza Cloud SQL pubblica (utilizzando un proxy Cloud SQL pubblico o inserendo l'intervallo
0.0.0.0/0
nella lista consentita in una rete autorizzata). Vedi l'opzione di connessione con IP pubblico per Cloud SQL. - Un'istanza Cloud Data Fusion privata e un'istanza Cloud SQL pubblica (utilizzando un proxy Cloud SQL pubblico in una rete autorizzata).
Un'istanza Cloud Data Fusion pubblica e un'istanza Cloud SQL privata.