Hubungkan dari Compute Engine

Halaman ini menjelaskan cara menggunakan klien sqlcmd, yang diinstal pada instance Compute Engine, untuk terhubung ke Cloud SQL.

Anda dapat menggunakan IP pribadi, IP publik, Proxy Auth Cloud SQL, atau image Docker Proxy Auth Cloud SQL.

Untuk mengetahui petunjuk langkah demi langkah cara menjalankan aplikasi web contoh Compute Engine yang terhubung ke Cloud SQL, baca panduan memulai untuk menghubungkan dari Compute Engine.

Sebelum memulai

Tugas ini tidak termasuk petunjuk untuk menyiapkan instance Compute Engine. Jika Anda memerlukan bantuan dalam membuat dan mengonfigurasi instance Compute Engine, baca dokumentasi Compute Engine.

IP Pribadi

Agar dapat terhubung ke Cloud SQL dari instance Compute Engine menggunakan IP pribadi, akses layanan pribadi harus disiapkan untuk lingkungan Anda, dan instance Cloud SQL Anda harus dikonfigurasi untuk menggunakan IP pribadi. Instance Compute Engine Anda harus berada di region yang sama dengan instance Cloud SQL, dan di jaringan yang dikonfigurasi untuk koneksi pribadi. Pelajari lebih lanjut.

1. Konfigurasikan instance Anda untuk menggunakan IP pribadi

Gunakan petunjuk di Mengonfigurasi Konektivitas IP Pribadi.

2. Buka koneksi terminal Cloud Shell ke instance Compute Engine Anda.

Gunakan petunjuk yang tepat, bergantung pada sistem operasi instance:

Jika instance Compute Engine Anda menjalankan image publik RHEL atau CentOS, SELinux mungkin akan memblokir koneksi proxy. Jika hal ini terjadi, Anda harus mengonfigurasi fitur SELinux untuk mengizinkan koneksi.

Untuk mengetahui informasi selengkapnya tentang SELinux untuk RHEL, lihat dokumentasi RHEL. Untuk informasi selengkapnya tentang SELinux untuk CentOS, lihat dokumentasi CentOS.

3. Menginstal klien sqlcmd pada instance Compute Engine, jika belum diinstal.

Debian/Ubuntu

Untuk Debian/Ubuntu, instal alat command line SQL Server yang berlaku.

CentOS/RHEL

Untuk CentOS/RHEL, instal alat command line SQL Server yang berlaku.

OpenSUSE

Untuk openSUSE, instal alat command line SQL Server yang berlaku.

Platform lainnya

Lihat halaman landing untuk menginstal SQL Server, serta halaman download SQL Server.

4. Menghubungkan dengan klien sqlcmd.

sqlcmd -S CLOUD_SQL_PRIVATE_IP_ADDRESS -U USERNAME

Anda dapat menemukan alamat IP pribadi di halaman instance Cloud SQL atau dengan menjalankan perintah gcloud berikut:

gcloud sql instances list

IP Publik

Untuk terhubung menggunakan IP publik:

1. Tambahkan alamat IP IPv4 statis ke instance Compute Engine, jika belum memilikinya.

Anda tidak dapat terhubung ke Compute Engine menggunakan IPv6. Untuk mengetahui informasi tentang cara menambahkan alamat IP statis, lihat Mencadangkan alamat IP eksternal statis baru dalam dokumentasi Compute Engine.

2. Izinkan alamat IP statis instance Compute Engine sebagai jaringan yang dapat terhubung ke instance Cloud SQL Anda.

Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi akses untuk koneksi IP publik.

3. Buka koneksi terminal Cloud Shell ke instance Compute Engine Anda.

Gunakan petunjuk yang tepat, bergantung pada sistem operasi instance:

Jika instance Compute Engine Anda menjalankan image publik RHEL atau CentOS, SELinux mungkin akan memblokir koneksi proxy. Jika hal ini terjadi, Anda harus mengonfigurasi fitur SELinux untuk mengizinkan koneksi.

Untuk mengetahui informasi selengkapnya tentang SELinux untuk RHEL, lihat dokumentasi RHEL. Untuk mengetahui informasi selengkapnya tentang SELinux untuk CentOS, lihat dokumentasi CentOS.

4. Menginstal klien sqlcmd pada instance Compute Engine, jika belum diinstal.

Debian/Ubuntu

Untuk Debian/Ubuntu, instal alat command line SQL Server yang berlaku.

CentOS/RHEL

Untuk CentOS/RHEL, instal alat command line SQL Server yang berlaku.

OpenSUSE

Untuk openSUSE, instal alat command line SQL Server yang berlaku.

Platform lainnya

Lihat halaman landing untuk menginstal SQL Server, serta halaman download SQL Server.

5. Menghubungkan dengan klien sqlcmd.

sqlcmd -S CLOUD_SQL_PUBLIC_IP_ADDR -U USERNAME

Anda dapat menemukan alamat IP publik di halaman instance Cloud SQL atau dengan menjalankan perintah gcloud berikut:

gcloud sql instances list

Untuk contoh cara menghubungkan menggunakan SSL, lihat Menghubungkan dengan SSL.

6. Perintah sqlcmd akan muncul.

Proxy Auth Cloud SQL

Untuk terhubung menggunakan Proxy Auth Cloud SQL dari Compute Engine:

1. Aktifkan Cloud SQL Admin API.

Mengaktifkan API

2. Membuat akun layanan.

  1. Di Konsol Google Cloud, buka halaman Service accounts.

    Buka halaman Service accounts

  2. Pilih project yang berisi instance Cloud SQL.
  3. Klik Create service account.
  4. Pada kolom Nama akun layanan, masukkan nama deskriptif untuk akun tersebut.
  5. Ubah ID akun layanan menjadi nilai yang unik dan dapat dikenali, kemudian klik Buat dan lanjutkan.
  6. Klik kolom Pilih peran dan pilih salah satu dari peran berikut:
    • Cloud SQL > Klien Cloud SQL
    • Cloud SQL > Editor Cloud SQL
    • Cloud SQL > Admin Cloud SQL
  7. Klik Selesai untuk menyelesaikan pembuatan akun layanan.
  8. Klik menu tindakan untuk akun layanan baru kemudian pilih Mengelola kunci.
  9. Klik menu drop-down Tambahkan kunci kemudian klik Buat kunci baru.
  10. Lakukan konfirmasi bahwa jenis kunci tersebut adalah JSON kemudian klik Buat.

    File kunci pribadi telah didownload ke mesin. Anda dapat memindahkan file tersebut ke lokasi lain. Simpan file kunci dengan aman.

Jika instance Compute Engine berada dalam project yang berbeda dengan instance Cloud SQL, pastikan akun layanannya memiliki izin yang tepat di project yang berisi instance Cloud SQL:

  1. Buka listingan instance Compute Engine di konsol Google Cloud.

    Buka listingan instance Compute Engine

  2. Jika perlu, pilih project yang berkatan dengan instance Compute Engine.
  3. Pilih instance Compute Engine untuk menampilkan propertinya.
  4. Di properti instance Compute Engine, salin nama akun layanan.
  5. Buka halaman Project IAM & Admin di konsol Google Cloud.

    Buka halaman Project IAM & Admin

  6. Pilih project yang berisi instance Cloud SQL.
  7. Telusuri nama akun layanan.
  8. Jika akun layanan sudah ada, dan memiliki peran yang menyertakan izin cloudsql.instances.connect, Anda dapat melanjutkan ke langkah 4.

    Peran Cloud SQL Client, Cloud SQL Editor, dan Cloud SQL Admin memberikan izin yang diperlukan, seperti halnya peran project Editor dan Owner lama.

  9. Atau, tambahkan akun layanan dengan mengklik Tambahkan.
  10. Pada dialog Add Principals, masukkan nama akun layanan dan pilih peran yang menyertakan izin cloudsql.instances.connect (peran Cloud SQL yang telah ditetapkan sebelumnya, selain Viewer, akan berfungsi).

    Sebagai alternatif, Anda dapat menggunakan peran Editor dasar dengan memilih Project > Editor, tetapi peran Editor mencakup izin di seluruh Google Cloud.

    Jika tidak melihat peran ini, pengguna Google Cloud Anda mungkin tidak memiliki izin resourcemanager.projects.setIamPolicy. Anda dapat memeriksa izin dengan membuka halaman IAM di konsol Google Cloud dan menelusuri ID pengguna Anda.

  11. Klik Tambahkan.

    Sekarang Anda melihat akun layanan yang tercantum dengan peran yang ditentukan.

3. Buka koneksi terminal ke instance Compute Engine Anda.

Gunakan petunjuk yang tepat, bergantung pada sistem operasi instance:

Jika instance Compute Engine Anda menjalankan image publik RHEL atau CentOS, SELinux mungkin akan memblokir koneksi proxy. Jika hal ini terjadi, Anda harus mengonfigurasi fitur SELinux untuk mengizinkan koneksi.

Untuk mengetahui informasi selengkapnya tentang SELinux untuk RHEL, lihat dokumentasi RHEL. Untuk mengetahui informasi selengkapnya tentang SELinux untuk CentOS, lihat dokumentasi CentOS.

4. Menginstal klien sqlcmd pada instance Compute Engine, jika belum diinstal.

Debian/Ubuntu

Untuk Debian/Ubuntu, instal alat command line SQL Server yang berlaku.

CentOS/RHEL

Untuk CentOS/RHEL, instal alat command line SQL Server yang berlaku.

OpenSUSE

Untuk openSUSE, instal alat command line SQL Server yang berlaku.

Platform lainnya

Lihat halaman landing untuk menginstal SQL Server, serta halaman download SQL Server.

5. Instal Proxy Auth Cloud SQL pada instance Compute Engine.

Linux 64 bit

  1. Download Proxy Auth Cloud SQL:
    curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.13.0/cloud-sql-proxy.linux.amd64
  2. Buat Proxy Auth Cloud SQL agar dapat dieksekusi:
    chmod +x cloud-sql-proxy

Linux 32 bit

  1. Download Proxy Auth Cloud SQL:
    curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.13.0/cloud-sql-proxy.linux.386
  2. Jika perintah curl tidak ditemukan, jalankan sudo apt install curl dan ulangi perintah download.
  3. Jadikan Proxy Auth Cloud SQL dapat dieksekusi:
    chmod +x cloud-sql-proxy

Windows 64 bit

Klik kanan https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.13.0/cloud-sql-proxy.x64.exe dan pilih Save Link As untuk mendownload Cloud SQL Auth Proxy. Ganti nama file menjadi cloud-sql-proxy.exe.

Windows 32 bit

Klik kanan https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.13.0/cloud-sql-proxy.x86.exe dan pilih Save Link As untuk mendownload Cloud SQL Auth Proxy. Ganti nama file menjadi cloud-sql-proxy.exe.

Image Docker Proxy Auth Cloud SQL

Auth Proxy Cloud SQL memiliki image container yang berbeda, seperti distroless, alpine, dan buster. Image container Cloud SQL Auth Proxy default digunakan distroless, yang tidak mengandung {i>shell<i}. Jika Anda membutuhkan {i>shell<i} atau alat terkait, maka unduh {i>image<i} berdasarkan alpine atau buster. Untuk informasi selengkapnya, lihat Image Container Proxy Auth Cloud SQL.

Anda dapat menarik image terbaru ke mesin lokal Anda menggunakan Docker menggunakan perintah berikut:

docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.13.0

OS Lainnya

Untuk sistem operasi lain yang tidak disertakan di sini, Anda dapat mengompilasi Proxy Auth Cloud SQL dari sumber.

6. Mulai Proxy Auth Cloud SQL.

Anda dapat memulai Proxy Auth Cloud SQL menggunakan soket TCP atau image Docker Proxy Auth Cloud SQL. Biner Proxy Auth Cloud SQL terhubung ke satu atau beberapa instance Cloud SQL yang ditentukan pada command line, dan membuka koneksi lokal sebagai soket TCP. Aplikasi dan layanan lain, seperti kode aplikasi atau alat klien pengelolaan database Anda, dapat terhubung ke instance Cloud SQL melalui koneksi soket TCP tersebut.

Soket TCP

Proxy Auth Cloud SQL memproses localhost(127.0.0.1) secara default untuk koneksi TCP. Oleh karena itu, saat Anda menentukan --port PORT_NUMBER untuk instance, koneksi lokal berada di 127.0.0.1:PORT_NUMBER.

Anda dapat menentukan alamat yang berbeda untuk koneksi lokal sebagai alternatif lain. Sebagai contoh, berikut ini cara membuat Proxy Auth Cloud SQL memproses 0.0.0.0:1234 untuk koneksi lokal:

./cloud-sql-proxy --address 0.0.0.0 --port 1234 INSTANCE_CONNECTION_NAME
  1. Salin INSTANCE_CONNECTION_NAME. Ini dapat ditemukan pada halaman Overview untuk instance Anda dalam Konsol Google Cloud atau dengan menjalankan perintah berikut:

        gcloud sql instances describe INSTANCE_NAME --format='value(connectionName)'

    Misalnya: myproject:myregion:myinstance.

  2. Apabila instance memiliki IP pribadi dan publik yang sudah dikonfigurasi kemudian ingin Proxy Auth Cloud SQL tersebut menggunakan alamat IP pribadi, Anda harus menyediakan opsi berikut saat memulai Proxy Auth Cloud SQL:
    --private-ip
  3. Apabila menggunakan akun layanan untuk mengautentikasi Proxy Auth Cloud SQL, perhatikan lokasi file kunci pribadi yang dibuat saat Anda mengelola akun layanan tersebut di komputer klien.
  4. Memulai Proxy Auth Cloud SQL.

    Beberapa string pemanggilan Proxy Auth Cloud SQL memungkinkan untuk:

    • Menggunakan autentikasi Cloud SDK:
      ./cloud-sql-proxy --port 1433 INSTANCE_CONNECTION_NAME
      Port yang ditentukan harus belum digunakan, misalnya, oleh server database lokal.
    • Menggunakan akun layanan dan menyertakan nama koneksi instance secara eksplisit (disarankan untuk lingkungan produksi):
      ./cloud-sql-proxy \
      --credentials-file PATH_TO_KEY_FILE INSTANCE_CONNECTION_NAME &

    Untuk informasi selengkapnya tentang opsi Proxy Auth Cloud SQL, lihat Opsi untuk mengautentikasi Proxy Auth Cloud SQL.

Docker

Untuk menjalankan Proxy Auth Cloud SQL pada container Docker, gunakan image Docker Proxy Auth Cloud SQL yang tersedia dari Google Container Registry.

Anda dapat memulai Proxy Auth Cloud SQL menggunakan soket TCP atau soket Unix, dengan perintah yang ditampilkan di bawah ini. Opsi tersebut menggunakan INSTANCE_CONNECTION_NAME sebagai string koneksi untuk mengidentifikasi instance Cloud SQL. Anda dapat menemukan INSTANCE_CONNECTION_NAME pada halaman Ringkasan untuk instance dalam konsol Google Cloud. atau dengan menjalankan perintah berikut:

gcloud sql instances describe INSTANCE_NAME
.

Misalnya: myproject:myregion:myinstance.

Anda dapat memulai Proxy Auth Cloud SQL menggunakan soket TCP atau soket Unix tergantung pada bahasa dan lingkungan. Soket Unix tidak didukung untuk aplikasi yang ditulis dalam bahasa pemrograman Java atau untuk lingkungan Windows.

Menggunakan soket TCP

docker run -d \\
  -v PATH_TO_KEY_FILE:/path/to/service-account-key.json \\
  -p 127.0.0.1:1433:1433 \\
  gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.13.0 \\
  --address 0.0.0.0 --port 1433 \\
  --credentials-file /path/to/service-account-key.json INSTANCE_CONNECTION_NAME

Apabila Anda menggunakan kredensial yang disediakan oleh instance Compute Engine, jangan sertakan parameter --credentials-file dan baris. -v PATH_TO_KEY_FILE:/path/to/service-account-key.json

Selalu tentukan awalan 127.0.0.1 pada -p sehingga Proxy Auth Cloud SQL tidak diekspos ke luar host lokal. "0.0.0.0" pada parameter instance diperlukan agar port dapat diakses dari luar container Docker.

Menggunakan soket Unix

docker run -d -v /cloudsql:/cloudsql \\
  -v PATH_TO_KEY_FILE:/path/to/service-account-key.json \\
  gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.13.0 --unix-socket=/cloudsql \\
  --credentials-file /path/to/service-account-key.json INSTANCE_CONNECTION_NAME

Apabila Anda menggunakan kredensial yang disediakan oleh instance Compute Engine, jangan sertakan parameter --credentials-file dan baris. -v PATH_TO_KEY_FILE:/path/to/service-account-key.json

Apabila Anda menggunakan image yang dioptimalkan untuk container, gunakan direktori yang dapat ditulis sebagai pengganti /cloudsql, contohnya:

-v /mnt/stateful_partition/cloudsql:/cloudsql

Anda dapat menentukan lebih dari satu instance yang dipisahkan dengan koma. Anda juga dapat menggunakan metadata Compute Engine untuk menentukan instance yang akan dihubungkan secara dinamis. Pelajari lebih lanjut tentang parameter Proxy Auth Cloud SQL.

7. Memulai sesi sqlcmd.

String koneksi yang Anda gunakan bergantung pada apakah Anda memulai Proxy Auth Cloud SQL menggunakan soket TCP atau Docker.

Soket TCP

  1. Mulai klien sqlcmd:
    sqlcmd -S tcp:127.0.0.1,1433 -U USERNAME -P PASSWORD

    Saat Anda terhubung menggunakan soket TCP, Proxy Auth Cloud SQL diakses melalui 127.0.0.1.

  2. Jika diminta, masukkan sandi.
  3. Perintah sqlcmd akan muncul.

Butuh bantuan? Untuk mendapatkan bantuan dalam memecahkan masalah proxy, lihat Memecahkan masalah koneksi Proxy Auth Cloud SQL, atau lihat halaman Dukungan Cloud SQL kami.

Langkah berikutnya