In questa pagina viene descritto come connettere un'istanza Cloud Data Fusion privata a un un'istanza Cloud SQL privata che ospita un database MySQL. Una configurazione simile funziona per le istanze Postgres e SQL Server. Sono possibili connessioni pubbliche.
Consigliato: per motivi di sicurezza, utilizza di istanze private di Cloud SQL e Cloud Data Fusion.
Creazione di istanze private in Cloud Data Fusion e Cloud SQL
Per connetterti a un'istanza Cloud SQL privata da un Per l'istanza Cloud Data Fusion, utilizzerai una VM proxy di Compute Engine. Un proxy perché la rete Cloud SQL non è connessa direttamente in peering la rete Cloud Data Fusion e i peer transitivi non possono comunicare tra loro (vedi Panoramica sul peering di rete VPC).
Per creare le istanze private, segui questi passaggi:
Se non ne hai già uno, crea un'istanza Cloud Data Fusion privata. 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 e espandi Dettagli istanza. Nella sezione Connetti a questa istanza, copia l'IP e il nome della connessione.
Crea una VM privata di Compute Engine
Per creare la VM, puoi inserire i comandi seguenti in Cloud Shell o un altro ambiente in cui Google Cloud SDK sia installato.
I comandi creano una VM con indirizzi IP interni e pubblici
(--no-address
non è specificato nel comando di creazione della VM di esempio), quindi
La VM può accedere a Container Registry per ottenere l'immagine proxy. Puoi usare dati interni
ma devi anche usare
abilita 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 --filter=family:cos-stable --format='value(selfLink.scope())' --limit=1) export SQL_PORT=DB_PORT # MySQL 3306 # PostgreSQL 5432 # SQLServer 1433
Sostituisci quanto segue:
CUSTOMER_PROJECT
: il nome del progettoVM_REGION
: la regione in cui si trova la VM di Compute EngineCUSTOMER_VPC_NETWORK_NAME
: il nome della tua reteCUSTOMER_VPC_SUBNET_NAME
: della subnet nomeCOMPUTE_ENGINE_VM_NAME
: il nome del VM di Compute EngineSQL_INSTANCE_CONNECTION_NAME
: il nome della connessione del passaggio precedenteCLOUD_DATA_FUSION_IP_RANGE
: l'indirizzo IP intervalloDB_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'indirizzo 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}'`
Esegui la promozione dell'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.
Accedere a MySQL da Cloud Data Fusion
Prima di poterti connettere all'istanza MySQL dall'istanza Cloud Data Fusion, installa il driver JDBC MySQL dall'hub Cloud Data Fusion (o direttamente dai download della community MySQL).
Inserisci i dettagli della connessione per il database MySQL in in Cloud Data Fusion. Puoi inserire i dettagli e testare la connessione su la pagina Wrangler.
(Facoltativo) Altri modi per connettersi a MySQL
In Cloud Data Fusion puoi accedere a MySQL nei seguenti modi:
- Nella pagina Studio, fai clic sul plug-in dell'origine MySQL e inserisci i dettagli di connessione.
Nella pagina Studio, utilizza il plug-in Origine dati di database, che ha proprietà simili (Stringa di connessione, Nome utente, Password e Argomenti di connessione).
Altre connessioni
Sebbene sia consigliabile connettere le istanze private, le seguenti connessioni sono possibili:
- Da un'istanza Cloud Data Fusion pubblica a una rete Cloud SQL pubblica
(utilizzando un proxy Cloud SQL pubblico o inserendo
0.0.0.0/0
in una rete autorizzata). Consulta le opzione di connessione 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.