すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:接続プール (PgBouncer) の有効化または無効化

最終更新日:Nov 09, 2025

ビジネスシナリオに多くの短命な接続が含まれる場合や、接続を頻繁に作成および破棄する必要がある場合は、ApsaraDB RDS for PostgreSQL の接続プール機能を有効にできます。この機能はデータベース接続を再利用して、インスタンス上のそのような接続のパフォーマンスオーバーヘッドを大幅に削減します。また、データベースサーバーの負荷とリソース消費を制御するのにも役立ちます。

特徴

ApsaraDB RDS for PostgreSQL の接続プール機能は、オープンソースコンポーネント PgBouncer に基づいています。アプリケーションとデータベースの間のミドルウェアとして機能し、データベース接続を管理および再利用します。

  • 接続の再利用: 接続プールは、既存の接続の再利用を優先します。これにより、接続を頻繁に作成および破棄することによるパフォーマンスオーバーヘッドを回避できます。データベースサーバーの負荷を大幅に削減し、アプリケーションの応答時間を改善し、同時実行性を向上させます。

  • リソースコントロール: 接続プールでは、クライアント接続の最大数や最大アイドル時間などのパラメーターに制限を設定できます。これにより、過剰な接続がシステムリソースを消費するのを効果的に防ぎます。

前提条件

ApsaraDB RDS for PostgreSQL インスタンスは、次の要件を満たす必要があります。

  • インスタンスのメジャーエンジンバージョンが PostgreSQL 11 以降であること。

  • 製品シリーズが Basic Edition または High-availability Edition であること。

  • 課金方法がサブスクリプションまたは従量課金であること。

  • インスタンスのマイナーエンジンバージョンが 20240830 以降であり、バージョン番号に babelfish サフィックスが付いていないこと。

    説明

    マイナーエンジンバージョンの表示またはアップグレード方法の詳細については、「ApsaraDB RDS for PostgreSQL インスタンスのマイナーエンジンバージョンをアップグレードする」をご参照ください。

課金

この機能は無料です。

注意事項

  • PgBouncer を有効にすると、新しい PgBouncer ポート (デフォルト: 6432) が割り当てられます。元のデータベースポート (デフォルト: 5432) を介した直接アクセスは影響を受けません。PgBouncer を無効にすると、PgBouncer ポートを介してインスタンスにアクセスできなくなります。アプリケーションが元のデータベースポートを使用するように構成されていることを確認してください。

  • PgBouncer を有効にすると、システムは postgres データベースに pgbouncer_fdw および dblink プラグインを自動的にインストールし、接続プールメトリックの表示をサポートします。これらのプラグインはアンインストールできません。

  • インスタンスで SSL 暗号化を有効にすると、PgBouncer も SSL を有効にします。ただし、アクセスコントロールリスト (ACL) が `verify-ca` または `verify-full` に設定されている場合の接続認証や、クライアント証明書失効ファイルの使用はサポートしていません。

  • 複雑なトランザクションを伴うアプリケーション、データベース接続ステータスの追跡が必要なアプリケーション、または特定の PostgreSQL 機能を使用するアプリケーションの場合は、PgBouncer を使用せずにデータベースに直接接続してください。

  • プール内の接続の最大アイドル時間はデフォルトで 10 分です。この期間を超えたアイドル接続は閉じられます。この値は変更できません。

手順

接続プールを有効または無効にする

  1. インスタンス ページに移動します。上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。次に、RDS インスタンスを見つけて、インスタンスの ID をクリックします。

  2. 左側のナビゲーションウィンドウで、データベースの接続 をクリックします。

  3. PgBouncer の有効化 または PgBouncer を無効化する をクリックします。

  4. 表示されるダイアログボックスで、決定 をクリックします。

  5. PgBouncer が有効になった後、データベースの接続 ページで PgBouncer ポート (デフォルト: 6432) を表示できます。

    接続アドレスの変更 をクリックできます。接続アドレスの変更 ウィンドウで、エンドポイントタイプを選択し、PgBouncer ポート を変更します。

接続プールを介して RDS for PostgreSQL インスタンスに接続する

PgBouncer を有効にした後、アプリケーションまたはクライアントで接続ポートを PgBouncer ポート (デフォルト: 6432) に置き換えます。エンドポイント、ユーザー名、パスワードなどの他の接続パラメーターは変更されません。インスタンスへの接続方法の詳細については、「ApsaraDB RDS for PostgreSQL インスタンスに接続する」をご参照ください。

接続プールパラメーターの変更

PgBouncer を有効にした後、パラメーター設定 機能を使用して PgBouncer パラメーターを変更し、クライアント接続の最大数を制御するなど、接続プールの構成を調整できます。

  • PgBouncer を有効にした後でのみ、[パラメーター設定] 機能を使用して PgBouncer パラメーターを表示および変更できます。

  • パラメーターテンプレート を使用してバッチでパラメーターを変更する場合は、まず PgBouncer を有効にしてから、パラメーターテンプレートを RDS for PostgreSQL インスタンスに適用する必要があります。

    デフォルトのパラメーターテンプレートは PostgreSQL_PgBouncer_Default Parameter Template (rpg-sys-pgsql-pgbouncer) です。

変更可能なパラメーターは次のとおりです。

パラメーター

タイプ

デフォルト値

説明

pgbouncer.pool_mode

string

transaction

接続プールモード。

  • session: セッションが終了すると接続が取り消されます。

  • transaction: トランザクションが終了すると接続が取り消されます。

  • statement: 検索文が実行された後、接続が取り消されます。

pgbouncer.default_pool_size

int

20

接続プールで許可されるデフォルトの接続数。

pgbouncer.max_client_conn

int

100

接続プールで許可されるクライアント接続の最大数。

pgbouncer.min_pool_size

int

0

接続プールで許可されるクライアント接続の最小数。

pgbouncer.query_wait_timeout

int

120

クエリが実行のためにキューで待機できる最大時間 (秒)。値が 0 の場合は、無期限の待機を示します。クエリがタイムアウトした場合、クライアントは自動的に切断されます。

pgbouncer.ignore_startup_parameters

string

"extra_float_digits"

接続プールが無視する追加パラメーターのカンマ区切りリスト。

デフォルトでは、接続プールはコアパラメーター (client_encoding、datestyle、timezone、standard_conforming_strings) のみを処理します。他のパラメーターは接続を拒否させます。追加のパラメーターをサポートするには、ここにリストします。接続プールはこれらのパラメーターを自動的に無視して、接続が成功するようにします。

重要

他のパラメーターを追加するときは、PostgreSQL Java Database Connectivity (JDBC) 接続との互換性を確保するために extra_float_digits を保持してください。

pgbouncer.stats_users

string

""

接続プールの仮想データベースに接続し、読み取り専用クエリを実行することが許可されているユーザーのカンマ区切りリスト。

パラメーターの詳細については、「PgBouncer 公式ドキュメント」をご参照ください。

接続プールメトリックの表示

拡張モニタリング 機能を使用して、接続プールメトリックを表示できます。関連するメトリックは、接続プール機能を有効にした後でのみ拡張モニタリングで利用可能になります。

メトリックは次のとおりです。

メトリック

説明

db.pgbouncer.client_connections.active

アクティブなクライアント接続の数。

db.pgbouncer.client_connections.waiting

待機中のクライアント接続の数。

db.pgbouncer.server_connections.active

アクティブなサーバー接続の数。

db.pgbouncer.server_connections.idle

アイドル状態のサーバー接続の数。

db.pgbouncer.total_pooled_connections

接続プール内の接続の総数。

db.pgbouncer.num_pools

接続プールの数。

関連する API 操作

ModifyDBInstanceConfig 操作を呼び出して、RDS for PostgreSQL インスタンスの PgBouncer 機能を有効または無効にできます。構成する必要があるパラメーターは次のとおりです。

パラメーター

説明

DBInstanceId

PgBouncer 機能を有効または無効にする RDS for PostgreSQL インスタンスの ID。

pgm-****

ConfigName

設定項目の名前。

pgbouncer

ConfigValue

設定項目の値。

  • true: 機能を有効にします。

  • false: 機能を無効にします。

true