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. Sono possibili connessioni pubbliche.
Consigliato: per motivi di sicurezza, utilizza istanze private di Cloud SQL e Cloud Data Fusion.
Creare 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 Compute Engine proxy. È 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 del peering di rete VPC).
Per creare le istanze private:
Se non ne hai già uno, crea un'istanza Cloud Data Fusion privata. Sono inclusi:
- Configurazione di una rete VPC
- Allocazione di un intervallo IP
Crea un'istanza Cloud SQL privata nella stessa rete VPC dell'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.
Creare una VM Compute Engine privata
Per creare la VM, puoi inserire i seguenti comandi in Cloud Shell o in un altro ambiente in cui è installato Google Cloud SDK.
I comandi creano una VM con indirizzi IP interni e pubblici
(--no-address
non è specificato nel comando di creazione della VM di esempio) in modo che la VM possa accedere a Container Registry per recuperare l'immagine proxy. Puoi utilizzare gli indirizzi 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 --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
: il nome della tua sottoreteCOMPUTE_ENGINE_VM_NAME
: il nome della VM 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'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 di 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
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 invece 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 consigliato collegare istanze private, sono possibili le seguenti connessioni:
- Un'istanza Cloud Data Fusion pubblica a un'istanza Cloud SQL pubblica (utilizzando un proxy Cloud SQL pubblico o inserendo nell'elenco consentiti l'intervallo
0.0.0.0/0
in una rete autorizzata). Consulta 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.