Mengonfigurasi Penggabungan Koneksi Terkelola

Halaman ini menjelaskan cara mengaktifkan, mengonfigurasi, dan memantau Managed Connection Pooling di instance Cloud SQL Anda.

Penggabungan Koneksi Terkelola memungkinkan Anda menskalakan workload dengan mengoptimalkan pemanfaatan resource dan latensi koneksi untuk instance menggunakan penggabungan. Untuk informasi mendetail tentang Managed Connection Pooling dan cara menggunakannya untuk instance Anda, lihat Ringkasan Managed Connection Pooling.

Sebelum memulai

Mengaktifkan Penggabungan Koneksi Terkelola

Anda dapat mengaktifkan Managed Connection Pooling untuk instance pada saat pembuatan, atau mengedit instance yang ada untuk mengaktifkannya.

Mengaktifkan Managed Connection Pooling untuk instance baru

Untuk membuat instance baru dengan Managed Connection Pooling yang diaktifkan, lihat Membuat instance. Anda dapat mengaktifkan Penggabungan Koneksi Terkelola untuk instance baru menggunakan gcloud CLI atau Cloud SQL API saja.

Mengaktifkan Managed Connection Pooling untuk instance yang ada

Untuk mengaktifkan Managed Connection Pooling untuk instance yang sudah ada, lakukan hal berikut:

Konsol

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

    Buka Instance Cloud SQL

  2. Temukan instance yang ingin Anda aktifkan Managed Connection Pooling-nya. Untuk membuka halaman Overview instance, klik nama instance.

  3. Klik Edit.

  4. Di bagian Customize your instance, luaskan Connections.

  5. Untuk mengaktifkan Managed Connection Pooling, centang kotak untuk Enable Managed Connection Pool.

  6. Klik Simpan.

gcloud

Gunakan perintah gcloud sql instances untuk mengaktifkan Managed Connection Pooling.

  gcloud sql instances patch INSTANCE_NAME \
  --enable-connection-pooling

Ganti kode berikut:

  • INSTANCE_NAME: nama instance Cloud SQL.

REST v1

Gunakan perintah berikut dan tetapkan connectionPoolingEnabled:

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: project ID
  • INSTANCE_ID: ID instance

Metode HTTP dan URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID

Meminta isi JSON:

{
  "settings": {
    "connectionPoolConfig": {
      "connectionPoolingEnabled": true
    }
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

Gunakan perintah berikut dan tetapkan connectionPoolingEnabled:

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: project ID
  • 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": {
    "connectionPoolConfig": {
      "connectionPoolingEnabled": true
    }
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON yang mirip seperti berikut:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Terraform

Gunakan resource Terraform berikut:

resource "google_sql_database_instance" "postgres_managed_connection_pooling_enable" {
  name                = "postgres-instance-managed-connection-pooling-enable"
  region              = "us-central1"
  database_version    = "POSTGRES_16"
  deletion_protection = false

  settings {
    tier    = "db-perf-optimized-N-2"
    edition = "ENTERPRISE_PLUS"
    connection_pool_config {
      connection_pooling_enabled = true # Set to true here
    }
  }
}

Mengubah Managed Connection Pooling untuk instance

Setelah mengaktifkan Managed Connection Pooling, Anda dapat menyesuaikan Managed Connection Pooling untuk memenuhi kebutuhan instance menggunakan opsi konfigurasi lanjutan. Opsi konfigurasi ini disebut flag pool Managed Connection Pooling. Konfigurasi yang ditambahkan ke Managed Connection Pooling diterapkan ke semua penggabung koneksi yang digunakan oleh instance. Untuk informasi selengkapnya tentang opsi konfigurasi lanjutan, nilai default, dan rentangnya, lihat Opsi konfigurasi lanjutan.

Untuk mengubah opsi konfigurasi Managed Connection Pooling lanjutan untuk instance, lakukan hal berikut:

Konsol

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

    Buka Instance Cloud SQL

  2. Temukan instance yang ingin Anda aktifkan Managed Connection Pooling-nya. Untuk membuka halaman Overview instance, klik nama instance.

  3. Klik Edit.

  4. Di bagian Customize your instance, luaskan Connections.

  5. Di bagian Managed connection pool, luaskan Advanced pooling options.

    Ubah opsi penggabungan lanjutan yang ingin Anda perbarui.

  6. Klik Simpan.

gcloud

Gunakan perintah gcloud sql instances untuk mengubah opsi konfigurasi.

  gcloud sql instances patch INSTANCE_NAME \
  --connection-pool-flags=CONFIGURATION_NAME=CONFIGURATION_VALUE

Ganti kode berikut:

  • INSTANCE_NAME: nama instance Cloud SQL.
  • CONFIGURATION_NAME: nama opsi konfigurasi. Untuk mengetahui daftar semua opsi konfigurasi lanjutan, lihat Opsi konfigurasi lanjutan.
  • CONFIGURATION_VALUE: nilai baru untuk opsi konfigurasi yang dipilih.

REST v1

Untuk mengubah Managed Connection Pooling Konfigurasi lanjutan, gunakan perintah berikut dan tetapkan ConnectionPoolConfig:

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: project ID
  • INSTANCE_ID: ID instance

Metode HTTP dan URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID

Meminta isi JSON:

{
  "settings": {
    "connectionPoolConfig": {
      "flags":
      [
        {
          "name": "CONFIGURATION_NAME",
          "value":"CONFIGURATION_VALUE"
        }
      ]
    }
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

Untuk mengubah Managed Connection Pooling Konfigurasi lanjutan, gunakan perintah berikut dan tetapkan ConnectionPoolConfig:

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: project ID
  • 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": {
    "connectionPoolConfig": {
      "flags":
      [
        {
          "name": "CONFIGURATION_NAME",
          "value":"CONFIGURATION_VALUE"
        }
      ]
    }
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON yang mirip seperti berikut:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Terraform

Untuk mengubah Managed Connection Pooling Konfigurasi lanjutan, gunakan resource Terraform berikut:

resource "google_sql_database_instance" "postgres_managed_connection_pooling_modify" {
  name                = "postgres-instance-managed-connection-pooling-modify"
  region              = "us-central1"
  database_version    = "POSTGRES_16"
  deletion_protection = false

  settings {
    tier    = "db-perf-optimized-N-2"
    edition = "ENTERPRISE_PLUS"
    connection_pool_config {
      connection_pooling_enabled = true
      flags {
        name  = "max_pool_size" # Modify the value of an existing flag
        value = "10"
      }
    }
  }
}

Menonaktifkan Penggabungan Koneksi Terkelola untuk instance

Anda dapat menonaktifkan Managed Connection Pooling untuk instance yang ada menggunakan Google Cloud konsol, gcloud CLI, atau Cloud SQL API.

Untuk menonaktifkan Managed Connection Pooling untuk instance, lakukan hal berikut:

Konsol

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

    Buka Instance Cloud SQL

  2. Temukan instance yang ingin Anda nonaktifkan Managed Connection Pooling-nya. Untuk membuka halaman Overview instance, klik nama instance.

  3. Klik Edit.

  4. Di bagian Customize your instance, luaskan Connections.

  5. Untuk menonaktifkan Managed Connection Pooling, hapus centang pada kotak Enable Managed Connection Pool.

  6. Klik Simpan.

gcloud

Gunakan perintah gcloud sql instances untuk menonaktifkan Managed Connection Pooling.

  gcloud sql instances patch INSTANCE_NAME \
  --no-enable-connection-pooling

Ganti kode berikut:

  • PROJECT_ID: nama instance Cloud SQL.

REST v1

Untuk menonaktifkan Managed Connection Pooling untuk instance, gunakan perintah berikut dan tetapkan connectionPoolingEnabled:

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: project ID
  • INSTANCE_ID: ID instance

Metode HTTP dan URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID

Meminta isi JSON:

{
  "settings": {
    "connectionPoolConfig": {
      "connectionPoolingEnabled": false
    }
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

Untuk menonaktifkan Managed Connection Pooling untuk instance, gunakan perintah berikut dan tetapkan connectionPoolingEnabled:

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: project ID
  • 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": {
    "connectionPoolConfig": {
      "connectionPoolingEnabled": false
    }
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON yang mirip seperti berikut:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Terraform

Untuk menonaktifkan Managed Connection Pooling untuk instance, gunakan resource Terraform berikut:

resource "google_sql_database_instance" "postgres_managed_connection_pooling_disable" {
  name                = "postgres-instance-managed-connection-pooling-disable"
  region              = "us-central1"
  database_version    = "POSTGRES_16"
  deletion_protection = false

  settings {
    tier    = "db-perf-optimized-N-2"
    edition = "ENTERPRISE_PLUS"
    connection_pool_config {
      # Set to false to disable Managed Connection Pooling. You can also remove the block entirely.
      connection_pooling_enabled = false
    }
  }
}

Melihat status Managed Connection Pooling untuk instance

Anda dapat melihat status Managed Connection Pooling untuk instance menggunakan Google Cloud konsol, gcloud CLI, atau Cloud SQL API.

Untuk melihat status Managed Connection Pooling untuk instance edisi Cloud SQL Enterprise Plus, lakukan hal berikut:

Konsol

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

    Buka Instance Cloud SQL

  2. Temukan instance yang ingin Anda lihat status Managed Connection Pooling-nya. Untuk membuka halaman Overview instance, klik nama instance.

    Bagian Koneksi menunjukkan apakah Managed Connection Pooling diaktifkan atau dinonaktifkan.

gcloud

Gunakan perintah gcloud sql instances describe untuk melihat status Managed Connection Pooling untuk instance:

  gcloud sql instances describe INSTANCE_NAME
  --format="value(settings.connectionPoolConfig.connectionPoolingEnabled)"

Ganti kode berikut:

  • PROJECT_ID: nama instance Cloud SQL.

    Jika Managed Connection Pooling diaktifkan, respons berikut akan ditampilkan:

    connectionPoolingEnabled: true

REST v1

Untuk melihat status Managed Connection Pooling untuk instance Cloud SQL Anda, gunakan perintah berikut dan cari connectionPoolingEnabled:

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

Metode HTTP dan URL:

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME

Untuk mengirim permintaan, perluas salah satu opsi berikut:

Anda akan menerima respons JSON seperti berikut:

{
  "kind": "sql#instance",
  "state": "RUNNABLE",
  "databaseVersion": "POSTGRES_13",
  "settings": {
    "authorizedGaeApplications": [],
    "tier": "db-custom-2-7680",
    "kind": "sql#settings",
    "availabilityType": "REGIONAL",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "activationPolicy": "ALWAYS",
    "ipConfiguration": {
      "authorizedNetworks": [],
      "pscConfig": {
        "allowedConsumerProjects": [
          "ALLOWED_PROJECTS"
        ],
        "pscEnabled": true
      },
      "ipv4Enabled": false
    },
  ...
  "createTime": "2023-06-14T18:48:34.975Z",
  "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE",
  "pscServiceAttachmentLink": "projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_ID",
  "dnsName": "DNS_NAME"
}

REST v1beta4

Untuk melihat status Managed Connection Pooling untuk instance Cloud SQL Anda, gunakan perintah berikut dan cari connectionPoolingEnabled:

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

Metode HTTP dan URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME

Untuk mengirim permintaan, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "kind": "sql#instance",
  "state": "RUNNABLE",
  "databaseVersion": "POSTGRES_13",
  "settings": {
    "authorizedGaeApplications": [],
    "tier": "db-custom-2-7680",
    "kind": "sql#settings",
    "availabilityType": "REGIONAL",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "activationPolicy": "ALWAYS",
    "ipConfiguration": {
      "authorizedNetworks": [],
      "pscConfig": {
        "allowedConsumerProjects": [
          "ALLOWED_PROJECTS"
        ],
        "pscEnabled": true
      },
      "ipv4Enabled": false
    },
  ...
  "createTime": "2023-06-14T18:48:34.975Z",
  "sqlNetworkArchitecture": "NEW_NETWORK_ARCHITECTURE",
  "pscServiceAttachmentLink": "projects/PROJECT_ID/regions/REGION_NAME/serviceAttachments/SERVICE_ATTACHMENT_ID",
  "dnsName": "DNS_NAME"
}

Memantau Penggabungan Koneksi Terkelola

Anda dapat memantau cara Managed Connection Pooling berjalan di instance Cloud SQL menggunakan metrik Managed Connection Pooling Cloud SQL berikut:

Nama metrik Deskripsi
num_pools Jumlah total kumpulan koneksi per database.
client_connection Melacak jumlah koneksi berdasarkan status koneksi klien. Status yang disertakan dalam metrik ini adalah:
  • active: jumlah koneksi aktif per database, termasuk klien tidak aktif yang tidak memiliki permintaan kueri tertunda.
  • waiting: jumlah klien yang menunggu koneksi server per database.
server_connections Melacak jumlah koneksi server berdasarkan status koneksi server. Status yang disertakan dalam metrik ini adalah:
  • active: jumlah koneksi aktif per database.
  • waiting: jumlah koneksi server yang tidak aktif per database.
client_connections_avg_wait_time Rata-rata waktu yang dihabiskan oleh semua klien dalam status menunggu server.

Untuk mengetahui informasi selengkapnya tentang metrik ini, lihat Metrik Cloud SQL. Untuk melihat metrik ini menggunakan konsol Google Cloud , lihat Melihat metrik di halaman ringkasan instance Cloud SQL.

Langkah berikutnya