Halaman ini berisi informasi dan contoh untuk menghubungkan ke instance Cloud SQL dari layanan yang berjalan di lingkungan fleksibel App Engine.
Cloud SQL adalah layanan database yang terkelola sepenuhnya yang membantu Anda menyiapkan, memelihara, mengelola, dan mengatur database relasional Anda 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 project Google Cloud yang menjadi sumber koneksi, jika Anda
belum melakukannya:
- Buat instance Cloud SQL untuk PostgreSQL.
Secara default, Cloud SQL menetapkan alamat IP publik ke instance baru. Anda juga memiliki opsi untuk menetapkan alamat IP pribadi. Untuk mengetahui informasi lebih lanjut tentang opsi konektivitas untuk keduanya, lihat halaman Menghubungkan Ringkasan.
Mengonfigurasi lingkungan fleksibel App Engine
Langkah-langkah untuk mengonfigurasi lingkungan fleksibel App Engine bergantung pada jenis alamat IP yang Anda tetapkan ke instance Cloud SQL. Jika Anda mengarahkan semua traffic keluar melalui konektor VPC, Anda harus menggunakan IP Pribadi.IP Publik (default)
Untuk mengonfigurasi lingkungan fleksibel App Engine guna mengaktifkan koneksi ke instance Cloud SQL:
- Pastikan instance yang telah dibuat di atas memiliki alamat IP publik. Anda dapat memverifikasinya di halaman Ringkasan untuk instance Anda di konsol Google Cloud. Jika Anda ingin menambahkan alamat IP, lihat halaman Mengonfigurasi IP publik untuk mendapatkan petunjuknya.
- Dapatkan INSTANCE_CONNECTION_NAME untuk instance Anda Opsi ini dapat ditemukan
di halaman Ringkasan untuk instance Anda di
Konsol Google Cloud. atau dengan menjalankan
perintah berikut:
gcloud sql instances describe [INSTANCE_NAME]
. - Pastikan akun layanan yang digunakan aplikasi Anda untuk mengautentikasi panggilan ke Cloud SQL memiliki peran dan izin Cloud SQL yang sesuai.
- Akun layanan untuk layanan Anda memerlukan salah satu
peran IAM berikut:
Cloud SQL Client
(pilihan)Cloud SQL Editor
Cloud SQL Admin
cloudsql.instances.connect
cloudsql.instances.get
Secara default, aplikasi Anda akan mengizinkan koneksi menggunakan akun layanan lingkungan fleksibel App Engine. 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.
- Akun layanan untuk layanan Anda memerlukan salah satu
peran IAM berikut:
- Update file
app.yaml
project Anda dengan opsi yang paling sesuai. Anda dapat menggunakan daftar instance yang dipisahkan koma untuk menentukan beberapa opsi sekaligus.Mengaktifkan soket domain Unix
Untuk mengaktifkan soket domain Unix, tambahkan salah satu opsi berikut ke file
app.yaml
project, tergantung apakah Anda terhubung ke satu atau beberapa instance:beta_settings: cloud_sql_instances: INSTANCE_CONNECTION_NAME
beta_settings: cloud_sql_instances: INSTANCE_CONNECTION_NAME,INSTANCE_CONNECTION_NAME_2,...
Mengaktifkan Port TCP
Untuk mengaktifkan port TCP lokal, tambahkan salah satu opsi berikut ke fileapp.yaml
project, bergantung pada apakah Anda terhubung ke satu atau beberapa instance:beta_settings: cloud_sql_instances: INSTANCE_CONNECTION_NAME=tcp:PORT
beta_settings: cloud_sql_instances: INSTANCE_CONNECTION_NAME_1=tcp:PORT_1,INSTANCE_CONNECTION_NAME_2=tcp:PORT_2,...
IP Pribadi
Agar dapat terhubung ke instance Cloud SQL Anda melalui IP pribadi, deployment lingkungan fleksibel App Engine Anda harus berada dalam jaringan VPC yang sama dengan instance Cloud SQL Anda. Baca dokumentasi konfigurasi di Setelan Jaringan guna mendapatkan petunjuk tentang cara menentukan jaringan VPC untuk deployment Anda.
Setelah di-deploy, aplikasi Anda akan dapat terhubung langsung menggunakan port 5432
dan alamat IP pribadi instance Anda.
Menghubungkan ke Cloud SQL
Setelah mengonfigurasi lingkungan fleksibel App Engine, Anda dapat terhubung ke instance Cloud SQL.
IP Publik (default)
Untuk jalur IP publik, lingkungan fleksibel App Engine menyediakan enkripsi dan terhubung menggunakan Proxy Auth Cloud SQL melalui tiga cara:
- Melalui soket TCP
- Melalui soket Unix
- Dengan menggunakan konektor Cloud SQL
IP Pribadi
Sambungkan dengan TCP
Sambungkan menggunakan alamat IP pribadi instance Cloud SQL Anda sebagai host dan port 5432
.
Python
Untuk melihat cuplikan ini dalam konteks aplikasi web, lihat README di GitHub.
Java
Untuk melihat cuplikan ini dalam konteks aplikasi web, lihat README di GitHub.
Catatan:
- CLOUD_SQL_CONNECTION_NAME harus direpresentasikan sebagai <MY-PROJECT>:<INSTANCE-REGION>:<INSTANCE-NAME>
- Menggunakan argumen ipTypes=PRIVATE akan memaksa SocketFactory untuk terhubung dengan IP pribadi yang terkait dengan sebuah instance
- Lihat persyaratan versi factory soket JDBC untuk file pom.xml di sini .
Node.js
Untuk melihat cuplikan ini dalam konteks aplikasi web, lihat README di GitHub.
Go
Untuk melihat cuplikan ini dalam konteks aplikasi web, lihat README di GitHub.
C#
Untuk melihat cuplikan ini dalam konteks aplikasi web, lihat README di GitHub.
Ruby
Untuk melihat cuplikan ini dalam konteks aplikasi web, lihat README di GitHub.
PHP
Untuk melihat cuplikan ini dalam konteks aplikasi web, lihat README di GitHub.
Praktik terbaik dan informasi lainnya
Anda dapat menggunakan Proxy Auth Cloud SQL saat menguji aplikasi Anda secara lokal. Lihat panduan memulai penggunaan Proxy Auth Cloud SQL untuk petunjuk terperinci.
Kumpulan Koneksi
Koneksi ke database dasar dapat terputus, baik oleh server database itu sendiri, atau oleh infrastruktur yang mendasari. 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 sekaligus ke suatu instance. Untuk aplikasi PHP 5.5, batasnya adalah 60 koneksi sekaligus. Batas ini berlaku per instance aplikasi. Artinya, setiap instance aplikasi App Engine boleh memiliki koneksi sebanyak itu ke database, dan seiring dengan peningkatan skala, jumlah total koneksi per deployment dapat terus meningkat. Untuk mengetahui 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 bagaimana cara membatasi jumlah koneksi, lihat Mengelola koneksi database.
Aplikasi App Engine tunduk pada batas waktu permintaan, bergantung pada penggunaan dan lingkungan. Untuk mengetahui informasi selengkapnya, lihat bagaimana cara instance dikelola di lingkungan standar App Engine lingkungan standar dan fleksibel.
Batas Kuota API
App Engine menyediakan mekanisme yang terhubung menggunakan Cloud SQL Auth Proxy, yang menggunakan Cloud SQL Admin API. Batas kuota API berlaku untuk Proxy Auth Cloud SQL. Kuota Cloud SQL Admin API yang digunakan kira-kira dua kali lipat jumlah instance Cloud SQL yang dikonfigurasi oleh jumlah instance App Engine dari layanan tertentu yang di-deploy pada satu waktu. Aplikasi App Engine juga tunduk pada kuota dan batas App Engine lainnya seperti yang dibahas di halaman Kuota App Engine.