Menghubungkan ke sumber Cloud SQL-MySQL

Halaman ini menjelaskan cara menghubungkan instance Cloud Data Fusion pribadi ke instance Cloud SQL pribadi yang menghosting database MySQL. Penyiapan serupa berfungsi untuk instance Postgres dan SQL Server. Koneksi publik dimungkinkan.

Direkomendasikan: Untuk alasan keamanan, gunakan instance pribadi Cloud SQL dan Cloud Data Fusion.

Membuat instance pribadi di Cloud Data Fusion dan Cloud SQL

Untuk terhubung ke instance Cloud SQL pribadi dari instance Cloud Data Fusion pribadi, Anda menggunakan VM Compute Engine proxy. Proxy diperlukan karena jaringan Cloud SQL tidak di-peering secara langsung dengan jaringan Cloud Data Fusion, dan pembanding transitif tidak dapat berkomunikasi satu sama lain (lihat ringkasan Peering Jaringan VPC).

Untuk membuat instance pribadi, ikuti langkah-langkah berikut:

  1. Jika Anda belum memilikinya, buat instance Cloud Data Fusion pribadi. Hal ini mencakup:

    1. Menyiapkan jaringan VPC
    2. Mengalokasikan rentang IP
  2. Buat instance Cloud SQL pribadi di jaringan VPC yang sama dengan instance Cloud Data Fusion Anda.

  3. Setelah instance dibuat, buka halaman Instances Cloud SQL dan luaskan Instance details. Di bagian Connect to this instance, salin IP dan nama koneksi.

    Buka Instance Cloud SQL

Membuat VM Compute Engine pribadi

Untuk membuat VM, Anda dapat memasukkan perintah berikut di Cloud Shell atau lingkungan lain tempat Google Cloud SDK diinstal.

Perintah tersebut membuat VM dengan alamat IP internal dan publik (--no-address tidak ditentukan dalam contoh perintah pembuatan VM) sehingga VM dapat mengakses Container Registry untuk mendapatkan image proxy. Anda dapat menggunakan IP internal, tetapi Anda juga harus mengaktifkan Akses Google Pribadi untuk subnet tempat VM berada.

  1. Ekspor variabel lingkungan berikut:

    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
    

    Ganti kode berikut:

    • CUSTOMER_PROJECT: Nama project Anda
    • VM_REGION: Region tempat VM Compute Engine berada
    • CUSTOMER_VPC_NETWORK_NAME: Nama jaringan Anda
    • CUSTOMER_VPC_SUBNET_NAME: Nama subnetwork Anda
    • COMPUTE_ENGINE_VM_NAME: Nama VM Compute Engine
    • SQL_INSTANCE_CONNECTION_NAME: Nama koneksi dari langkah sebelumnya
    • CLOUD_DATA_FUSION_IP_RANGE: Rentang alamat IP
    • DB_PORT: Nomor port database Cloud SQL
  2. Buat aturan firewall untuk mengizinkan traffic masuk Cloud Data Fusion dengan perintah gcloud CLI berikut:

    gcloud compute firewall-rules create allow-private-cdf \
    --allow=tcp:22,tcp:${SQL_PORT} \
    --source-ranges=$CDF_IP_RANGE --network=$NETWORK --project=$PROJECT
    
  3. Buat VM dengan perintah gcloud CLI berikut:

    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
    
  4. Dapatkan IP internal VM dengan perintah gcloud CLI berikut:

    export IP=`gcloud compute \
    --project=${PROJECT} instances describe ${INSTANCE_NAME} \
    --zone ${ZONE} | grep "networkIP" | awk '{print $2}'`
    
  5. Promosikan IP internal VM ke IP statis dengan perintah gcloud CLI berikut:

    gcloud compute --project=${PROJECT} addresses create mysql-proxy \
    --addresses ${IP} --region ${REGION} --subnet ${SUBNET}
    
  6. Dapatkan IP yang akan digunakan dalam string koneksi JDBC MySQL Cloud Data Fusion saat Anda menyiapkan koneksi:

    echo ${IP}
    

Setelah VM dibuat dengan IP statis, gunakan IP tersebut sebagai host atau masukkan ke dalam string koneksi JDBC untuk mengakses database MySQL dari Cloud Data Fusion.

Mengakses MySQL dari dalam Cloud Data Fusion

Agar dapat terhubung ke instance MySQL dari instance Cloud Data Fusion, instal driver JDBC MySQL dari Cloud Data Fusion Hub (atau langsung dari download komunitas MySQL).

Masukkan detail koneksi untuk database MySQL Anda di Cloud Data Fusion. Anda dapat memasukkan detail dan menguji koneksi di halaman Wrangler.

Opsional: Cara lain untuk terhubung ke MySQL

Anda dapat mengakses MySQL dengan cara berikut di Cloud Data Fusion:

  • Di halaman Studio, klik plugin sumber MySQL dan masukkan detail koneksi.
  • Di halaman Studio, gunakan plugin sumber Database, yang memiliki properti serupa (String koneksi, Username, Password, dan Connection Arguments).

Koneksi lainnya

Meskipun disarankan untuk menghubungkan instance pribadi, koneksi berikut dapat terjadi:

  • Instance Cloud Data Fusion publik ke instance Cloud SQL publik (dengan menggunakan proxy Cloud SQL publik atau mengizinkan rentang 0.0.0.0/0 di jaringan yang diizinkan). Lihat opsi koneksi IP publik untuk Cloud SQL.
  • Instance Cloud Data Fusion pribadi dan instance Cloud SQL publik (dengan menggunakan proxy Cloud SQL publik dalam jaringan resmi).
  • Instance Cloud Data Fusion publik dan instance Cloud SQL pribadi.