Halaman ini menjelaskan cara mengonfigurasi instance Cloud SQL untuk menggunakan IP pribadi.
Untuk informasi lebih lanjut terkait cara kerja IP pribadi serta persyaratan lingkungan dan pengelolaan, lihat IP Pribadi.
Sebelum memulai
Persyaratan API dan IAM
- Anda harus mengaktifkan Service Networking API untuk project Google Cloud Anda.
- Untuk mengelola koneksi akses layanan pribadi, pengguna harus
memiliki izin Identity and Access Management (IAM) berikut. Jika tidak memiliki izin yang
diperlukan, Anda dapat mengalami error izin yang tidak memadai.
compute.networks.list
compute.addresses.create
compute.addresses.list
servicenetworking.services.addPeering
Jika menggunakan Jaringan VPC Bersama, Anda juga perlu menambahkan pengguna ke project host dan menetapkan izin yang sama kepada pengguna di project host.
Jika Anda menggunakan Jaringan VPC Bersama, Anda juga harus mengaktifkan API ini untuk project host.
Akses layanan pribadi
Saat membuat jaringan Virtual Private Cloud (VPC) baru pada project, Anda harus mengonfigurasi akses layanan pribadi untuk mengalokasikan rentan alamat IP dan membuat koneksi layanan pribadi. Tindakan ini memungkinkan resource dalam jaringan VPC untuk terhubung ke instance Cloud SQL. Konsol Google Cloud menyediakan wizard untuk membantu Anda menyiapkan konfigurasi ini.
Mengonfigurasi instance untuk menggunakan IP pribadi
Anda dapat mengonfigurasi instance Cloud SQL untuk menggunakan IP pribadi saat Anda membuat instance atau untuk instance yang sudah ada.
Mengonfigurasi IP pribadi untuk instance baru
Untuk mengonfigurasi instance Cloud SQL agar menggunakan IP pribadi saat membuat instance:
Konsol
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Klik Create instance.
- Luaskan Show configuration options.
- Luaskan Connections.
- Pilih Private IP.
Menu drop-down menampilkan jaringan VPC yang tersedia di project Anda. Jika project Anda adalah project layanan dari VPC Bersama, maka jaringan VPC dari project host juga akan ditampilkan.
- Pilih jaringan VPC yang ingin Anda gunakan.
- Klik Siapkan koneksi.
- Pada bagian Mengalokasikan rentang IP, pilih salah satu opsi
berikut:
- Pilih salah satu atau beberapa rentang IP yang masih ada, atau buat yang baru dari dropdown. Dropdown menyertakan rentang yang dialokasikan sebelumnya, jika ada, atau Anda dapat memilih Allocate a new IP range dan memasukkan rentang dan nama baru.
- Gunakan rentang IP yang dialokasikan secara otomatis dalam jaringan Anda.
- Klik Lanjutkan.
- Klik Buat koneksi.
- Pastikan bahwa Anda melihat pesan tersebut:
Private service connection for network VPC_NETWORK_NAME has been successfully created
. - Secara opsional, Anda dapat menentukan rentang IP yang dialokasikan untuk instance yang akan digunakan untuk koneksi.
- Luaskan Tampilkan opsi rentang IP yang dialokasikan.
- Pilih rentang IP dari menu drop-down.
- Selesaikan konfigurasi instance.
- Klik Create instance.
Jika menemukan pesan yang mengatakan bahwa Anda perlu menyiapkan koneksi layanan pribadi, lakukan langkah berikut:
gcloud
Sebelum membuat instance menggunakan alamat IP pribadi, pastikan project Anda terlah sudah dikonfigurasi untuk akses layanan pribadi.
Sebelum menggunakan data permintaan apa pun, buat pergantian berikut:
INSTANCE_ID
: ID instancePROJECT_ID
: ID projectNETWORK_PROJECT_ID
: ID project jaringan VPCVPC_NETWORK_NAME
: Nama jaringan VPCRANGE_NAME
: Opsional. Jika ditentukan, tetapkan nama rentang yang dialokasikan untuk rentang IP. Nama rentang harus mengikutiRFC-1035
dan mengandung 1-63 karakter.REGION_NAME
: Nama region
--network
. Untuk menonaktifkan IP publik, gunakan
flag --no-assign-ip
.
gcloud beta sql instances create INSTANCE_ID \ --project=PROJECT_ID \ --network=projects/NETWORK_PROJECT_ID/global/networks/VPC_NETWORK_NAME \ --no-assign-ip \ --allocated-ip-range-name=RANGE_NAME
Terraform
Untuk mengonfigurasi IP pribadi bagi instance baru, gunakan resource Terraform berikut ini:
google_compute_network
google_compute_global_address
google_service_networking_connection
google_sql_database_instance
Menerapkan perubahan
Untuk menerapkan konfigurasi Terraform di project Google Cloud, selesaikan langkah-langkah di bagian berikut.
Menyiapkan Cloud Shell
- Luncurkan Cloud Shell.
-
Tetapkan project Google Cloud default tempat Anda ingin menerapkan konfigurasi Terraform.
Anda hanya perlu menjalankan perintah ini sekali per project, dan dapat dijalankan di direktori mana pun.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Variabel lingkungan akan diganti jika Anda menetapkan nilai eksplisit dalam file konfigurasi Terraform.
Menyiapkan direktori
Setiap file konfigurasi Terraform harus memiliki direktorinya sendiri (juga disebut modul root).
-
Di Cloud Shell, buat direktori dan file baru di dalam direktori tersebut. Nama file harus memiliki
ekstensi
.tf
—misalnyamain.tf
. Dalam tutorial ini, file ini disebut sebagaimain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Jika mengikuti tutorial, Anda dapat menyalin kode contoh di setiap bagian atau langkah.
Salin kode contoh ke dalam
main.tf
yang baru dibuat.Atau, salin kode dari GitHub. Tindakan ini direkomendasikan jika cuplikan Terraform adalah bagian dari solusi menyeluruh.
- Tinjau dan ubah contoh parameter untuk diterapkan pada lingkungan Anda.
- Simpan perubahan Anda.
-
Lakukan inisialisasi Terraform. Anda hanya perlu melakukan ini sekali per direktori.
terraform init
Secara opsional, untuk menggunakan versi penyedia Google terbaru, sertakan opsi
-upgrade
:terraform init -upgrade
Menerapkan perubahan
-
Tinjau konfigurasi dan pastikan resource yang akan dibuat atau
diupdate oleh Terraform sesuai yang Anda inginkan:
terraform plan
Koreksi konfigurasi jika diperlukan.
-
Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan
yes
pada prompt:terraform apply
Tunggu hingga Terraform menampilkan pesan "Apply complete!".
- Buka project Google Cloud Anda untuk melihat hasilnya. Di Konsol Google Cloud, buka resource Anda di UI untuk memastikan bahwa Terraform telah membuat atau mengupdatenya.
Menghapus perubahan
Untuk menghapus perubahan Anda, lakukan langkah-langkah berikut:
- Untuk menonaktifkan perlindungan penghapusan, di file konfigurasi Terraform Anda, tetapkan
argumen
deletion_protection
kefalse
.deletion_protection = "false"
- Terapkan konfigurasi Terraform terbaru dengan menjalankan perintah berikut dan memasukkan
yes
pada perintah:terraform apply
-
Hapus resource yang sebelumnya diterapkan dengan konfigurasi Terraform Anda dengan menjalankan perintah berikut dan memasukkan
yes
pada prompt:terraform destroy
REST v1
Buat instance baru dengan alamat IP pribadi:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID
- INSTANCE_ID: ID instance
- VPC_NETWORK_NAME: Tentukan nama jaringan Virtual Private Cloud (VPC) yang ingin Anda gunakan untuk instance ini. Akses layanan pribadi sudah harus dikonfigurasi untuk jaringan tersebut.
- RANGE_NAME: Opsional. Jika ditentukan, tetapkan nama rentang yang dialokasikan untuk
rentang IP. Nama rentang harus sesuai dengan
RFC-1035
dan berisi 1-63 karakter. - AUTHORIZED_NETWORKS: Untuk koneksi IP publik, tentukan koneksi dari jaringan resmi yang dapat terhubung ke instance Anda.
Untuk parameter ipv4Enabled
, tetapkan nilai ke true
jika Anda menggunakan alamat IP publik untuk instance atau false
jika instance Anda memiliki
alamat IP pribadi.
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
Meminta isi JSON:
{ "name": "INSTANCE_ID", "region": "region", "databaseVersion": "database-version", "settings": { "tier": "machine-type", "ipConfiguration": { "ipv4Enabled": false, "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME", "allocatedIpRange": "RANGE_NAME" "authorizedNetworks": [AUTHORIZED_NETWORKS], } } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
REST v1beta4
Buat instance baru dengan alamat IP pribadi:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID
- INSTANCE_ID: ID instance
- VPC_NETWORK_NAME: Tentukan nama jaringan Virtual Private Cloud (VPC) yang ingin Anda gunakan untuk instance ini. Akses layanan pribadi sudah harus dikonfigurasi untuk jaringan tersebut.
- RANGE_NAME: Opsional. Jika ditentukan, tetapkan nama rentang yang dialokasikan untuk
rentang IP. Nama rentang harus sesuai dengan
RFC-1035
dan berisi 1-63 karakter. - AUTHORIZED_NETWORKS: Untuk koneksi IP publik, tentukan koneksi dari jaringan resmi yang dapat terhubung ke instance Anda.
Untuk parameter ipv4Enabled
, tetapkan nilai ke true
jika Anda menggunakan alamat IP publik untuk instance atau false
jika instance Anda memiliki
alamat IP pribadi.
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances
Meminta isi JSON:
{ "name": "INSTANCE_ID", "region": "region", "databaseVersion": "database-version", "settings": { "tier": "machine-type", "ipConfiguration": { "ipv4Enabled": false, "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME", "allocatedIpRange": "RANGE_NAME" "authorizedNetworks": [AUTHORIZED_NETWORKS], } } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
Mengonfigurasi IP pribadi untuk instance yang sudah ada
Mengonfigurasi instance Cloud SQL yang sudah ada untuk menggunakan IP pribadi akan menyebabkan instance dimulai ulang sehingga menyebabkan periode nonaktif.
Untuk mengonfigurasi instance yang sudah ada menggunakan IP pribadi:
Konsol
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance tersebut.
- Pilih Koneksi dari menu navigasi Cloud SQL.
- Pada tab Networking, pilih kotak centang Private IP.
Menu drop-down menampilkan jaringan apa saja yang ada di project Anda.
- Pilih jaringan VPC yang ingin Anda gunakan:
- Klik Siapkan koneksi.
- Pada bagian Alokasikan rentang IP, pilih salah satu opsi berikut:
- Pilih satu atau beberapa rentang IP yang ada, atau buat yang baru dari menu dropdown. Dropdown menyertakan rentang yang dialokasikan sebelumnya, jika ada, atau Anda dapat memilih Allocate a new IP range dan memasukkan rentang dan nama baru.
- Gunakan rentang IP yang dialokasikan secara otomatis dalam jaringan Anda.
- Klik Lanjutkan.
- Klik Buat koneksi.
- Pastikan Anda melihat status Private service connection untuk
jaringan
VPC_NETWORK_NAME
telah berhasil dibuat. - Klik Save.
Apabila Anda melihat Private service connection diperlukan:
gcloud
Pastikan project Anda dikonfigurasi untuk akses layanan pribadi.
Perbarui instance Cloud SQL dengan menggunakan
parameter --network
untuk menentukan nama jaringan VPC yang dipilih.
gcloud beta sql instances patch INSTANCE_ID \ --project=PROJECT_ID \ --network=projects/NETWORK_PROJECT_ID/global/networks/VPC_NETWORK_NAME \ --no-assign-ip
REST v1
Buat instance baru dengan alamat IP pribadi:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID
- INSTANCE_ID: ID instance
- VPC_NETWORK_NAME: Tentukan nama jaringan Virtual Private Cloud (VPC) yang ingin Anda gunakan untuk instance ini. Akses layanan pribadi sudah harus dikonfigurasi untuk jaringan tersebut.
- RANGE_NAME: Opsional. Jika ditentukan, tetapkan nama rentang yang dialokasikan untuk
rentang IP. Nama rentang harus sesuai dengan
RFC-1035
dan berisi 1-63 karakter. - AUTHORIZED_NETWORKS: Untuk koneksi IP publik, tentukan koneksi dari jaringan resmi yang dapat terhubung ke instance Anda.
Untuk parameter ipv4Enabled
, tetapkan nilai ke true
jika Anda menggunakan alamat IP publik untuk instance atau false
jika instance Anda memiliki
alamat IP pribadi.
Metode HTTP dan URL:
PATCH https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID
Meminta isi JSON:
{ "settings": { "ipConfiguration": { "ipv4Enabled": false, "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME", "allocatedIpRange": "RANGE_NAME" "authorizedNetworks": [AUTHORIZED_NETWORKS], } } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
REST v1beta4
Buat instance baru dengan alamat IP pribadi:
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID
- INSTANCE_ID: ID instance
- VPC_NETWORK_NAME: Tentukan nama jaringan Virtual Private Cloud (VPC) yang ingin Anda gunakan untuk instance ini. Akses layanan pribadi sudah harus dikonfigurasi untuk jaringan tersebut.
- RANGE_NAME: Opsional. Jika ditentukan, tetapkan nama rentang yang dialokasikan untuk
rentang IP. Nama rentang harus sesuai dengan
RFC-1035
dan berisi 1-63 karakter. - AUTHORIZED_NETWORKS: Untuk koneksi IP publik, tentukan koneksi dari jaringan resmi yang dapat terhubung ke instance Anda.
Untuk parameter ipv4Enabled
, tetapkan nilai ke true
jika Anda menggunakan alamat IP publik untuk instance atau false
jika instance Anda memiliki
alamat IP pribadi.
Metode HTTP dan URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
Meminta isi JSON:
{ "settings": { "ipConfiguration": { "ipv4Enabled": false, "privateNetwork": "projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME", "allocatedIpRange": "RANGE_NAME" "authorizedNetworks": [AUTHORIZED_NETWORKS], } } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
Menghubungkan ke instance menggunakan IP pribadi
Anda menggunakan akses layanan pribadi untuk terhubung ke instance Cloud SQL dari Compute Engine atau instance Google Kubernetes Engine dalam jaringan VPC yang sama (dijelaskan di sini sebagai sources internal) atau dari luar jaringan tersebut (sourceeksternal).
Menghubungkan dari source internal
Untuk terhubung dari source dalam project Google Cloud yang sama sebagai instance Cloud SQL, seperti Proxy Auth Cloud SQL yang berjalan pada resource Compute Engine, resource tersebut harus berada di jaringan VPC yang sama dengan tempat akses layanan pribadi telah dibuat untuk instance Cloud SQL.
Untuk terhubung dari source serverless, sepertiLingkungan standar App Engine, Cloud Run, atau Cloud Functions, aplikasi atau fungsi Anda terhubung secara langsung ke instance melalui Akses VPC Serverless tanpa Proxy Auth Cloud SQL.
Menghubungkan dari source eksternal
Jika jaringan eksternal (misalnya, jaringan lokal atau jaringan VPC) terhubung ke jaringan VPC yang terhubung dengan instance Cloud SQL Anda, Anda dapat menggunakan Cloud VPN atau Cloud Interconnect untuk terhubung ke instance dari klien di jaringan eksternal.
Untuk mengizinkan koneksi dari jaringan eksternal, lakukan hal berikut:
- Pastikan jaringan VPC Anda terhubung ke jaringan eksternal menggunakan tunnel Cloud VPN atau lampiran VLAN untuk Dedicated Interconnect atau Partner Interconnect.
- Pastikan sesi Border Gateway Protocol (BGP) pada
Cloud Routers yang mengelola tunnel Cloud VPN dan
lampiran Cloud Interconnect (VLAN) sudah menerima awalan
(tujuan) tertentu dari jaringan lokal Anda.
Rute default (tujuan 0.0.0.0/0) tidak dapat diimpor ke jaringan VPC Cloud SQL karena jaringan tersebut memiliki rute default lokal sendiri. Rute lokal untuk suatu tujuan digunakan meskipun peering Cloud SQL sudah dikonfigurasikan untuk mengimpor rute khusus dari jaringan VPC Anda.
-
Mengidentifikasi koneksi peering yang dihasilkan oleh koneksi layanan
pribadi. Koneksi layanan pribadi mungkin
membuat salah satu atau beberapa koneksi peering berikut ini, namun tidak semuanya berasal dari satu koneksi yang sama
tergantung pada layanan:
cloudsql-mysql-googleapis-com
cloudsql-postgres-googleapis-com
servicenetworking-googleapis-com
- Perbarui semua koneksi peering untuk mengaktifkan Rute kustom ekspor.
- Mengidentifikasi penggunaan rentang yang dialokasikan oleh koneksi layanan pribadi.
- Buat pemberitahuan rute khusus Cloud Router untuk rentang yang dialokasikan pada Cloud Router yang mengelola sesi BGP untuk tunnel Cloud VPN Anda atau lampiran Cloud Interconnect (VLAN)
Hubungkan dari Cloud Shell
Cloud Shell tidak mendukung koneksi ke instance Cloud SQL yang hanya memiliki alamat IP pribadi.
Menghubungkan dari alamat IP non-RFC 1918
RFC 1918 menentukan alamat IP yang ditetapkan untuk digunakan secara internal (yaitu, dalam organisasi) dan tidak akan dirutekan di internet. Secara khusus, yaitu:
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
Koneksi ke instance Cloud SQL yang menggunakan alamat IP pribadi akan otomatis diizinkan untuk rentang alamat RFC 1918. Dengan cara ini, semua klien pribadi dapat mengakses database tanpa melalui proxy.
Untuk terhubung dari alamat IP non-RFC 1918, Anda harus menetapkan otorisasi IP per instance untuk mengizinkan traffic dari rentang alamat IP non-RFC 1918.
Misalnya, gunakan perintah gcloud
seperti berikut:
gcloud sql instances patch INSTANCE_NAME \ --authorized-networks=192.88.99.0/24,11.0.0.0/24
Secara default, Cloud SQL tidak mempelajari rute subnet non-RFC 1918 dari jaringan VPC Anda. Anda harus memperbarui peering jaringan ke Cloud SQL untuk mengekspor rute non-RFC 1918.
gcloud compute networks peerings update PEERING_CONNECTION \ --network=VPC_NETWORK_NAME \ --export-subnet-routes-with-public-ip \ --project=PROJECT_ID
PEERING_CONNECTION
adalah nama koneksi peering yang dihasilkan oleh koneksi layanan pribadi antara jaringan VPC Anda dan jaringan produsen layanan.VPC_NETWORK_NAME
adalah nama jaringan VPC Anda.PROJECT_ID
adalah ID project jaringan VPC. Jika Anda menggunakan VPC Bersama, maka gunakan ID project host.
Ganti kode berikut:
Untuk meminimalkan kehabisan alamat IP, Anda dapat menggunakan alamat IP publik yang digunakan secara pribadi.
Terhubung dari alamat IP yang digunakan secara pribadi
Jika ingin mengonfigurasi instance dalam rentang alamat IP publik yang digunakan secara pribadi, aktifkan
export-subnet-routes-with-public-ip
pada peering jaringan antara jaringan Anda
dan jaringan Cloud SQL.
gcloud compute networks peerings update PEERING_CONNECTION \ --network=VPC_NETWORK_NAME \ --export-subnet-routes-with-public-ip \ --project=PROJECT_ID
PEERING_CONNECTION
adalah nama koneksi peering yang dihasilkan oleh koneksi layanan pribadi antara jaringan VPC Anda dan jaringan produsen layanan. Untuk mengetahui nama koneksi peering tersebut, buka halaman peering jaringan VPC.VPC_NETWORK_NAME
adalah nama jaringan VPC Anda.PROJECT_ID
adalah ID project jaringan VPC. Jika Anda menggunakan VPC Bersama, maka gunakan ID project host.
Ganti kode berikut:
Menghubungkan ke instance yang dikonfigurasi dengan alamat IP publik yang digunakan secara pribadi
Jika instance Anda dikonfigurasi dalam rentang alamat IP publik yang digunakan secara pribadi
dan Anda ingin menghubungkannya,
maka aktifkan import-subnet-routes-with-public-ip
pada peering jaringan
antara jaringan Anda dan jaringan Cloud SQL.
gcloud compute networks peerings update PEERING_CONNECTION \ --network=VPC_NETWORK_NAME \ --import-subnet-routes-with-public-ip \ --project=PROJECT_ID
PEERING_CONNECTION
adalah nama koneksi peering yang dihasilkan oleh koneksi layanan pribadi antara jaringan VPC Anda dan jaringan produsen layanan. Untuk mengetahui nama koneksi peering tersebut, buka halaman peering jaringan VPC.VPC_NETWORK_NAME
adalah nama jaringan VPC Anda.PROJECT_ID
adalah ID project jaringan VPC. Gunakan ID project host jika Anda menggunakan VPC Bersama.
Ganti kode berikut:
Memecahkan masalah
Lihat memecahkan masalah untuk masalah konektivitas yang diketahui, dan juga proses debug masalah koneksi untuk mendapatkan bantuan diagnostik mandiri.
Langkah selanjutnya
- Pelajari lebih lanjut tentang IP pribadi.
- Pelajari lebih lanjut tentang akses layanan pribadi.
- Lihat cara menggunakan Kontrol Layanan VPC untuk menambahkan perimeter layanan.
- Pelajari lebih lanjut tentang cara mengonfigurasi akses layanan pribadi.
- Pelajari lebih lanjut tentang cara mengonfigurasi akses layanan pribadi untuk Cloud SQL.
- Pelajari lebih lanjut tentang Cloud VPN.
- Pelajari jaringan VPC lebih lanjut.
- Pelajari Peering Jaringan VPC lebih lanjut.
- Pelajari lebih lanjut tentang VPC Bersama.