このページでは、マネージド接続プーリングの概要と、Cloud SQL インスタンスでのマネージド接続プーリングの使用方法について説明します。
マネージド接続プーリングを使用すると、プーリングを使用して Cloud SQL for PostgreSQL インスタンスのリソース使用量と接続レイテンシを最適化し、ワークロードをスケーリングできます。マネージド接続プーリングでは、可能な場合は受信リクエストにサーバー接続が動的に割り当てられます。これにより、接続の急増への耐性を持たせること、そして既存のデータベース接続を再利用することで、特にスケールされた接続でパフォーマンスが大幅に向上します。マネージド接続プーリングは、特定のデータベースではなくプーラーのクラスタに接続します。これにより、ワークロードの接続時間が短縮され、スケーラビリティが向上します。使用されるプーラーの数は、インスタンスの vCPU コアの数に基づきます。
マネージド接続プーリングはトランザクション ワークロードにも使用できますが、短時間だけ有効な接続が多数含まれるアプリケーションや、接続が急増する可能性があるアプリケーションで、スループットとレイテンシのメリットを最大限に活用できます。
長期間の接続の場合、マネージド接続プーリングを使用する接続のパフォーマンスは、ダイレクト接続を使用する場合よりもわずかに低くなることがあります。この場合、マネージド接続プーリングは、接続数が非常に多い場合に接続スケーリングを提供します。ただし、通常は長期間の接続を確立するアプリケーションの場合は、代わりにインスタンスへの直接接続を使用できます。
マネージド接続プーリングを有効にする方法については、マネージド接続プーリングを構成するをご覧ください。
要件
マネージド接続プーリングを使用するには、インスタンスが次の要件を満たしている必要があります。
- インスタンスは Cloud SQL Enterprise Plus エディションのインスタンスである必要があります。
- インスタンスに直接接続するか、Cloud SQL Auth Proxy のみを使用して接続する必要があります。
- 有効なユーザー名とパスワードを使用してインスタンスに接続する必要があります。マネージド接続プーリングを使用する場合、IAM ユーザーと IAM グループ ユーザーはサポートされていません。
- インスタンスは、プライベート サービス アクセス用に設定されているか、パブリック IP を使用しているか、Private Service Connect が有効になっている新しいインスタンスである必要があります。
- インスタンスは新しい Cloud SQL ネットワーク アーキテクチャを使用する必要があります。
- マネージド接続プーリングでは、最小メンテナンス バージョン番号が
POSTGRES_$version.R20250302.00_04
が必要です。詳細については、セルフサービス メンテナンスをご覧ください。
Cloud SQL インスタンスのマネージド接続プーリングで使用されるポート
マネージド接続プーリングを有効にすると、Cloud SQL インスタンスがデータベース トラフィックの処理に使用するポートが変更されます。マネージド接続プーリングで使用されるポートは次のとおりです。
- TCP ポート 5432: Postgres データベース サーバーによる直接接続に使用されます。これは、psql クライアントを使用して直接接続するときに使用されるデフォルトのポート番号です。
- TCP ポート 6432: PgBouncer サーバーによる直接接続に使用されます。このポートを使用して接続するには、psql クライアントを使用して直接接続するときに
psql -p 6432
を指定します。 - TCP ポート 3307: PgBouncer サーバーによる Cloud SQL Auth Proxy 専用接続に使用されます。Cloud SQL Auth Proxy を使用して Pgbouncer に接続する場合、このポート番号は Cloud SQL Auth Proxy クライアントで構成され、変更できません。
使用可能な構成オプション
マネージド接続プーリングには、pool_mode
パラメータを使用して設定できる次のプーリング オプションがあります。
transaction
(デフォルト): トランザクション レベルで接続をプールします。session
: セッション レベルで接続をプールします。
次の構成パラメータを使用して、マネージド接続プーリングをカスタマイズすることもできます。
max_pool_size
: 接続プールの最大サイズ。デフォルト値は 50 接続です。min_pool_size
: 接続プールのしきい値サイズ。サーバー接続の数がmin_pool_size
より少ない場合は、プールにサーバー接続を追加します。デフォルト値は 0 接続です。max_client_connections
: インスタンスで許可される最大接続数。デフォルト値は 5,000 接続です。client_connection_idle_timeout
: タイムアウトするまでにクライアント接続のアイドル状態が続く時間。この値の範囲は 0 ~ 2,147,483 秒で、デフォルト値は 0 秒です。server_connection_idle_timeout
: アイドル状態のサーバー接続がタイムアウトするまでの時間。この値の範囲は 0 ~ 2,147,483 秒で、デフォルト値は 600 秒です。query_wait_timeout
: クエリがタイムアウトするまでの待機時間。この値の範囲は 0 ~ 2,147,483 秒で、デフォルト値は 120 秒です。max_prepared_statements
: トランザクション プーリング モードでサポートされるプロトコル レベルの名前付き準備済みステートメント コマンドの最大数。デフォルト値は 0 です。ignore_startup_parameters
: デフォルトではマネージド接続プーリングの起動パケット内でトラッキングされない、無視するパラメータ。server_lifetime
: マネージド接続プーリングがサーバー接続を切断するまでの、サーバー接続が使用されていない最大時間。デフォルト値は 3,600 秒です。
制限事項
Cloud SQL Enterprise Plus エディション インスタンスでマネージド接続プーリングを使用する場合は、次の制限事項を考慮してください。
- 既存のインスタンスでマネージド接続プーリングを有効にすると、データベースが再起動されます。
- Cloud SQL API を使用してマネージド接続プーリングの有効化、無効化、構成を行う場合、
instance.update
API に他のインスタンス構成の更新を含めることはできません。 - マネージド接続プーリングは、Cloud SQL Auth Proxy バージョン 2.15.2 以降でのみ使用できます。
- Cloud SQL Go 言語コネクタを使用している場合は、Go の最小バージョンとして
1.24
をおすすめします。Go バージョン 1.23 以前を使用している場合は、マネージド接続プーリングを使用する際にパフォーマンスに制限が生じる可能性があります。 transaction
プーリング モードでマネージド接続プーリングを使用している場合、次の SQL 機能はサポートされません。SET/RESET
LISTEN
WITH HOLD CURSOR
PREPARE/DEALLOCATE
PRESERVE/DELETE ROW
一時テーブルLOAD
- セッション レベルのアドバイザリ ロック
Cloud SQL for PostgreSQL バージョン 17 を使用している場合、
sslnegotiation=direct
オプションはサポートされていません。