Menghubungkan ke Cloud SQL untuk SQL Server dari Cloud Run

Pelajari cara men-deploy aplikasi contoh di Cloud Run yang terhubung ke instance SQL Server dengan menggunakan konsol Google Cloud dan aplikasi klien.

Dengan asumsi bahwa Anda menyelesaikan semua langkah secara tepat waktu, referensi yang dibuat dalam panduan memulai ini biasanya berharga kurang dari satu dolar (USD).

Sebelum memulai

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Mengaktifkan Cloud API yang diperlukan untuk menjalankan aplikasi contoh Cloud SQL di Cloud Run.
    Konsolgcloud

    Klik Aktifkan API untuk mengaktifkan API yang diperlukan untuk panduan memulai ini.

    Aktifkan API

    Tindakan ini mengaktifkan API berikut:

    • Compute Engine API
    • Cloud SQL Admin API
    • Cloud Run API
    • Container Registry API
    • Cloud Build API
    • Service Networking API

    Klik tombol berikut untuk membuka Cloud Shell, yang menyediakan akses command line ke resource Google Cloud langsung dari browser. Cloud Shell dapat digunakan untuk menjalankan perintah gcloud yang disajikan di seluruh panduan memulai ini.

    Buka Cloud Shell

    Jalankan perintah gcloud berikut menggunakan Cloud Shell:

    gcloud services enable compute.googleapis.com sqladmin.googleapis.com run.googleapis.com \
    containerregistry.googleapis.com cloudbuild.googleapis.com servicenetworking.googleapis.com

    Perintah ini mengaktifkan API berikut:

    • Compute Engine API
    • Cloud SQL Admin API
    • Cloud Run API
    • Container Registry API
    • Cloud Build API
    • Service Networking API

Menyiapkan Cloud SQL

Membuat instance Cloud SQL

IP Publik

Cloud Run tidak mendukung koneksi ke Cloud SQL untuk SQL Server melalui IP publik. Gunakan IP pribadi sebagai gantinya.

IP Pribadi

Konsolgcloud

Mengalokasikan rentang alamat IP dan membuat koneksi pribadi guna mengonfigurasi akses layanan pribadi untuk Cloud SQL

  1. Di konsol Google Cloud, buka halaman jaringan VPC.

    Buka jaringan VPC

  2. Pilih jaringan VPC default
  3. Pilih tab Private service connection.
  4. Pilih tab Rentang IP yang dialokasikan untuk layanan.
  5. Klik Alokasikan rentang IP.
  6. Untuk Nama rentang yang dialokasikan, tentukan google-managed-services-default.
  7. Pilih opsi Otomatis untuk rentang IP dan tentukan panjang awalan sebagai 16.
  8. Klik Alokasikan untuk membuat rentang yang dialokasikan.
  9. Pilih tab Koneksi pribadi pada layanan untuk jaringan VPC default.
  10. Klik Buat koneksi untuk membuat koneksi pribadi antara jaringan Anda dan produsen layanan.
  11. Untuk Alokasi yang ditetapkan, pilih google-managed-services-default.
  12. Klik Hubungkan untuk membuat koneksi.

Membuat instance dengan alamat IP pribadi dan SSL diaktifkan

  1. Di konsol Google Cloud, buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Klik Buat instance.
  3. Klik Pilih SQL Server.
  4. Pastikan Enterprise Plus dipilih sebagai edisi Cloud SQL untuk instance Anda.
  5. Di kolom Instance ID masukkan quickstart-instance.
  6. Di kolom Sandi, masukkan sandi untuk pengguna sqlserver. Simpan sandi ini untuk penggunaan berikutnya.
  7. Di bagian Pilih region dan ketersediaan zonal, pilih Zona tunggal.
  8. Klik menu Tampilkan opsi konfigurasi.
  9. Luaskan node Machine configuration.
  10. Dari region Machine shapes, pilih bentuk 4 vCPU, 32 GB.
  11. Luaskan node Connections.
  12. Hapus centang pada kotak IP Publik untuk membuat instance hanya dengan alamat IP pribadi.
  13. Centang kotak IP Pribadi.
  14. Dari menu Network, pilih default.
  15. Klik Buat instance, lalu tunggu hingga instance diinisialisasi dan dimulai.
  16. Klik Koneksi.
  17. Di bagian Keamanan, pilih Hanya izinkan koneksi SSL untuk mengaktifkan koneksi SSL.
  18. Pada dialog Hanya izinkan koneksi SSL, klik Simpan dan Mulai Ulang, lalu tunggu hingga instance dimulai ulang.

Mengalokasikan rentang alamat IP dan membuat koneksi pribadi guna mengonfigurasi akses layanan pribadi untuk Cloud SQL

  1. Jalankan perintah gcloud compute addresses create untuk mengalokasikan rentang alamat IP.

    gcloud compute addresses create google-managed-services-default \
    --global --purpose=VPC_PEERING --prefix-length=16 \
    --description="peering range for Google" --network=default
  2. Jalankan perintah gcloud services vpc-peerings connect untuk membuat koneksi pribadi ke rentang alamat IP yang dialokasikan. Ganti YOUR_PROJECT_ID dengan ID project milik Anda.

    gcloud services vpc-peerings connect --service=servicenetworking.googleapis.com \
    --ranges=google-managed-services-default --network=default \
    --project=YOUR_PROJECT_ID

Membuat instance dengan alamat IP pribadi dan SSL diaktifkan

  1. Sebelum menjalankan perintah berikut ini, ganti DB_ROOT_PASSWORD dengan sandi pengguna database Anda.

  2. Atau, ubah nilai untuk parameter berikut:

    • --database-version: Jenis dan versi mesin database. Jika tidak ditentukan, default API akan digunakan. Lihat dokumentasi versi database gcloud untuk melihat versi yang tersedia saat ini.
    • --cpu: Jumlah inti dalam mesin.
    • --memori: Nilai keseluruhan menunjukkan jumlah memori yang disertakan dalam mesin. Unit ukuran mungkin sudah ditentukan (misalnya, 3072 MB atau 9 GB). Jika tidak ada unit yang ditentukan, GB akan digunakan.
    • --region: Lokasi regional instance (misalnya asia-east1, us-east1). Jika tidak ditentukan, us-central1 default akan digunakan. Lihat daftar lengkap region.

    Jalankan perintah gcloud sql instances create untuk membuat instance Cloud SQL dengan alamat IP Pribadi.

    gcloud sql instances create quickstart-instance \
    --database-version=SQLSERVER_2017_STANDARD \
     --cpu=1 \
     --memory=4GB \
     --region=us-central \
     --root-password=DB_ROOT_PASSWORD \
     --no-assign-ip \
    --network=default
  3. Jalankan perintah gcloud sql instances patch untuk mengaktifkan hanya izinkan koneksi SSL untuk instance.

  4. gcloud sql instances patch quickstart-instance --require-ssl

Buat database

Konsolgcloud
  1. Di konsol Google Cloud, buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Pilih quickstart-instance.
  3. Dari menu navigasi SQL, pilih Databases.
  4. Klik Buat Instance.
    1. Di kolom Nama Database di kotak dialog Database baru , masukkan quickstart-db.
    2. Klik Buat.

Jalankan perintah gcloud sql databases create untuk membuat database.

gcloud sql databases create quickstart-db --instance=quickstart-instance

Men-deploy aplikasi contoh ke Cloud Run

Mengonfigurasi akun layanan Cloud Run

Konfigurasikan akun layanan yang digunakan oleh Cloud Run agar memiliki peran Klien Cloud SQL dengan izin untuk terhubung ke Cloud SQL.
Konsolgcloud
  1. Di konsol Google Cloud, buka halaman IAM.

    Buka IAM

  2. Untuk akun layanan bernama akun layanan default Compute Engine, klik ikon pensil.
  3. Klik ADD ANOTHER ROLE.
  4. Tambahkan Peran bernama Cloud SQL Client.
  5. Klik Simpan.
  1. Jalankan perintah gcloud berikut untuk mendapatkan daftar akun layanan project Anda:
    gcloud iam service-accounts list
  2. Salin EMAIL akun layanan Compute Engine.
  3. Jalankan perintah berikut untuk menambahkan peran Klien Cloud SQL ke akun layanan Compute Engine:
    gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
      --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
      --role="roles/cloudsql.client"

Mengonfigurasi aplikasi contoh Cloud SQL

Dengan instance, database, dan akun layanan Cloud SQL dengan izin klien, kini Anda dapat mengonfigurasi aplikasi contoh untuk terhubung ke instance Cloud SQL Anda.

IP Publik

Cloud Run tidak mendukung koneksi ke Cloud SQL untuk SQL Server melalui IP publik. Gunakan IP pribadi sebagai gantinya.

IP Pribadi

Untuk jalur IP pribadi, aplikasi Anda terhubung langsung ke instance Anda melalui Akses VPC Serverless Metode ini menggunakan soket TCP untuk terhubung langsung ke instance Cloud SQL tanpa menggunakan Proxy Auth Cloud SQL.
GoJavaPython

Membuat dan mendownload sertifikat server SSL

  1. Di konsol Google Cloud, buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Klik quickstart-instance untuk melihat halaman Ringkasan.
  3. Klik tab Menghubungkan.
  4. Di bagian Keamanan, klik Download sertifikat untuk mendownload sertifikat server SSL.

Membuat koneksi VPC serverless untuk koneksi ke instance menggunakan IP pribadi

  1. Di konsol Google Cloud, buka halaman Akses VPC serverless - Membuat konektor.

    Membuat konektor VPC Serverless

  2. Enter quickstart-connector untuk Nama.
  3. Pilih default dari menu drop-down Jaringan.
  4. Pilih Rentang IP kustom dari menu drop-down Subnet.
  5. Masukkan 10.8.0.0 di kotak input rentang IP.
  6. Klik Buat.

Mem-build aplikasi contoh dengan sertifikat server SSL

  1. Di Cloud Shell Editor, buka kode sumber aplikasi contoh.

    Buka Editor Cloud Shell
  2. Pada dialog Open in Cloud Shell, klik Konfirmasi untuk mendownload kode aplikasi contoh dan membuka direktori aplikasi contoh di Cloud Shell Editor.
  3. Upload file sertifikat server SSL ke folder certs.
    1. Klik kanan folder certs di Cloud Shell Editor dan pilih Upload Files.
    2. Pilih file berikut di komputer lokal Anda: server-ca.pem.
    3. Setelah memilih file sertifikat server SSL, klik Buka untuk menyelesaikan proses upload file ke Cloud Shell Editor.
  4. Jalankan perintah berikut di Cloud Shell untuk mem-build container Docker dan memublikasikannya ke Container Registry. Ganti YOUR_PROJECT_ID dengan ID project Anda.
    gcloud builds submit --tag gcr.io/YOUR_PROJECT_ID/run-sql

Membuat dan mendownload sertifikat server SSL

Untuk pengguna Java, konektor sudah menyediakan koneksi yang aman sehingga tidak perlu membuat dan mendownload sertifikat server SSL.

Membuat koneksi VPC serverless untuk koneksi ke instance menggunakan IP pribadi

  1. Di konsol Google Cloud, buka halaman Akses VPC serverless - Membuat konektor.

    Membuat konektor VPC Serverless

  2. Enter quickstart-connector untuk Nama.
  3. Pilih default dari menu drop-down Jaringan.
  4. Pilih Rentang IP kustom dari menu drop-down Subnet.
  5. Masukkan 10.8.0.0 di kotak input rentang IP.
  6. Klik Buat.

Mem-build aplikasi contoh

  1. Di Editor Cloud Shell, buka kode sumber aplikasi contoh.

    Buka Editor Cloud Shell
  2. Pada dialog Open in Cloud Shell, klik Konfirmasi untuk mendownload kode aplikasi contoh dan membuka direktori aplikasi contoh di Cloud Shell Editor.
  3. Jalankan perintah berikut di Cloud Shell untuk mem-build container Docker dan memublikasikannya ke Container Registry. Ganti YOUR_PROJECT_ID dengan ID project Anda.
    mvn clean package com.google.cloud.tools:jib-maven-plugin:2.8.0:build \
     -Dimage=gcr.io/YOUR_PROJECT_ID/run-sql -DskipTests

Membuat dan mendownload sertifikat server SSL

  1. Di konsol Google Cloud, buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Klik quickstart-instance untuk melihat halaman Ringkasan.
  3. Klik tab Menghubungkan.
  4. Di bagian Keamanan, klik Download sertifikat untuk mendownload sertifikat server SSL.

Membuat Koneksi VPC Serverless untuk koneksi ke instance menggunakan IP pribadi

  1. Di konsol Google Cloud, buka halaman Akses VPC serverless - Membuat konektor.

    Membuat konektor VPC Serverless

  2. Enter quickstart-connector untuk Nama.
  3. Pilih default dari menu drop-down Jaringan.
  4. Pilih Rentang IP kustom dari menu drop-down Subnet.
  5. Masukkan 10.8.0.0 di kotak input rentang IP.
  6. Klik Buat.

Mem-build aplikasi contoh dengan sertifikat server SSL

  1. Di Cloud Shell Editor, buka kode sumber aplikasi contoh.

    Buka Editor Cloud Shell
  2. Pada dialog Open in Cloud Shell, klik Konfirmasi untuk mendownload kode aplikasi contoh dan membuka direktori aplikasi contoh di Cloud Shell Editor.
  3. Upload file sertifikat server SSL ke folder certs.
    1. Klik kanan folder certs di Cloud Shell Editor dan pilih Upload File
    2. Pilih file berikut di komputer lokal Anda: server-ca.pem.
    3. Setelah memilih file sertifikat server SSL, klik Buka untuk menyelesaikan proses upload file ke Cloud Shell Editor.
  4. Jalankan perintah berikut di Cloud Shell untuk mem-build container Docker dan memublikasikannya ke Container Registry. Ganti YOUR_PROJECT_ID dengan ID project Anda.
    gcloud builds submit --tag gcr.io/YOUR_PROJECT_ID/run-sql

Men-deploy aplikasi contoh

Langkah-langkah untuk men-deploy contoh ke Cloud Run bergantung pada jenis alamat IP yang Anda tetapkan ke instance Cloud SQL.

IP Publik

Cloud Run tidak mendukung koneksi ke Cloud SQL untuk SQL Server melalui IP publik. Gunakan IP pribadi sebagai gantinya.

IP Pribadi

Konsolgcloud
  1. Pada konsol Google Cloud, buka halaman Cloud Run.

    Buka Cloud Run

  2. Klik Buat penampung dan pilih Layanan untuk menampilkan formulir Buat layanan.

  3. Pertahankan opsi untuk men-deploy dari image container yang ada, lalu klik Pilih untuk menentukan image container gcr.io/YOUR_PROJECT_ID/run-sql yang Anda buat di langkah sebelumnya.
  4. Masukkan quickstart-service untuk Nama layanan.
  5. Di bagian Autentikasi, pilih opsi Allow unauthenticated invocations. Jika Anda tidak memiliki izin (peran Admin Cloud Run) untuk memilihnya, layanan akan di-deploy dan memerlukan autentikasi.
  6. Luaskan bagian Container, Variabel & Secret, Koneksi, Keamanan .
  7. Buat variabel lingkungan berikut dengan mengklik Tambahkan variabel di bagian Variabel lingkungan. Tentukan nilai untuk variabel lingkungan, seperti berikut:
    • Tetapkan DB_NAME ke quickstart-db.
    • Tetapkan DB_USER ke sqlserver.
    • DB_PASS: Setel ke sandi pengguna sqlserver yang Anda buat di Membuat instance Cloud SQL.
    • INSTANCE_CONNECTION_NAME: Tetapkan ke Nama Koneksi instance Anda yang muncul di halaman instance Cloud SQL di konsol Google Cloud.
    • Tetapkan DB_PORT ke 1433.
    • INSTANCE_HOST: Tetapkan ke alamat IP pribadi instance Anda seperti yang disebutkan di halaman Ringkasan instance Cloud SQL.
    • Tetapkan DB_ROOT_CERT ke certs/server-ca.pem.
    • PRIVATE_IP: Tetapkan ke TRUE.
  8. Aktifkan koneksi ke Cloud SQL:

    1. Klik Koneksi.
    2. Klik Tambahkan koneksi pada bagian koneksi Cloud SQL.
    3. Pilih instance Cloud SQL quickstart-instance yang sebelumnya Anda buat.
    4. Pilih default: Serverless VPC Access Connector "quickstart-connector" dari menu drop-down Jaringan VPC.
    5. Pilih opsi Arahkan semua traffic melalui konektor VPC.
  9. Klik Buat untuk menyelesaikan pembuatan layanan Cloud Run.

  10. Setelah layanan Cloud Run di-deploy, halaman Detail Layanan akan menampilkan URL layanan yang berjalan di bagian atas halaman. Klik link URL untuk melihat aplikasi contoh yang di-deploy di Cloud Run yang terhubung ke Cloud SQL.

    Melihat aplikasi contoh yang di-deploy

  1. Sebelum menjalankan perintah berikut, buat pengganti berikut:

    • YOUR_PROJECT_ID dengan ID project Anda.
    • INSTANCE_CONNECTION_NAME dengan Nama koneksi instance Anda yang muncul di halaman Cloud SQL instances di konsol Google Cloud.

    • DB_PASS dengan sandi pengguna sqlserver yang Anda buat di Membuat instance Cloud SQL.
    • INSTANCE_HOST dengan alamat IP pribadi instance Anda. Buka halaman Ringkasan instance Cloud SQL tempat alamat IP pribadi instance muncul.

    Jalankan perintah gcloud run deploy sebagai berikut untuk membuat layanan Cloud Run:

    gcloud run deploy run-sql --image gcr.io/YOUR_PROJECT_ID/run-sql \
      --add-cloudsql-instances INSTANCE_CONNECTION_NAME \
      --vpc-connector="quickstart-connector" --vpc-egress=all-traffic \
      --set-env-vars DB_NAME="quickstart-db" \
      --set-env-vars DB_USER="sqlserver" \
      --set-env-vars DB_PASS="DB_PASS" \
      --set-env-vars INSTANCE_CONNECTION_NAME="INSTANCE_CONNECTION_NAME" \
      --set-env-vars DB_PORT="1433" \
      --set-env-vars INSTANCE_HOST="INSTANCE_HOST" \
      --set-env-vars DB_ROOT_CERT="certs/server-ca.pem" \
      --set-env-vars PRIVATE_IP="TRUE"

    Pengguna Java harus menjalankan perintah gcloud run deploy tanpa flag INSTANCE_HOST, DB_ROOT_CERT, dan PRIVATE_IP --set-env-vars, sebagai berikut, untuk membuat layanan Cloud Run karena konektor Java sudah menyediakan koneksi yang aman:

    gcloud run deploy run-sql --image gcr.io/YOUR_PROJECT_ID/run-sql \
      --add-cloudsql-instances INSTANCE_CONNECTION_NAME \
      --vpc-connector="quickstart-connector" --vpc-egress=all-traffic \
      --set-env-vars DB_NAME="quickstart-db" \
      --set-env-vars DB_USER="sqlserver" \
      --set-env-vars DB_PASS="DB_PASS" \
      --set-env-vars INSTANCE_CONNECTION_NAME="INSTANCE_CONNECTION_NAME" \
      --set-env-vars DB_PORT="1433"

    Masukkan pilihan numerik yang disediakan untuk us-central1 saat diminta menentukan wilayah.

  2. Saat Anda melihat pesan konfirmasi bahwa layanan Cloud Run telah di-deploy, klik link URL Layanan pada pesan untuk melihat aplikasi contoh di Cloud Run yang terhubung ke Cloud SQL.

    Melihat aplikasi contoh yang di-deploy

Pembersihan

Agar akun Google Cloud Anda tidak dikenai biaya untuk resource yang digunakan di halaman ini, ikuti langkah-langkah berikut.

  1. Di konsol Google Cloud, buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Pilih instance quickstart-instance untuk membuka halaman Detail instance.
  3. Pada panel ikon di bagian atas halaman, klik Hapus.
  4. Di kotak dialog Hapus instance, ketik quickstart-instance, lalu klik Hapus untuk menghapus instance.
  5. Pada konsol Google Cloud, buka halaman Cloud Run.

    Buka Cloud Run

  6. Pilih kotak centang di samping nama layanan quickstart-service.
  7. Klik Hapus di bagian atas halaman Cloud Run.

Langkah-langkah pembersihan opsional

Jika tidak menggunakan peran klien Cloud SQL yang ditetapkan ke akun layanan Compute Engine, Anda dapat menghapusnya.

  1. Di Konsol Google Cloud, buka halaman IAM.

    Buka IAM

  2. Klik ikon edit (yang terlihat seperti pensil) untuk akun IAM yang bernama akun layanan default Compute Engine default.
  3. Hapus peran Klien Cloud SQL client.
  4. Klik Simpan.

Jika tidak menggunakan API yang diaktifkan sebagai bagian dari panduan memulai ini, Anda dapat menonaktifkannya.

  • API yang diaktifkan dalam panduan memulai ini:
    • Compute Engine API
    • Cloud SQL Admin API
    • Cloud Run API
    • Container Registry API
    • Cloud Build API
  1. Di konsol Google Cloud, buka halaman APIs.

    Buka API

  2. Pilih API yang ingin Anda nonaktifkan, lalu klik tombol Nonaktifkan API.

Langkah berikutnya

Berdasarkan kebutuhan, Anda dapat mempelajari lebih lanjut cara membuat instance Cloud SQL.

Anda juga dapat mempelajari cara membuat pengguna SQL Server dan database untuk instance Cloud SQL.

Untuk mengetahui informasi selengkapnya tentang harga, lihat harga Cloud SQL untuk SQL Server.

Pelajari lebih lanjut:

  • Mengonfigurasi instance Cloud SQL Anda dengan alamat IP publik.
  • Mengonfigurasi instance Cloud SQL Anda dengan alamat IP pribadi.

Selain itu, Anda dapat mempelajari cara menghubungkan ke instance Cloud SQL dari aplikasi Google Cloud lainnya: