Halaman ini berisi informasi dan contoh untuk menghubungkan ke instance Cloud SQL dari layanan yang berjalan di lingkungan standar App Engine.
Cloud SQL adalah layanan database yang terkelola sepenuhnya untuk membantu Anda menyiapkan, memelihara, mengatur, dan mengelola database relasional di cloud.
App Engine adalah platform serverless yang terkelola sepenuhnya untuk mengembangkan dan menghosting aplikasi web dalam skala besar. Anda dapat memilih dari beberapa bahasa, library, dan framework populer untuk mengembangkan aplikasi, lalu mengizinkan App Engine menangani server penyediaan dan menskalakan instance aplikasi Anda berdasarkan permintaan.
Menyiapkan instance Cloud SQL
- Aktifkan Cloud SQL Admin API di Google Cloud project yang menjadi sumber koneksi, jika Anda
belum melakukannya:
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (
roles/serviceusage.serviceUsageAdmin), yang berisi izinserviceusage.services.enable. Pelajari cara memberikan peran. - Buat instance Cloud SQL
untuk SQL Server. Sebaiknya pilih lokasi instance Cloud SQL
di region yang sama dengan layanan Cloud Run Anda untuk mendapatkan latensi yang lebih baik, menghindari beberapa biaya jaringan, dan mengurangi
risiko kegagalan lintas region.
Secara default, Cloud SQL menetapkan alamat IP publik ke instance baru instance. Anda juga memiliki opsi untuk menetapkan alamat IP pribadi. Untuk mengetahui informasi selengkapnya tentang opsi konektivitas untuk keduanya, lihat halaman Menghubungkan Ringkasan.
- Saat membuat instance, Anda dapat memilih hierarki
sertifikat server (CA) untuk instance, lalu mengonfigurasi hierarki
sebagai
serverCaModeuntuk instance. Anda harus memilih opsi CA per instance (GOOGLE_MANAGED_INTERNAL_CA) sebagai mode CA server untuk instance yang ingin Anda hubungkan dari aplikasi web lingkungan standar App Engine.
Mengonfigurasi lingkungan standar App Engine
Langkah-langkah untuk mengonfigurasi lingkungan standar App Engine bergantung pada jenis alamat IP yang Anda tetapkan ke instance Cloud SQL.IP Publik (default)
Lingkungan Standar App Engine mendukung koneksi ke Cloud SQL untuk SQL Server melalui IP Publik menggunakan konektor Go, Java dan Python.
Cara mengonfigurasi lingkungan standar App Engine untuk mengaktifkan koneksi ke instance Cloud SQL menggunakan IP publik:- Pastikan instance memiliki alamat IP publik. Anda dapat memverifikasi hal ini di halaman Ringkasan untuk instance Anda di Google Cloud konsol. Jika perlu menambahkan alamat IP, lihat Mengonfigurasi halaman IP publik untuk mendapatkan petunjuk.
- Dapatkan INSTANCE_CONNECTION_NAME untuk instance Anda. Anda dapat menemukan
nilai ini di halaman Ringkasan untuk instance Anda di
Google Cloud konsol atau dengan menjalankan
perintah
gcloud sql instances describeberikut: Ganti INSTANCE_NAME dengan nama instance Cloud SQL Anda.gcloud sql instances describe INSTANCE_NAME
Ganti variabel INSTANCE_NAME dengan nama instance Anda.
Pastikan akun layanan yang digunakan aplikasi Anda untuk mengautentikasi panggilan ke Cloud SQL memiliki
Cloud SQL Clientperan IAM.Untuk petunjuk mendetail tentang cara menambahkan peran IAM ke akun layanan, lihat Memberikan Peran ke Akun Layanan.
Akun layanan App Engine default dibuat secara otomatis saat Anda menggunakan App Engine. Identitas akun layanan
terdapat di format PROJECT_ID@appspot.gserviceaccount.com.
Jika ternyata akun layanan yang memberi otorisasi adalah milik project yang berbeda dengan instance Cloud SQL, maka izin Cloud SQL Admin API dan IAM perlu ditambahkan untuk kedua project tersebut.
IP Pribadi
Jika akun layanan yang memberi otorisasi dimiliki oleh project yang berbeda dengan project yang berisi instance Cloud SQL, lakukan hal berikut:
- Di kedua project, aktifkan Cloud SQL Admin API.
- Untuk akun layanan di project yang berisi instance Cloud SQL, tambahkan izin IAM.
- Pastikan instance Cloud SQL yang dibuat sebelumnya memiliki a alamat IP pribadi. Jika perlu menambahkan alamat IP, lihat Mengonfigurasi IP pribadi untuk mendapatkan petunjuk.
- Buat konektor Akses VPC Serverless di jaringan VPC yang sama dengan instance Cloud SQL Anda. Perhatikan kondisi berikut:
- Kecuali jika Anda menggunakan VPC Bersama, konektor harus berada di project dan region yang sama dengan resource yang menggunakannya. Namun, konektor dapat mengirim traffic ke resource di region yang berbeda.
- Akses VPC Serverless mendukung komunikasi ke jaringan VPC yang terhubung menggunakan Cloud VPN dan Peering Jaringan VPC.
- Akses VPC Serverless tidak mendukung jaringan lama.
- Konfigurasikan lingkungan standar App Engine untuk menggunakan konektor.
- Hubungkan menggunakan alamat IP pribadi instance dan port
1433.
Menghubungkan ke Cloud SQL
Setelah berhasil mengonfigurasi lingkungan standar App Engine, Anda dapat terhubung ke instance Cloud SQL.
IP Publik (default)
Untuk jalur IP publik, lingkungan standar App Engine menyediakan enkripsi dan terhubung menggunakan konektor Cloud SQL.
Terhubung dengan konektor Cloud SQL
Konektor Cloud SQL adalah library khusus bahasa yang menyediakan enkripsi dan otorisasi berbasis IAM saat terhubung ke instance Cloud SQL.
Python
Untuk menemukan cuplikan ini dalam konteks aplikasi web, lihat README pada GitHub.
Java
Untuk menemukan cuplikan ini dalam konteks aplikasi web, lihat README pada GitHub.
Catatan:
- CLOUD_SQL_CONNECTION_NAME harus direpresentasikan sebagai <MY-PROJECT>:<INSTANCE-REGION>:<INSTANCE-NAME>
- Lihat persyaratan versi factory soket JDBC untuk file pom.xml file di sini .
Go
Untuk menemukan cuplikan ini dalam konteks aplikasi web, lihat README pada GitHub.
Node.js
Untuk menemukan cuplikan ini dalam konteks aplikasi web, lihat README pada GitHub.
IP Pribadi
Untuk jalur IP pribadi, aplikasi Anda terhubung langsung ke instance melalui jaringan VPC. Metode ini menggunakan TCP untuk terhubung langsung ke instance Cloud SQL tanpa menggunakan Proxy Auth Cloud SQL.
Terhubung dengan TCP
Hubungkan menggunakan alamat IP pribadi instance Cloud SQL Anda sebagai host dan port 1433.
Python
Untuk menemukan cuplikan ini dalam konteks aplikasi web, lihat README pada GitHub.
Java
Untuk menemukan cuplikan ini dalam konteks aplikasi web, lihat README pada GitHub.
Catatan:
- CLOUD-SQL-CONNECTION-NAME harus ditampilkan sebagai <MY-PROJECT>:<INSTANCE-REGION><INSTANCE-NAME>
- Menggunakan argumen ipTypes=PRIVATE akan memaksa SocketFactory untuk terhubung dengan IP pribadi yang terkait dengan instance.
- Lihat persyaratan versi factory soket JDBC untuk file pom.xml file.
Node.js
Untuk menemukan cuplikan ini dalam konteks aplikasi web, lihat README pada GitHub.
Go
Untuk menemukan cuplikan ini dalam konteks aplikasi web, lihat README pada GitHub.
C#
Untuk menemukan cuplikan ini dalam konteks aplikasi web, lihat README pada GitHub.
Ruby
Untuk menemukan cuplikan ini dalam konteks aplikasi web, lihat README pada GitHub.
PHP
Untuk menemukan cuplikan ini dalam konteks aplikasi web, lihat README pada GitHub.
Praktik terbaik dan informasi lainnya
Anda dapat menggunakan Proxy Auth Cloud SQL saat menguji aplikasi Anda secara lokal. Lihat panduan memulai untuk penggunaan Proxy Auth Cloud SQL untuk mendapatkan petunjuk terperinci.
Kumpulan Koneksi
Koneksi ke database pokok dapat terputus, entah oleh server database itu sendiri, atau oleh infrastruktur yang mendasarinya. Untuk mengurangi hal ini, sebaiknya gunakan library klien yang mendukung kumpulan koneksi dan koneksi ulang otomatis.
Batas Koneksi
Setiap instance App Engine yang berjalan di lingkungan standar tidak boleh memiliki lebih dari 100 koneksi konkurensi ke instance. Untuk aplikasi PHP 5.5, batasnya adalah 60 koneksi konkurensi. Batas ini berlaku per instance aplikasi. Artinya, setiap instance aplikasi App Engine dapat memiliki koneksi sebanyak itu ke database, dan seiring dengan skalanya, jumlah total koneksi per deployment dapat meningkat. Untuk informasi selengkapnya, lihat Menskalakan elemen.
Anda dapat membatasi jumlah maksimum koneksi yang digunakan per instance dengan menggunakan kumpulan koneksi. Untuk contoh yang lebih detail tentang cara membatasi jumlah koneksi, lihat halaman Mengelola koneksi database.
Aplikasi App Engine tunduk pada batas waktu permintaan, bergantung pada penggunaan dan lingkungan. Untuk mengetahui informasi selengkapnya, lihat cara instance dikelola di lingkungan standar dan fleksibel lingkungan standar App Engine.
Batas Kuota API
App Engine menyediakan mekanisme yang terhubung menggunakan Proxy Auth Cloud SQL, yang menggunakan Cloud SQL Admin API. Batas kuota API berlaku untuk Proxy Auth Cloud SQL. Saat Cloud SQL Admin API dimulai, API ini menggunakan kuota dua dan rata-rata dua per jam setelahnya. Kuota default adalah 180 per menit per pengguna. Aplikasi App Engine juga tunduk pada kuota dan batas tambahan seperti yang dibahas di halaman Kuota App Engine.