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
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Mengaktifkan Cloud API yang diperlukan untuk menjalankan aplikasi contoh Cloud SQL di Cloud Run.
Klik Aktifkan API untuk mengaktifkan API yang diperlukan untuk panduan memulai ini.
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.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
Mengalokasikan rentang alamat IP dan membuat koneksi pribadi guna mengonfigurasi akses layanan pribadi untuk Cloud SQL
-
Di konsol Google Cloud, buka halaman jaringan VPC.
- Pilih jaringan VPC
default
- Pilih tab Private service connection.
- Pilih tab Rentang IP yang dialokasikan untuk layanan.
- Klik Alokasikan rentang IP.
- Untuk Nama rentang yang dialokasikan, tentukan
google-managed-services-default
. - Pilih opsi Otomatis untuk rentang IP dan tentukan panjang awalan sebagai
16
. - Klik Alokasikan untuk membuat rentang yang dialokasikan.
- Pilih tab Koneksi pribadi pada layanan untuk jaringan VPC
default
. - Klik Buat koneksi untuk membuat koneksi pribadi antara jaringan Anda dan produsen layanan.
- Untuk Alokasi yang ditetapkan, pilih
google-managed-services-default
. - Klik Hubungkan untuk membuat koneksi.
Membuat instance dengan alamat IP pribadi dan SSL diaktifkan
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Klik Buat instance.
- Klik Pilih SQL Server.
- Pastikan Enterprise Plus dipilih sebagai edisi Cloud SQL untuk instance Anda.
- Di kolom Instance ID masukkan
quickstart-instance
. - Di kolom Sandi, masukkan sandi untuk pengguna sqlserver. Simpan sandi ini untuk penggunaan berikutnya.
- Di bagian Pilih region dan ketersediaan zonal, pilih Zona tunggal.
- Klik menu Tampilkan opsi konfigurasi.
- Luaskan node Machine configuration.
- Dari region Machine shapes, pilih bentuk 4 vCPU, 32 GB.
- Luaskan node Connections.
- Hapus centang pada kotak IP Publik untuk membuat instance hanya dengan alamat IP pribadi.
- Centang kotak IP Pribadi.
- Dari menu Network, pilih default.
- Klik Buat instance, lalu tunggu hingga instance diinisialisasi dan dimulai.
- Klik Koneksi.
- Di bagian Keamanan, pilih Hanya izinkan koneksi SSL untuk mengaktifkan koneksi SSL.
- 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
-
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 -
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
-
Sebelum menjalankan perintah berikut ini, ganti DB_ROOT_PASSWORD dengan sandi pengguna database Anda.
- --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 patch
untuk mengaktifkan hanya izinkan koneksi SSL untuk instance.
Atau, ubah nilai untuk parameter berikut:
Jalankan perintah gcloud
sql instances create
untuk membuat instance Cloud SQL dengan alamat IP Pribadi.
gcloud sql instances createquickstart-instance \ --database-version=SQLSERVER_2017_STANDARD \ --cpu=1 \ --memory=4GB \ --region=us-central \ --root-password=DB_ROOT_PASSWORD \ --no-assign-ip \ --network=default
gcloud sql instances patchquickstart-instance --require-ssl
Buat database
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Pilih
quickstart-instance
. - Dari menu navigasi SQL, pilih Databases.
- Klik Buat Instance.
- Di kolom Nama Database di kotak dialog Database baru
, masukkan
quickstart-db
. - Klik Buat.
Jalankan perintah gcloud
sql databases create
untuk membuat database.
gcloud sql databases createquickstart-db --instance=quickstart-instance
Men-deploy aplikasi contoh ke Cloud Run
Mengonfigurasi akun layanan Cloud Run
-
Di konsol Google Cloud, buka halaman IAM.
- Untuk akun layanan bernama akun layanan default Compute Engine, klik ikon pensil.
- Klik ADD ANOTHER ROLE.
- Tambahkan Peran bernama Cloud SQL Client.
- Klik Simpan.
-
Jalankan perintah
gcloud
berikut untuk mendapatkan daftar akun layanan project Anda:gcloud iam service-accounts list
- Salin EMAIL akun layanan Compute Engine.
- 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.Membuat dan mendownload sertifikat server SSL
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Klik
quickstart-instance
untuk melihat halaman Ringkasan. - Klik tab Menghubungkan.
- Di bagian Keamanan, klik Download sertifikat untuk mendownload sertifikat server SSL.
Membuat koneksi VPC serverless untuk koneksi ke instance menggunakan IP pribadi
-
Di konsol Google Cloud, buka halaman Akses VPC serverless - Membuat konektor.
- Enter
quickstart-connector
untuk Nama. - Pilih default dari menu drop-down Jaringan.
- Pilih Rentang IP kustom dari menu drop-down Subnet.
- Masukkan
10.8.0.0
di kotak input rentang IP. - Klik Buat.
Mem-build aplikasi contoh dengan sertifikat server SSL
-
Di Cloud Shell Editor, buka kode sumber aplikasi contoh.
Buka Editor Cloud Shell - Pada dialog Open in Cloud Shell, klik Konfirmasi untuk mendownload kode aplikasi contoh dan membuka direktori aplikasi contoh di Cloud Shell Editor.
-
Upload file sertifikat server SSL ke folder certs.
- Klik kanan folder certs di Cloud Shell Editor dan pilih Upload Files.
- Pilih file berikut di komputer lokal Anda:
server-ca.pem
. - Setelah memilih file sertifikat server SSL, klik Buka untuk menyelesaikan proses upload file ke Cloud Shell Editor.
-
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
-
Di konsol Google Cloud, buka halaman Akses VPC serverless - Membuat konektor.
- Enter
quickstart-connector
untuk Nama. - Pilih default dari menu drop-down Jaringan.
- Pilih Rentang IP kustom dari menu drop-down Subnet.
- Masukkan
10.8.0.0
di kotak input rentang IP. - Klik Buat.
Mem-build aplikasi contoh
-
Di Editor Cloud Shell, buka kode sumber aplikasi contoh.
Buka Editor Cloud Shell - Pada dialog Open in Cloud Shell, klik Konfirmasi untuk mendownload kode aplikasi contoh dan membuka direktori aplikasi contoh di Cloud Shell Editor.
-
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
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Klik
quickstart-instance
untuk melihat halaman Ringkasan. - Klik tab Menghubungkan.
- Di bagian Keamanan, klik Download sertifikat untuk mendownload sertifikat server SSL.
Membuat Koneksi VPC Serverless untuk koneksi ke instance menggunakan IP pribadi
-
Di konsol Google Cloud, buka halaman Akses VPC serverless - Membuat konektor.
- Enter
quickstart-connector
untuk Nama. - Pilih default dari menu drop-down Jaringan.
- Pilih Rentang IP kustom dari menu drop-down Subnet.
- Masukkan
10.8.0.0
di kotak input rentang IP. - Klik Buat.
Mem-build aplikasi contoh dengan sertifikat server SSL
-
Di Cloud Shell Editor, buka kode sumber aplikasi contoh.
Buka Editor Cloud Shell - Pada dialog Open in Cloud Shell, klik Konfirmasi untuk mendownload kode aplikasi contoh dan membuka direktori aplikasi contoh di Cloud Shell Editor.
-
Upload file sertifikat server SSL ke folder certs.
- Klik kanan folder certs di Cloud Shell Editor dan pilih Upload File
- Pilih file berikut di komputer lokal Anda:
server-ca.pem
. - Setelah memilih file sertifikat server SSL, klik Buka untuk menyelesaikan proses upload file ke Cloud Shell Editor.
-
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
-
Pada konsol Google Cloud, buka halaman Cloud Run.
-
Klik Buat penampung dan pilih Layanan untuk menampilkan formulir Buat layanan.
- 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. - Masukkan
quickstart-service
untuk Nama layanan. - 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. - Luaskan bagian Container, Variabel & Secret, Koneksi, Keamanan .
- Buat variabel lingkungan berikut dengan mengklik Tambahkan variabel di bagian Variabel lingkungan. Tentukan nilai untuk variabel lingkungan, seperti berikut:
- Tetapkan
DB_NAME
kequickstart-db
. - Tetapkan
DB_USER
kesqlserver
. DB_PASS
: Setel ke sandi penggunasqlserver
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
ke1433
. INSTANCE_HOST
: Tetapkan ke alamat IP pribadi instance Anda seperti yang disebutkan di halaman Ringkasan instance Cloud SQL.- Tetapkan
DB_ROOT_CERT
kecerts/server-ca.pem
. PRIVATE_IP
: Tetapkan keTRUE
.-
Aktifkan koneksi ke Cloud SQL:
- Klik Koneksi.
- Klik Tambahkan koneksi pada bagian koneksi Cloud SQL.
- Pilih instance Cloud SQL
quickstart-instance
yang sebelumnya Anda buat. - Pilih
default: Serverless VPC Access Connector "quickstart-connector"
dari menu drop-down Jaringan VPC. - Pilih opsi Arahkan semua traffic melalui konektor VPC.
-
Klik Buat untuk menyelesaikan pembuatan layanan Cloud Run.
- 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.
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.
-
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.
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-instancesINSTANCE_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-instancesINSTANCE_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.
Pembersihan
Agar akun Google Cloud Anda tidak dikenai biaya untuk resource yang digunakan di halaman ini, ikuti langkah-langkah berikut.
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Pilih instance
quickstart-instance
untuk membuka halaman Detail instance. - Pada panel ikon di bagian atas halaman, klik Hapus.
- Di kotak dialog Hapus instance, ketik
quickstart-instance
, lalu klik Hapus untuk menghapus instance. -
Pada konsol Google Cloud, buka halaman Cloud Run.
- Pilih kotak centang di samping nama layanan
quickstart-service
. - 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.
-
Di Konsol Google Cloud, buka halaman IAM.
- Klik ikon edit (yang terlihat seperti pensil) untuk akun IAM yang bernama akun layanan default Compute Engine default.
- Hapus peran Klien Cloud SQL client.
- 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
Di konsol Google Cloud, buka halaman APIs.
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: