Dokumen ini menjelaskan cara menyiapkan koneksi IP pribadi ke instance Cloud SQL Anda menggunakan akses layanan pribadi.
Sebelum memulai
Cloud SQL memerlukan akses layanan pribadi untuk setiap jaringan VPC yang digunakan untuk koneksi IP pribadi.
Aktifkan API yang diperlukan
Aktifkan Service Networking API (servicenetworking.googleapis.com)
dan Compute Engine API (compute.googleapis.com) di project
yang menghosting instance Cloud SQL Anda.
Jika Anda menggunakan Jaringan VPC Bersama, Anda juga harus mengaktifkan API ini di project host VPC Bersama.
Anda dapat mengaktifkan API menggunakan perintah berikut:
gcloud services enable servicenetworking.googleapis.com compute.googleapis.com --project=PROJECT_ID
Ganti PROJECT_ID dengan project ID Anda (atau project ID host VPC Bersama).
Jika Service Networking API tidak diaktifkan, saat Anda membuat instance Cloud SQL dengan alamat IP pribadi, operasi akan gagal dengan error SERVICE_NETWORKING_NOT_ENABLED.
Peran dan izin yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk membuat dan mengelola koneksi akses layanan pribadi, minta administrator untuk memberi Anda peran IAM Compute Network Admin (roles/compute.networkAdmin) di project yang menghosting instance Cloud SQL Anda.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran yang telah ditetapkan ini berisi izin yang diperlukan untuk membuat dan mengelola koneksi akses layanan pribadi. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk membuat dan mengelola koneksi akses layanan pribadi:
-
compute.addresses.create -
compute.addresses.list -
compute.globalAddresses.create -
compute.globalAddresses.createInternal -
compute.globalAddresses.list -
compute.networks.list -
compute.networks.use -
servicenetworking.services.addPeering -
serviceusage.services.list
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Jika menggunakan Jaringan VPC Bersama, Anda juga harus memberikan peran Compute Network Admin (roles/compute.networkAdmin) kepada pengguna di project host VPC Bersama.
Mengonfigurasi akses layanan pribadi untuk Cloud SQL
Terdapat dua bagian dalam proses konfigurasi akses layanan pribadi:
Pilih yang ada atau alokasikan rentang alamat IP baru.
Jika Anda membuat instance Cloud SQL di Google Cloud konsol, Anda juga memiliki opsi untuk mengizinkan Google mengalokasikan rentang alamat IP untuk Anda. Dalam kasus ini, Google akan mengalokasikan rentang IP dengan panjang awalan
/24secara otomatis dan menggunakan nama default-ip-range.Jika Anda berencana membuat instance Cloud SQL di beberapa region atau untuk jenis database yang berbeda, Anda harus memiliki rentang alamat IP minimum
/24yang tersedia untuk setiap region atau jenis database. Hal ini mencakup aplikasi lain seperti Filestore atau Memorystore. Untuk region atau jenis database baru, Cloud SQL harus memiliki rentang/24yang kosong.- Buat koneksi Private Service Connect dari jaringan VPC Anda ke jaringan produsen layanan yang mendasarinya.
Untuk mengetahui informasi tentang persyaratan lingkungan jaringan dan aplikasi serta izin IAM yang diperlukan untuk akses layanan pribadi, lihat Persyaratan untuk koneksi IP pribadi.
Mengalokasikan rentang alamat IP
Konsol
-
Di konsol Google Cloud , buka halaman Jaringan VPC.
- Pilih jaringan VPC yang ingin Anda gunakan.
- Pilih tab Private services access.
- Pilih tab Rentang IP yang dialokasikan untuk layanan.
- Klik Alokasikan rentang IP.
- Untuk Nama rentang yang dialokasikan, tentukan
google-managed-services-VPC_NETWORK_NAME, di manaVPC_NETWORK_NAMEadalah nama jaringan VPC yang Anda sambungkan (misalnya,google-managed-services-default). Deskripsi bersifat opsional. - Pilih opsi Kustom, lalu masukkan rentang alamat IP yang akan dialokasikan, dalam notasi CIDR.
- Klik Alokasikan untuk membuat rentang yang dialokasikan.
gcloud
Lakukan salah satu tindakan berikut:
- Untuk menentukan rentang alamat IP dan panjang awalan (subnet mask), gunakan flag
addressesdanprefix-length. Misalnya, untuk mengalokasikan blok CIDR192.168.0.0/16, tentukan192.168.0.0untuk alamat dan16untuk panjang awalan. - Untuk hanya menentukan panjang awalan (subnet mask), gunakan flag
prefix-length. Jika Anda menghilangkan rentang alamat IP, Google Cloud akan otomatis memilih rentang alamat IP yang tidak digunakan di jaringan VPC Anda. Contoh berikut memilih rentang alamat IP yang tidak digunakan dengan panjang awalan bit16.
gcloud compute addresses create google-managed-services-VPC_NETWORK_NAME \ --global \ --purpose=VPC_PEERING \ --addresses=192.168.0.0 \ --prefix-length=16 \ --network=projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME
gcloud compute addresses create google-managed-services-VPC_NETWORK_NAME \ --global \ --purpose=VPC_PEERING \ --prefix-length=16 \ --network=projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME
Ganti VPC_NETWORK_NAME dengan nama jaringan
VPC, seperti my-vpc-network.
Contoh berikut ini mengalokasikan rentang IP yang memungkinkan resource dalam
jaringan VPC my-vpc-network untuk terhubung ke instance
Cloud SQL menggunakan IP pribadi.
gcloud compute addresses create google-managed-services-my-vpc-network \ --global \ --purpose=VPC_PEERING \ --prefix-length=16 \ --network=projects/myprojectid/global/networks/myvpcnetwork \ --project=my-project
Terraform
Untuk mengalokasikan rentang alamat IP, gunakan resource Terraform.
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.tfyang 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
yespada 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
Hapus resource yang sebelumnya diterapkan dengan konfigurasi Terraform Anda dengan menjalankan perintah
berikut dan masukkan yes pada prompt:
terraform destroy
Membuat koneksi pribadi
Konsol
-
Di konsol Google Cloud , buka halaman Jaringan VPC.
- Pilih jaringan VPC yang ingin Anda gunakan.
- Pilih tab Koneksi layanan pribadi.
- Pilih tab Koneksi pribadi ke layanan.
- Klik Buat koneksi untuk membuat koneksi pribadi antara jaringan Anda dan produsen layanan.
- Untuk Alokasi yang ditetapkan, pilih salah satu atau beberapa rentang yang sudah dialokasikan dan tidak digunakan oleh produsen layanan lainnya.
- Klik Hubungkan untuk membuat koneksi.
gcloud
Buat koneksi akses layanan pribadi untuk jaringan VPC di project Anda.
gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --ranges=google-managed-services-VPC_NETWORK_NAME \ --network=VPC_NETWORK_NAME \ --project=PROJECT_ID
Perintah ini memulai operasi instance Cloud SQL yang berjalan lama, dan mengembalikan ID operasi.
Periksa apakah operasi tersebut berhasil.
gcloud services vpc-peerings operations describe \ --name=OPERATION_ID
Anda dapat menentukan lebih dari satu rentang IP yang dialokasikan saat membuat koneksi pribadi. Misalnya, jika rentang sudah habis, Anda dapat menetapkan rentang tambahan yang dialokasikan. Layanan tersebut menggunakan alamat IP dari semua rentang yang tersedia sesuai urutan yang Anda tetapkan.
Terraform
Gunakan resource Terraform untuk membuat koneksi pribadi.
Akun layanan dalam format service-HOST_PROJECT_NUMBER@service-networking. diberikan peran servicenetworking.serviceAgent
saat koneksi pribadi dibuat karena akun tersebut disediakan tepat waktu (JIT).
Jika Anda mengalami error terkait izin compute.globalAddresses.list atau
izin compute.projects.get untuk project, jalankan perintah gcloud berikut:
gcloud projects add-iam-policy-binding HOST_PROJECT_NAME \ --member=serviceAccount:service-HOST_PROJECT_NUMBER@service-networking. \ --role=roles/servicenetworking.serviceAgent
Mengonfigurasi instance untuk IP pribadi menggunakan akses layanan pribadi
Anda dapat mengonfigurasi akses layanan pribadi untuk instance baru dan instance yang ada.
Mengonfigurasi IP pribadi untuk instance baru
Konsol
-
Di konsol Google Cloud , buka halaman Instance Cloud SQL.
- Klik Create instance.
- Di bagian Sesuaikan instance Anda, luaskan Tampilkan opsi konfigurasi.
- Luaskan Connections.
- Pilih Private IP.
- Pilih Private Service Access (PSA).
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 satu atau beberapa rentang IP yang ada, atau buat yang baru dari menu drop-down. Menu drop-down 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 telah dikonfigurasi untuk akses layanan pribadi.
Jalankan perintah gcloud CLI berikut untuk menyiapkan jaringan akses layanan pribadi untuk Cloud SQL:
- Aktifkan API yang diperlukan:
gcloud services enable \ sqladmin.googleapis.com \ compute.googleapis.com \ servicenetworking.googleapis.com \ --project=PROJECT_ID
- Mengalokasikan rentang alamat IP untuk Peering Jaringan VPC:
gcloud compute addresses create google-managed-services-VPC_NETWORK_NAME \ --global \ --purpose=VPC_PEERING \ --prefix-length=16 \ --network=projects/NETWORK_PROJECT_ID/global/networks/VPC_NETWORK_NAME \ --project=PROJECT_ID
- Buat koneksi Peering Jaringan VPC:
gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --ranges=google-managed-services-VPC_NETWORK_NAME \ --network=VPC_NETWORK_NAME \ --project=PROJECT_ID
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
INSTANCE_ID: ID instancePROJECT_ID: Project IDNETWORK_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 sesuai denganRFC-1035dan berisi 1-63 karakter.REGION_NAME: Nama region
--network. Untuk menonaktifkan IP publik, gunakan flag
--no-assign-ip.
Untuk menerapkan penggunaan arsitektur jaringan baru untuk instance, gunakan
flag --enforce-new-sql-network-architecture. Pastikan Anda telah mengalokasikan alamat IP yang cukup. Saat Anda menggunakan penerapan arsitektur jaringan baru sebelum project diupgrade sepenuhnya, Anda mungkin mengalami kegagalan pembuatan instance jika ruang alamat IP yang tersedia tidak mencukupi.
Untuk mengetahui informasi selengkapnya, lihat
Mengupgrade
instance ke arsitektur jaringan baru dan
Mengalokasikan rentang alamat 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 \ --enforce-new-sql-network-architecture
Terraform
Untuk mengonfigurasi IP pribadi bagi instance baru, gunakan resource Terraform berikut:
google_compute_networkgoogle_compute_global_addressgoogle_service_networking_connectiongoogle_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.tfyang 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
yespada 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 proteksi dari penghapusan, di file konfigurasi Terraform Anda, tetapkan
argumen
deletion_protectionkefalse.deletion_protection = "false"
- Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan
memasukkan
yespada prompt:terraform apply
-
Hapus resource yang sebelumnya diterapkan dengan konfigurasi Terraform Anda dengan menjalankan perintah berikut dan memasukkan
yespada 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-1035dan 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.
Anda dapat menggunakan kolom sqlNetworkArchitecture untuk menerapkan penggunaan arsitektur jaringan baru untuk instance saat pembuatan, meskipun project belum diupgrade sepenuhnya.
Untuk mengetahui detail selengkapnya tentang arsitektur jaringan baru dan implikasinya, lihat
Mengupgrade instance ke arsitektur jaringan baru dan Mengalokasikan rentang alamat IP.
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],
}
},
"sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
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-1035dan 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.
Anda dapat menggunakan kolom sqlNetworkArchitecture untuk menerapkan penggunaan arsitektur jaringan baru untuk instance saat pembuatan, meskipun project belum diupgrade sepenuhnya.
Untuk mengetahui detail selengkapnya tentang arsitektur jaringan baru dan implikasinya, lihat
Mengupgrade instance ke arsitektur jaringan baru dan Mengalokasikan rentang alamat IP.
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/sql/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],
}
},
"sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
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.
- Di tab Networking, centang kotak 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 drop-down. Drop-down 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_NAMEtelah berhasil dibuat. - Klik Simpan.
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.
Untuk menerapkan penggunaan arsitektur jaringan baru untuk instance saat Anda menambahkan konfigurasi jaringan IP pribadi, gunakan flag --enforce-new-sql-network-architecture.
Pastikan Anda telah mengalokasikan ruang alamat IP yang cukup dalam rentang IP Anda.
Jika Anda menggunakan penerapan arsitektur jaringan baru sebelum project diupgrade sepenuhnya, Anda mungkin mengalami kegagalan pembuatan instance jika ruang alamat IP yang tersedia tidak mencukupi.
Untuk mengetahui informasi selengkapnya, lihat Mengupgrade instance ke arsitektur jaringan baru dan Mengalokasikan rentang alamat IP.
gcloud beta sql instances patch INSTANCE_ID \ --project=PROJECT_ID \ --network=projects/NETWORK_PROJECT_ID/global/networks/VPC_NETWORK_NAME \ --no-assign-ip \ --enforce-new-sql-network-architecture
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-1035dan 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.
Anda dapat menggunakan kolom sqlNetworkArchitecture untuk menerapkan penggunaan arsitektur jaringan baru untuk instance saat pembuatan, meskipun project belum diupgrade sepenuhnya.
Untuk mengetahui detail selengkapnya tentang arsitektur jaringan baru dan implikasinya, lihat
Mengupgrade instance ke arsitektur jaringan baru dan Mengalokasikan rentang alamat IP.
Metode HTTP dan URL:
PATCH https://sqladmin.googleapis.com/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],
}
},
"sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
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-1035dan 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.
Anda dapat menggunakan kolom sqlNetworkArchitecture untuk menerapkan penggunaan arsitektur jaringan baru untuk instance setelah pembuatan, meskipun project belum sepenuhnya diupgrade.
Untuk mengetahui detail selengkapnya tentang arsitektur jaringan baru dan implikasinya, lihat
Mengupgrade instance ke arsitektur jaringan baru dan Mengalokasikan rentang alamat IP.
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],
}
},
"sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE"
}
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
Mengubah konfigurasi akses layanan pribadi
Anda dapat mengubah rentang alamat IP yang dialokasikan untuk koneksi layanan pribadi tanpa mengubah instance Cloud SQL yang sudah ada. Untuk mengubah alamat IP pribadi dari instance Cloud SQL yang sudah ada, ikuti langkah-langkah ini.
Untuk mengubah rentang alamat IP yang dialokasikan:
Konsol
-
Di konsol Google Cloud , buka halaman Jaringan VPC.
- Pilih jaringan VPC yang ingin Anda gunakan.
- Pilih tab Koneksi layanan pribadi.
- Pilih tab Rentang IP yang dialokasikan untuk layanan.
Pilih nama rentang yang ingin dihapus.
Klik Lepaskan.
Klik Alokasikan rentang IP.
Buat rentang baru dengan nama dan rentang yang sama
Nama tersebut penting karena koneksi pribadi telah ditetapkan menggunakan nama alamat tersebut.
gcloud services vpc-peerings update \ --network=VPC_NETWORK_NAME \ --ranges=ALLOCATED_RANGES \ --service=servicenetworking.googleapis.com \ --force
Mengubah alamat IP pribadi dari instance Cloud SQL yang sudah ada.
Untuk mengubah alamat IP pribadi instance Cloud SQL yang ada, pindahkan instance dari jaringan aslinya ke jaringan VPC sementara. Kemudian, ubah konfigurasi akses layanan pribadi dari jaringan asli instance tersebut dan pindahkan kembali instance Cloud SQL ke jaringan asli.
Untuk berpindah ke jaringan VPC yang berbeda, ikuti semua langkah kecuali langkah terakhir
(memindahkan instance kembali) dalam prosedur berikut. Dalam hal ini,
TEMPORARY_VPC_NETWORK_NAME
adalah jaringan VPC baru. Selain itu,
hapus
koneksi pribadi yang lama.
Diperlukan waktu beberapa hari agar koneksi pribadi yang sudah dihapus dapat hilang dari
konsolGoogle Cloud .
Jika instance Cloud SQL dihosting pada jaringan VPC Bersama,
variabel VPC_NETWORK_NAME
yang digunakan dalam petunjuk berikut harus berupa nama jaringan
VPC project host. Untuk menentukan sebuah jaringan dengan jaringan VPC
Bersama, gunakan URL lengkap dari jaringan
tersebut—misalnya projects/HOST_PROJECT/global/networks/NETWORK_NAME.
Konsol
-
Di konsol Google Cloud , buka halaman VPC networks.
- Buat jaringan VPC sementara.
- Buat alokasi IP di jaringan VPC sementara.
- Buat koneksi pribadi dalam jaringan VPC sementara.
Pindahkan instance Cloud SQL ke jaringan VPC sementara.
gcloud beta sql instances patch INSTANCE_ID \ --project=PROJECT_ID \ --network=projects/PROJECT_ID/global/networks/TEMPORARY_VPC_NETWORK_NAME \ --no-assign-ip
Ubah konfigurasi akses layanan pribadi di jaringan asli untuk menambahkan rentang baru yang dialokasikan atau menghapus rentang yang sudah ada.
Pindahkan kembali instance Cloud SQL ke jaringan VPC asli.
gcloud beta sql instances patch INSTANCE_ID \ --project=PROJECT_ID \ --network=projects/PROJECT_ID/global/networks/ORIGINAL_VPC_NETWORK_NAME \ --no-assign-ip
Menghubungkan ke instance menggunakan alamat IP pribadinya
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 sumber dalam project Google Cloud yang sama dengan instance Cloud SQL Anda, seperti Cloud SQL Auth Proxy 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 sumber serverless, seperti lingkungan standar App Engine, Cloud Run, atau fungsi Cloud Run, aplikasi atau fungsi Anda terhubung langsung ke instance melalui Akses VPC Serverless tanpa Cloud SQL Auth Proxy.
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 Router 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. Bergantung pada layanannya, koneksi Private Service Connect mungkin membuat satu atau beberapa koneksi peering berikut, tetapi tidak harus semuanya:
cloudsql-mysql-googleapis-comcloudsql-postgres-googleapis-comservicenetworking-googleapis-com
- Perbarui semua koneksi peering untuk mengaktifkan Rute kustom ekspor.
- Mengidentifikasi rentang yang dialokasikan yang digunakan oleh koneksi Private Service Connect.
- Konfigurasi mode pemberitahuan kustom 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 menggunakan virtual machine Compute Engine yang dikelola oleh Google Cloud dan berada di luar jaringan VPC Anda. Oleh karena itu, jalur konektivitas tidak ada antara Cloud Shell dan ruang alamat IP pribadi jaringan VPC Anda.
Akibatnya, Cloud Shell tidak mendukung koneksi ke instance Cloud SQL yang hanya memiliki alamat IP pribadi.
Untuk terhubung ke instance Cloud SQL dari jaringan eksternal menggunakan konektivitas IP pribadi, lihat Menghubungkan ke instance Cloud SQL dari luar VPC-nya.
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_CONNECTIONadalah nama koneksi peering yang dihasilkan oleh koneksi Private Service Connect antara jaringan VPC Anda dan jaringan produsen layanan.VPC_NETWORK_NAMEadalah nama jaringan VPC Anda.PROJECT_IDadalah ID project jaringan VPC. Jika Anda menggunakan VPC Bersama, maka gunakan project ID 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_CONNECTIONadalah 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_NAMEadalah nama jaringan VPC Anda.PROJECT_IDadalah ID project jaringan VPC. Jika Anda menggunakan VPC Bersama, gunakan project ID 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
Ganti kode berikut:
PEERING_CONNECTIONadalah nama koneksi peering yang dihasilkan oleh koneksi layanan pribadi antara jaringan VPC Anda dan jaringan produsen layanan. Untuk menemukan nama koneksi peering, buka halaman VPC network peering.VPC_NETWORK_NAMEadalah nama jaringan VPC Anda.PROJECT_IDadalah ID project jaringan VPC. Gunakan project ID host jika Anda menggunakan VPC Bersama.
Menghubungkan menggunakan endpoint tulis
Selain alamat IP pribadi, Anda dapat menggunakan endpoint tulis dalam string koneksi SQL. Endpoint tulis adalah nama domain name service (DNS) global yang otomatis me-resolve ke alamat IP instance utama saat ini. Dengan menggunakan endpoint tulis, Anda dapat menghindari perubahan koneksi aplikasi saat terjadi kegagalan region.
Jika terjadi pengalihan atau peralihan failover replika, endpoint tulis dapat membantu mengelola alamat IP pribadi instance. Jika hal ini terjadi, gunakan endpoint tulis untuk terhubung ke instance yang bertindak sebagai instance utama.
Cara Cloud SQL membuat endpoint tulis
Jika Anda mengaktifkan Cloud DNS API untuk project Google Cloud , dan setelahnya, Anda membuat instance edisi Cloud SQL Enterprise Plus utama, mempromosikan replika untuk instance, atau mengupgrade instance dari edisi Cloud SQL Enterprise, Cloud SQL akan otomatis membuat endpoint tulis dan menetapkannya ke instance.
Untuk mengetahui informasi selengkapnya, lihat Melihat endpoint tulis.
Menetapkan endpoint tulis ke instance
Jika Anda tidak mengaktifkan Cloud DNS API untuk project Google Cloud , lalu Anda membuat, mempromosikan, atau mengupgrade instance, Cloud SQL tidak akan otomatis menetapkan endpoint tulis ke instance.
Agar Cloud SQL membuat endpoint tulis dan menetapkannya ke instance, lihat Membuat endpoint tulis.
Batasan Layanan Terkelola untuk Microsoft Active Directory
Jika region instance utama asli menjadi tidak tersedia dan Layanan Terkelola untuk Microsoft Active Directory diaktifkan, endpoint tulis instance utama yang baru dipromosikan tidak dapat digunakan dengan autentikasi Microsoft AD Terkelola untuk terhubung setelah operasi failover.
Dukungan untuk endpoint tulis edisi Cloud SQL Enterprise Plus di seluruh kepercayaan lintas forest
VM yang digabungkan secara lokal mengandalkan perutean akhiran nama untuk autentikasi. Endpoint tulis instance edisi Cloud SQL Enterprise Plus, yang dikelola oleh Cloud SQL, menggunakan format nama host yang berbeda, misalnya, *.sql-psa.goog.
Jika endpoint tulis yang terkait dengan instance edisi Cloud SQL Enterprise Plus Anda beroperasi dari domain yang terhubung melalui hubungan kepercayaan, format koneksi ini dapat mencegah domain lokal menemukan domain otoritatif untuk Nama Prinsipal Layanan secara otomatis.
Untuk mengatasinya, Anda perlu menambahkan akhiran domain yang dikelola Cloud SQL yang relevan (misalnya, goog atau sql-psa.goog) sebagai akhiran UPN alternatif. Anda harus menambahkan akhiran ini, di tingkat forest, dalam
Active Directory domain terkelola menggunakan akun setupadmin:
- Di Active Directory terkelola, selesaikan langkah-langkah berikut:
- Di jendela Server Manager, pilih Tools. Kemudian, pilih Active Directory Domains and Trusts.
- Di panel, klik kanan Active Directory Domains and Trusts (node root).
- Kemudian, pilih Properties.
- Di tab UPN Suffixes, masukkan akhiran UPN alternatif (misalnya,
sql-psa.goog). - Klik Tambahkan.
- Klik Terapkan.
- Klik Oke.
- Di Active Directory lokal Anda, selesaikan langkah-langkah berikut:
- Di jendela Server Manager, pilih Tools, lalu pilih Active Directory Domains and Trusts.
- Di panel, klik kanan nama domain AD terkelola dan kepercayaan Anda. Ini adalah domain terkelola tertentu yang memiliki kepercayaan terhadap domain lokal Anda.
- Pilih Properties, lalu buka tab Trusts.
- Di bagian Domains trusted by this domain (outgoing trusts) atau Domains that trust this domain (incoming trusts), pilih entri untuk nama domain terkelola Anda, lalu klik Properties.
- Buka tab Name Suffix Routing, lalu klik Refresh.
- Temukan dan pilih akhiran nama yang baru ditambahkan, seperti
sql-psa.googlalu klik Aktifkan. - Klik Terapkan dan OK di semua dialog yang tersisa.
Memecahkan masalah
Lihat memecahkan masalah untuk masalah konektivitas yang diketahui, dan juga proses debug masalah koneksi untuk mendapatkan bantuan diagnostik mandiri.