Mengonfigurasi IP publik

Halaman ini menjelaskan cara mengonfigurasi konektivitas IP publik untuk instance Cloud SQL.

Pengantar

Anda dapat mengonfigurasi instance Cloud SQL agar memiliki alamat IPv4 publik, dan menerima koneksi dari alamat IP tertentu atau rentang alamat dengan menambahkan alamat resmi ke instance Anda.

Anda tidak dapat menentukan jaringan pribadi (misalnya, 10.xxx) sebagai jaringan resmi.

Alamat IP publik untuk instance PostgreSQL:

  • IPv6: Instance tidak mendukung IPv6.
  • IPv4: Instance memiliki alamat IPv4 statis yang ditetapkan secara otomatis. Terdapat sedikit biaya untuk alamat IP setiap kali instance Anda nonaktif (dinonaktifkan).

Untuk mendapatkan bantuan terkait cara menghubungkan klien administrasi ke instance Anda melalui koneksi IP, lihat Menghubungkan Klien psql menggunakan alamat IP.

Jika Anda mengonfigurasi instance agar dapat menerima koneksi menggunakan alamat IP publiknya, juga mengonfigurasi agar menggunakan SSL untuk menjaga keamanan data Anda. Untuk informasi selengkapnya, lihat Mengonfigurasi SSL untuk Instance.

Untuk mengonfigurasi instance dengan alamat IP yang tidak terekspos ke internet publik, lihat Mengonfigurasi Konektivitas IP Pribadi.

Mengaktifkan IP publik dan menambahkan alamat atau rentang alamat yang diizinkan

Saat Anda mengaktifkan IP publik untuk instance, Cloud SQL akan mengonfigurasi instance dengan alamat IPv4 statis publik. Setelah mengaktifkan IP publik, Anda harus menyiapkan otorisasi untuk koneksi database. Lihat Opsi otorisasi untuk informasi selengkapnya.

Untuk mengaktifkan IP publik dan menambahkan alamat resmi:

Konsol

  1. Di konsol Google Cloud, buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Untuk membuka halaman Ringkasan instance, klik nama instance.
  3. Dari menu navigasi SQL, pilih Koneksi.
  4. Klik tab Networking.
  5. Pilih kotak centang IP Publik.
  6. Klik Tambahkan jaringan.
  7. Atau, pada kolom Nama, masukkan nama untuk jaringan ini.
  8. Pada kolom Network, masukkan alamat IP atau rentang alamat IP yang ingin Anda izinkan untuk koneksi.

    Gunakan notasi CIDR.

  9. Klik Done.
  10. Klik Save.

gcloud

  1. Tambahkan alamat IPv4 ke instance, jika Anda belum melakukannya:
    gcloud sql instances patch INSTANCE_NAME\
    --assign-ip
  2. Tampilkan semua alamat resmi yang ada dengan menjelaskan instance:
    gcloud sql instances describe INSTANCE_NAME

    Cari entri authorizedNetwork di bagian ipConfiguration, dan catat setiap alamat otoritas yang ingin Anda simpan.

  3. Perbarui daftar jaringan resmi, termasuk semua alamat yang ingin Anda sertakan.
    gcloud sql instances patch INSTANCE_NAME \
    --authorized-networks=IP_ADDR1,IP_ADDR2...

    Gunakan notasi CIDR.

  4. Konfirmasi perubahan Anda:
    gcloud sql instances describe INSTANCE_NAME

REST v1

  1. Tampilkan semua alamat resmi yang ada dengan menjelaskan instance:

    Sebelum menggunakan salah satu data permintaan, buat penggantian berikut:

    • project-id: ID project
    • instance-id: ID instance
    • machine-type Jenis mesin instance
    • zone Zona instance

    Metode HTTP dan URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id?fields=settings

    Untuk mengirim permintaan, perluas salah satu opsi berikut:

    Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

  2. Update instance, termasuk semua alamat yang ingin Anda tetapkan pada instance:

    Sebelum menggunakan salah satu data permintaan, buat penggantian berikut:

    • project-id: ID project
    • instance-id: ID instance
    • network_range_1 Rentang atau alamat IP yang diotorisasi
    • network_range_2 Rentang atau alamat IP resmi lainnya

    Metode HTTP dan URL:

    PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

    Meminta isi JSON:

    {
      "settings":
      {
        "ipConfiguration":
        {
          "authorizedNetworks":
            [{"value": "network_range_1"}, {"value": "network_range_2"}]
        }
      }
    }
    

    Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

    Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

    Gunakan notasi CIDR.

  3. Konfirmasi perubahan Anda:

    Sebelum menggunakan salah satu data permintaan, buat penggantian berikut:

    • project-id: ID project
    • instance-id: ID instance
    • ip-address1: Bentuk CIDR alamat IP pertama
    • ip-address-name1: Nama alamat IP pertama
    • ip-address2: Bentuk CIDR alamat IP kedua
    • ip-address-name2: Nama alamat IP kedua
    • machine-type Jenis mesin instance
    • zone Zona instance

    Metode HTTP dan URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id?fields=settings

    Untuk mengirim permintaan, perluas salah satu opsi berikut:

    Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

Terraform

Untuk mengaktifkan IP publik dan menambahkan alamat atau rentang alamat yang diizinkan, gunakan resource Terraform

resource "google_sql_database_instance" "postgres_public_ip_instance_name" {
  database_version = "POSTGRES_14"
  name             = "postgres-public-ip-instance-name"
  region           = "asia-southeast2"
  settings {
    availability_type = "ZONAL"
    ip_configuration {
      # Add optional authorized networks
      # Update to match the customer's networks
      authorized_networks {
        name  = "test-net-3"
        value = "203.0.113.0/24"
      }
      # Enable public IP
      ipv4_enabled = true
    }
    tier = "db-custom-2-7680"
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

Menerapkan perubahan

Untuk menerapkan konfigurasi Terraform di project Google Cloud, selesaikan langkah-langkah di bagian berikut.

Menyiapkan Cloud Shell

  1. Luncurkan Cloud Shell.
  2. 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).

  1. Di Cloud Shell, buat direktori dan file baru di dalam direktori tersebut. Nama file harus memiliki ekstensi .tf—misalnya main.tf. Dalam tutorial ini, file ini disebut sebagai main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. 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.

  3. Tinjau dan ubah contoh parameter untuk diterapkan pada lingkungan Anda.
  4. Simpan perubahan Anda.
  5. 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

  1. Tinjau konfigurasi dan pastikan resource yang akan dibuat atau diupdate oleh Terraform sesuai yang Anda inginkan:
    terraform plan

    Koreksi konfigurasi jika diperlukan.

  2. Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan yes pada prompt:
    terraform apply

    Tunggu hingga Terraform menampilkan pesan "Apply complete!".

  3. 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:

  1. Untuk menonaktifkan perlindungan penghapusan, di file konfigurasi Terraform Anda, tetapkan argumen deletion_protection ke false.
    deletion_protection =  "false"
  2. Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan yes pada prompt:
    terraform apply
  1. Hapus resource yang sebelumnya diterapkan dengan konfigurasi Terraform Anda dengan menjalankan perintah dan masukkan yes pada prompt berikut ini:

    terraform destroy

REST v1beta4

  1. Tampilkan semua alamat resmi yang ada dengan menjelaskan instance:

    Sebelum menggunakan salah satu data permintaan, buat penggantian berikut:

    • project-id: ID project
    • instance-id: ID instance
    • machine-type Jenis mesin instance
    • zone Zona instance

    Metode HTTP dan URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=settings

    Untuk mengirim permintaan, perluas salah satu opsi berikut:

    Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

  2. Update instance, termasuk semua alamat yang ingin Anda tetapkan pada instance:

    Sebelum menggunakan salah satu data permintaan, buat penggantian berikut:

    • project-id: ID project
    • instance-id: ID instance
    • network_range_1 Rentang atau alamat IP yang diotorisasi
    • network_range_2 Rentang atau alamat IP resmi lainnya

    Metode HTTP dan URL:

    PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

    Meminta isi JSON:

    {
      "settings":
      {
        "ipConfiguration":
        {
          "authorizedNetworks":
            [{"value": "network_range_1"}, {"value": "network_range_2"}]
        }
      }
    }
    

    Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

    Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

    Gunakan notasi CIDR.

  3. Konfirmasi perubahan Anda:

    Sebelum menggunakan salah satu data permintaan, buat penggantian berikut:

    • project-id: ID project
    • instance-id: ID instance
    • ip-address1: Bentuk CIDR alamat IP pertama
    • ip-address-name1: Nama alamat IP pertama
    • ip-address2: Bentuk CIDR alamat IP kedua
    • ip-address-name2: Nama alamat IP kedua
    • machine-type Jenis mesin instance
    • zone Zona instance

    Metode HTTP dan URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=settings

    Untuk mengirim permintaan, perluas salah satu opsi berikut:

    Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

Menghapus alamat atau rentang alamat IP resmi

Untuk menghapus alamat resmi:

Konsol

  1. Di konsol Google Cloud, buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Untuk membuka halaman Ringkasan instance, klik nama instance.
  3. Pilih Koneksi dari menu navigasi SQL.
  4. Klik ikon hapus Hapus. untuk alamat yang ingin Anda hapus.
  5. Klik Simpan untuk memperbarui instance.

gcloud

  1. Tampilkan semua alamat otoritas yang ada dengan menjelaskan instance:
    gcloud sql instances describe INSTANCE_NAME

    Cari entri authorizedNetwork di bagian ipConfiguration, dan catat setiap alamat otoritas yang ingin Anda simpan.

  2. Perbarui daftar jaringan resmi, dengan meninggalkan semua alamat yang ingin Anda hapus.
    gcloud sql instances patch INSTANCE_NAME \
    --authorized-networks=IP_ADDR1,IP_ADDR2...
  3. Konfirmasi perubahan Anda:
    gcloud sql instances describe INSTANCE_NAME

REST v1

  1. Tampilkan semua alamat resmi yang ada dengan menjelaskan instance:

    Sebelum menggunakan salah satu data permintaan, buat penggantian berikut:

    • project-id: ID project
    • instance-id: ID instance
    • ip-address1: Bentuk CIDR alamat IP pertama
    • ip-address-name1: Nama alamat IP pertama
    • ip-address2: Bentuk CIDR alamat IP kedua
    • ip-address-name2: Nama alamat IP kedua
    • machine-type Jenis mesin instance
    • zone Zona instance

    Metode HTTP dan URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id?fields=settings

    Untuk mengirim permintaan, perluas salah satu opsi berikut:

    Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

  2. Update instance, dengan menyertakan semua alamat yang ingin Anda simpan dan meninggalkan alamat apa pun yang ingin dihapus:

    Sebelum menggunakan salah satu data permintaan, buat penggantian berikut:

    • project-id: ID project
    • instance-id: ID instance
    • network_range_1 Alamat IP atau rentang jaringan resmi yang akan dihapus

    Metode HTTP dan URL:

    PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

    Meminta isi JSON:

    {
      "settings":
      {
        "ipConfiguration":
        {
          "authorizedNetworks":
            [{"value": "network_range_1"}]
        }
      }
    }
    
    

    Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

    Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

  3. Konfirmasi perubahan Anda:

    Sebelum menggunakan salah satu data permintaan, buat penggantian berikut:

    • project-id: ID project
    • instance-id: ID instance
    • ip-address: Bentuk CIDR alamat IP
    • ip-address-name: Nama alamat IP
    • machine-type Jenis mesin instance
    • zone Zona instance

    Metode HTTP dan URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id?fields=settings

    Untuk mengirim permintaan, perluas salah satu opsi berikut:

    Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

REST v1beta4

  1. Tampilkan semua alamat resmi yang ada dengan menjelaskan instance:

    Sebelum menggunakan salah satu data permintaan, buat penggantian berikut:

    • project-id: ID project
    • instance-id: ID instance
    • ip-address1: Bentuk CIDR alamat IP pertama
    • ip-address-name1: Nama alamat IP pertama
    • ip-address2: Bentuk CIDR alamat IP kedua
    • ip-address-name2: Nama alamat IP kedua
    • machine-type Jenis mesin instance
    • zone Zona instance

    Metode HTTP dan URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=settings

    Untuk mengirim permintaan, perluas salah satu opsi berikut:

    Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

  2. Update instance, dengan menyertakan semua alamat yang ingin Anda simpan dan meninggalkan alamat apa pun yang ingin dihapus:

    Sebelum menggunakan salah satu data permintaan, buat penggantian berikut:

    • project-id: ID project
    • instance-id: ID instance
    • network_range_1 Alamat IP atau rentang jaringan resmi yang akan dihapus

    Metode HTTP dan URL:

    PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

    Meminta isi JSON:

    {
      "settings":
      {
        "ipConfiguration":
        {
          "authorizedNetworks":
            [{"value": "network_range_1"}]
        }
      }
    }
    
    

    Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

    Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

  3. Konfirmasi perubahan Anda:

    Sebelum menggunakan salah satu data permintaan, buat penggantian berikut:

    • project-id: ID project
    • instance-id: ID instance
    • ip-address: Bentuk CIDR alamat IP
    • ip-address-name: Nama alamat IP
    • machine-type Jenis mesin instance
    • zone Zona instance

    Metode HTTP dan URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=settings

    Untuk mengirim permintaan, perluas salah satu opsi berikut:

    Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

Mengonfigurasi instance untuk menolak semua koneksi IP publik

Mengonfigurasi instance untuk menolak semua koneksi IP publik:

Konsol

  1. Di konsol Google Cloud, buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Untuk membuka halaman Ringkasan instance, klik nama instance.
  3. Pilih Koneksi dari menu navigasi SQL.
  4. Klik ikon hapus Hapus. untuk semua alamat resmi.
  5. Klik Simpan untuk memperbarui instance.

gcloud

  1. Hapus daftar alamat resmi:
    gcloud sql instances patch INSTANCE_NAME \
    --clear-authorized-networks
  2. Konfirmasi perubahan Anda:
    gcloud sql instances describe INSTANCE_NAME

REST v1

  1. Tampilkan semua alamat resmi yang ada dengan menjelaskan instance:

    Sebelum menggunakan salah satu data permintaan, buat penggantian berikut:

    • project-id: ID project
    • instance-id: ID instance
    • ip-address1: Bentuk CIDR alamat IP pertama
    • ip-address-name1: Nama alamat IP pertama
    • ip-address2: Bentuk CIDR alamat IP kedua
    • ip-address-name2: Nama alamat IP kedua
    • machine-type Jenis mesin instance
    • zone Zona instance

    Metode HTTP dan URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id?fields=settings

    Untuk mengirim permintaan, perluas salah satu opsi berikut:

    Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

  2. Perbarui instance dengan daftar alamat kosong:

    Sebelum menggunakan salah satu data permintaan, buat penggantian berikut:

    • project-id: ID project
    • instance-id: ID instance

    Metode HTTP dan URL:

    PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

    Meminta isi JSON:

    {
      "settings":
      {
        "ipConfiguration":
        {
          "authorizedNetworks": []
        }
      }
    }
    

    Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

    Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

  3. Konfirmasi perubahan Anda:

    Sebelum menggunakan salah satu data permintaan, buat penggantian berikut:

    • project-id: ID project
    • instance-id: ID instance
    • machine-type Jenis mesin instance
    • zone Zona instance

    Metode HTTP dan URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id?fields=settings

    Untuk mengirim permintaan, perluas salah satu opsi berikut:

    Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

REST v1beta4

  1. Tampilkan semua alamat resmi yang ada dengan menjelaskan instance:

    Sebelum menggunakan salah satu data permintaan, buat penggantian berikut:

    • project-id: ID project
    • instance-id: ID instance
    • ip-address1: Bentuk CIDR alamat IP pertama
    • ip-address-name1: Nama alamat IP pertama
    • ip-address2: Bentuk CIDR alamat IP kedua
    • ip-address-name2: Nama alamat IP kedua
    • machine-type Jenis mesin instance
    • zone Zona instance

    Metode HTTP dan URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=settings

    Untuk mengirim permintaan, perluas salah satu opsi berikut:

    Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

  2. Perbarui instance dengan daftar alamat kosong:

    Sebelum menggunakan salah satu data permintaan, buat penggantian berikut:

    • project-id: ID project
    • instance-id: ID instance

    Metode HTTP dan URL:

    PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

    Meminta isi JSON:

    {
      "settings":
      {
        "ipConfiguration":
        {
          "authorizedNetworks": []
        }
      }
    }
    

    Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

    Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

  3. Konfirmasi perubahan Anda:

    Sebelum menggunakan salah satu data permintaan, buat penggantian berikut:

    • project-id: ID project
    • instance-id: ID instance
    • machine-type Jenis mesin instance
    • zone Zona instance

    Metode HTTP dan URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=settings

    Untuk mengirim permintaan, perluas salah satu opsi berikut:

    Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

Menonaktifkan IP publik

Anda dapat menonaktifkan IP publik, hanya jika instance Anda juga dikonfigurasi untuk menggunakan IP Pribadi. Untuk mengaktifkan IP pribadi, lihat Mengonfigurasi instance yang ada untuk menggunakan IP pribadi.

Untuk menonaktifkan IP publik:

Konsol

  1. Di konsol Google Cloud, buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Untuk membuka halaman Ringkasan instance, klik nama instance.
  3. Pilih Koneksi dari menu navigasi SQL.
  4. Hapus centang pada kotak IP Publik.
  5. Klik Simpan untuk memperbarui instance.

gcloud

  1. Update instance:
    gcloud sql instances patch INSTANCE_NAME \
    --no-assign-ip
  2. Konfirmasi perubahan Anda:
    gcloud sql instances describe INSTANCE_NAME

REST v1

  1. Tampilkan semua alamat resmi yang ada dengan menjelaskan instance:

    Sebelum menggunakan salah satu data permintaan, buat penggantian berikut:

    • project-id: ID project
    • instance-id: ID instance
    • ip-address1: Bentuk CIDR alamat IP pertama
    • ip-address-name1: Nama alamat IP pertama
    • ip-address2: Bentuk CIDR alamat IP kedua
    • ip-address-name2: Nama alamat IP kedua
    • machine-type Jenis mesin instance
    • zone Zona instance

    Metode HTTP dan URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id?fields=settings

    Untuk mengirim permintaan, perluas salah satu opsi berikut:

    Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

  2. Update instance:

    Sebelum menggunakan salah satu data permintaan, buat 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 menggunakan alamat IP publik untuk instance atau false jika instance Anda memiliki alamat IP pribadi.

    Apabila Anda menetapkan parameter enablePrivatePathForGoogleCloudServices ke true, maka Anda mengizinkan layanan Google Cloud lainnya seperti BigQuery untuk mengakses data di Cloud SQL dan membuat kueri terhadap data ini melalui koneksi IP pribadi. Dengan menetapkan parameter ini ke false, layanan Google Cloud lainnya tidak dapat mengakses data di Cloud SQL melalui koneksi 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],
          
          "enablePrivatePathForGoogleCloudServices": true
          
        }
      }
    }
    

    Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

    Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

  3. Konfirmasi perubahan Anda:

    Sebelum menggunakan salah satu data permintaan, buat penggantian berikut:

    • project-id: ID project
    • instance-id: ID instance
    • machine-type Jenis mesin instance
    • zone Zona instance

    Metode HTTP dan URL:

    GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id?fields=settings

    Untuk mengirim permintaan, perluas salah satu opsi berikut:

    Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

REST v1beta4

  1. Tampilkan semua alamat resmi yang ada dengan menjelaskan instance:

    Sebelum menggunakan salah satu data permintaan, buat penggantian berikut:

    • project-id: ID project
    • instance-id: ID instance
    • ip-address1: Bentuk CIDR alamat IP pertama
    • ip-address-name1: Nama alamat IP pertama
    • ip-address2: Bentuk CIDR alamat IP kedua
    • ip-address-name2: Nama alamat IP kedua
    • machine-type Jenis mesin instance
    • zone Zona instance

    Metode HTTP dan URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=settings

    Untuk mengirim permintaan, perluas salah satu opsi berikut:

    Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

  2. Update instance:

    Sebelum menggunakan salah satu data permintaan, buat 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 menggunakan alamat IP publik untuk instance atau false jika instance Anda memiliki alamat IP pribadi.

    Apabila Anda menetapkan parameter enablePrivatePathForGoogleCloudServices ke true, maka Anda mengizinkan layanan Google Cloud lainnya seperti BigQuery untuk mengakses data di Cloud SQL dan membuat kueri terhadap data ini melalui koneksi IP pribadi. Dengan menetapkan parameter ini ke false, layanan Google Cloud lainnya tidak dapat mengakses data di Cloud SQL melalui koneksi 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],
          
          "enablePrivatePathForGoogleCloudServices": true
          
        }
      }
    }
    

    Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

    Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

  3. Konfirmasi perubahan Anda:

    Sebelum menggunakan salah satu data permintaan, buat penggantian berikut:

    • project-id: ID project
    • instance-id: ID instance
    • machine-type Jenis mesin instance
    • zone Zona instance

    Metode HTTP dan URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id?fields=settings

    Untuk mengirim permintaan, perluas salah satu opsi berikut:

    Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

Memecahkan masalah

Masalah Pemecahan masalah
Aborted connection. Masalahnya mungkin:
  • Ketidakstabilan jaringan.
  • Tidak ada respons terhadap perintah keep-alive TCP (baik klien maupun server tidak responsif, mungkin kelebihan beban)
  • Masa pakai koneksi mesin database terlampaui dan server mengakhiri koneksi.

Aplikasi harus menoleransi kegagalan jaringan dan mengikuti praktik terbaik, seperti penggabungan koneksi dan percobaan ulang. Sebagian besar penyatuan koneksi akan menangkap error ini jika memungkinkan. Jika tidak, aplikasi akan mencoba ulang atau gagal dengan sendirinya.

Untuk percobaan ulang koneksi, sebaiknya gunakan metode berikut:

  1. Backoff eksponensial. Tingkatkan interval waktu antara setiap percobaan ulang, secara eksponensial.
  2. Tambahkan juga backoff acak.

Menggabungkan metode ini membantu mengurangi throttling.

Certificate verify failed.

Masa berlaku sertifikat klien telah berakhir atau jalur ke sertifikat salah.

Buat ulang sertifikat dengan membuatnya lagi.

FATAL: database 'user' does not exist. gcloud sql connect --user hanya berfungsi dengan pengguna postgres default.

Terhubung dengan pengguna default, lalu ubah pengguna.

Anda ingin mengetahui siapa yang terhubung. Login ke database dan jalankan perintah berikut:

SELECT datname,
usename,
application_name as appname,
client_addr,
state,
now() - backend_start as conn_age,
now() - state_change as last_activity_age
FROM pg_stat_activity
WHERE backend_type = 'client backend'
ORDER BY 6 DESC
LIMIT 20
   

Hostname/IP does not match certificate's altnames: Host: localhost. is not in the cert's altnames.

Alamat host tidak cocok dengan alamat dalam nama alternatif sertifikat server.

Jika Anda menggunakan Node.js dengan verify-full atau yang setara, gunakan nama DNS untuk parameter servername. Nama DNS dapat ditemukan di sertifikat server menggunakan openssl. Misalnya, openssl x509 -in server-cert.pem -noout -text |grep 'DNS:'.

 ssl: {
  rejectUnauthorized: true,
  ca: fs.readFileSync("/path/to/server/CA"),
  servername: 'N-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx.us-central1.sql.goog'
}

Langkah selanjutnya