マネージド接続プーリングを構成する

このページでは、Cloud SQL インスタンスにマネージド接続プールを構成する方法について説明します。

始める前に

  • インスタンスがマネージド接続プールの使用に必要なすべての要件を満たしていることを確認します。
  • gcloud CLI を使用している場合は、gcloud beta コマンドを使用して、gcloud CLI のバージョンが 515.0.0 以降であることを確認します。
  • インスタンスが新しい Cloud SQL ネットワーク アーキテクチャを使用していることを確認します。インスタンスが古いネットワーク アーキテクチャを使用している場合は、新しいネットワーク アーキテクチャにアップグレードします。

インスタンスのマネージド接続プーリングは、インスタンスの作成時に有効にするか、既存のインスタンスを編集して有効にできます。

新しいインスタンスでマネージド接続プールを有効にする

マネージド接続プールを有効にしてインスタンスを作成するには、インスタンスを作成するをご覧ください。インスタンスでマネージド接続プールを有効にするには、gcloud CLI または Cloud SQL API を使用します。

既存のインスタンスでマネージド接続プールを有効にする

既存のインスタンスでマネージド接続プールを有効にするには、Google Cloud コンソール、gcloud CLI、または Cloud SQL API を使用します。マネージド接続プーリングのオプションを変更する前に、マネージド接続プーリングを有効にする必要があります。

コンソール

  1. Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. マネージド接続プールを有効にするインスタンスを見つけます。インスタンスの [概要] ページを開くには、インスタンス名をクリックします。

  3. [編集] をクリックします。

  4. [インスタンスのカスタマイズ] で [接続] を開きます。

  5. マネージド接続プールを有効にするには、[マネージド接続プールを有効にする] チェックボックスをオンにします。

  6. [保存] をクリックします。

gcloud

gcloud beta sql instances コマンドを使用して、マネージド接続プールを有効にします。

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

次のように置き換えます。

  • INSTANCE_NAME: マネージド接続プールを有効にする Cloud SQL インスタンスの名前。

REST v1

既存のインスタンスでマネージド接続プールを有効にするには、次のコマンドを使用して connectionPoolingEnabled を設定します。

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: プロジェクト ID
  • INSTANCE_ID: インスタンス ID

HTTP メソッドと URL:

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

リクエストの本文(JSON):

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

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "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

既存のインスタンスでマネージド接続プールを有効にするには、次のコマンドを使用して connectionPoolingEnabled を設定します。

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: プロジェクト ID
  • INSTANCE_ID: インスタンス ID

HTTP メソッドと URL:

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

リクエストの本文(JSON):

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

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "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"
}

インスタンスのマネージド接続プールを変更する

マネージド接続プーリングを有効にしたら、使用可能な構成オプションを使用してマネージド接続プールをカスタマイズできます。これらの構成オプションは、マネージド接続プーリング プールフラグと呼ばれます。マネージド接続プーリングに追加された構成は、インスタンスで使用されるすべてのプーラに適用されます。使用可能な構成オプション、デフォルト値、範囲の詳細については、使用可能な構成オプションをご覧ください。

インスタンスで使用可能なマネージド接続プールの構成オプションを変更する手順は次のとおりです。

コンソール

  1. Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. マネージド接続プールを有効にするインスタンスを見つけます。インスタンスの [概要] ページを開くには、インスタンス名をクリックします。

  3. [編集] をクリックします。

  4. [インスタンスのカスタマイズ] で [接続] を開きます。

  5. [マネージド接続プール] で、[高度なプーリング オプション] を開きます。

    更新する利用可能なプーリング オプションを変更します。

  6. [保存] をクリックします。

gcloud

構成オプションを変更するには、gcloud beta sql instances コマンドを使用します。

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

次のように置き換えます。

  • INSTANCE_NAME: マネージド接続プールを変更する Cloud SQL インスタンスの名前。
  • CONFIGURATION_NAME: 変更する構成オプションの名前。使用可能なすべての構成オプションのリストについては、使用可能な構成オプションをご覧ください。
  • CONFIGURATION_VALUE: 選択した構成オプションの新しい値。

REST v1

マネージド接続プールの使用可能な構成を変更するには、次のコマンドを使用して ConnectionPoolConfig を設定します。

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: プロジェクト ID
  • INSTANCE_ID: インスタンス ID

HTTP メソッドと URL:

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

リクエストの本文(JSON):

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

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "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

マネージド接続プールの使用可能な構成を変更するには、次のコマンドを使用して ConnectionPoolConfig を設定します。

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: プロジェクト ID
  • INSTANCE_ID: インスタンス ID

HTTP メソッドと URL:

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

リクエストの本文(JSON):

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

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "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"
}

インスタンスでマネージド接続プーリングを無効にする

既存のインスタンスのマネージド接続プールを無効にするには、Google Cloud コンソール、gcloud CLI、または Cloud SQL API を使用します。

インスタンスのマネージド接続プールを無効にするには、次の操作を行います。

コンソール

  1. Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. マネージド接続プールを無効にするインスタンスを見つけます。インスタンスの [概要] ページを開くには、インスタンス名をクリックします。

  3. [編集] をクリックします。

  4. [インスタンスのカスタマイズ] で [接続] を開きます。

  5. マネージド接続プーリングを無効にするには、[マネージド接続プールを有効にする] チェックボックスをオフにします。

  6. [保存] をクリックします。

gcloud

gcloud beta sql instances コマンドを使用して、マネージド接続プールを無効にします。

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

次のように置き換えます。

  • PROJECT_ID: マネージド接続プールを無効にする Cloud SQL インスタンスの名前。

REST v1

インスタンスのマネージド接続プールを無効にするには、次のコマンドを使用して connectionPoolingEnabled を設定します。

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: プロジェクト ID
  • INSTANCE_ID: インスタンス ID

HTTP メソッドと URL:

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

リクエストの本文(JSON):

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

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "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

インスタンスのマネージド接続プールを無効にするには、次のコマンドを使用して connectionPoolingEnabled を設定します。

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: プロジェクト ID
  • INSTANCE_ID: インスタンス ID

HTTP メソッドと URL:

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

リクエストの本文(JSON):

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

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "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"
}

インスタンスのマネージド接続プールのステータスを表示する

インスタンスのマネージド接続プールのステータスは、Google Cloud コンソール、gcloud CLI、または Cloud SQL API を使用して確認できます。

Cloud SQL Enterprise Plus エディション インスタンスのマネージド接続プールのステータスを確認するには、次の操作を行います。

コンソール

  1. Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。

    Cloud SQL の [インスタンス] に移動

  2. マネージド接続プールを無効にするインスタンスを見つけます。インスタンスの [概要] ページを開くには、インスタンス名をクリックします。

    [接続] セクションには、マネージド接続プーリングが有効か無効かが表示されます。

gcloud

  gcloud beta sql instances describe INSTANCE_NAME| 2 connectionPoolingEnabled

次のように置き換えます。

  • PROJECT_ID: マネージド接続プールのステータスを表示する Cloud SQL インスタンスの名前。

    マネージド接続プーリングが有効になっている場合は、次のレスポンスが返されます。

    connectionPoolingEnabled: true

REST v1

Cloud SQL インスタンスのマネージド接続プールのステータスを表示するには、次のコマンドを使用して ConnectPoolingEnabled を探します。

リクエストのデータを使用する前に、次のように置き換えます。

HTTP メソッドと URL:

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

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "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

Cloud SQL インスタンスのマネージド接続プールのステータスを表示するには、次のコマンドを使用して ConnectPoolingEnabled を探します。

リクエストのデータを使用する前に、次のように置き換えます。

HTTP メソッドと URL:

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

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "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"
}

マネージド接続プーリングをモニタリングする

Cloud SQL インスタンスでマネージド接続プーリングがどのように実行されているかをモニタリングするには、次の Cloud SQL マネージド接続プーリング指標を使用します。

指標名 説明
num_pools データベースあたりの接続プールの合計数。
client_connection クライアント接続のステータス別に接続数を追跡します。この指標に含まれるステータスは次のとおりです。
  • active: 保留中のクエリ リクエストがないアイドル状態のクライアントを含む、データベースあたりのアクティブな接続数。
  • waiting: データベースごとにサーバー接続を待機しているクライアントの数。
server_connections サーバー接続のステータス別にサーバー接続数を追跡します。この指標に含まれるステータスは次のとおりです。
  • active: データベースあたりのアクティブな接続数。
  • waiting: データベースあたりのアイドル状態のサーバー接続数。
client_connections_avg_wait_time すべてのクライアントがサーバーの待機状態に費やした平均時間。

これらの指標の詳細については、Cloud SQL の指標をご覧ください。Google Cloud コンソールを使用してこれらの指標を表示するには、Cloud SQL インスタンスの概要ページで指標を表示するをご覧ください。

次のステップ