You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AWS RDS PostgreSQL实例中安装配置PgBouncer?

能否在AWS RDS PostgreSQL实例中安装PgBouncer?

不能直接在RDS PostgreSQL实例内部安装PgBouncer。AWS RDS是托管型数据库服务,用户无法获取实例的操作系统级访问权限(如SSH登录),因此无法自行在实例上安装第三方软件。

不过有两种可行的替代方案来实现PgBouncer的连接池功能:


方案一:在EC2实例上独立部署PgBouncer

这是适用于所有RDS PostgreSQL实例的通用方案。

安装与配置步骤

  1. 准备EC2实例

    • 选择与RDS实例同VPC、同子网的EC2实例,确保网络连通(通过安全组配置允许EC2访问RDS的5432端口)
    • 选用Amazon Linux 2、Ubuntu等主流Linux发行版
  2. 安装PgBouncer

    • 针对Amazon Linux 2:
      sudo amazon-linux-extras install postgresql13
      sudo yum install pgbouncer
      
    • 针对Ubuntu:
      sudo apt update
      sudo apt install pgbouncer
      
  3. 配置PgBouncer核心参数

    • 编辑主配置文件 /etc/pgbouncer/pgbouncer.ini:
      [databases]
      # 格式:<客户端连接别名> = host=<RDS端点> port=5432 dbname=<目标数据库名>
      prod_db_pool = host=my-rds-prod.xxxxxx.us-east-1.rds.amazonaws.com port=5432 dbname=prod_db
      
      [pgbouncer]
      listen_addr = 0.0.0.0  # 允许所有IP访问,也可指定EC2私有IP
      listen_port = 6432
      auth_type = md5
      auth_file = /etc/pgbouncer/userlist.txt
      pool_mode = transaction  # 根据业务选:session/transaction/statement
      max_client_conn = 1000  # 最大客户端连接数
      default_pool_size = 20  # 单数据库默认连接池大小
      
    • 编辑用户认证文件 /etc/pgbouncer/userlist.txt,添加RDS数据库的账号密码:
      "prod_user" "prod_password"
      
  4. 启动并设置开机自启

    sudo systemctl start pgbouncer
    sudo systemctl enable pgbouncer
    
  5. 配置安全组规则

    • 允许应用服务器所在安全组访问EC2实例的6432端口
    • 确保EC2安全组能访问RDS实例的5432端口

应用连接方式

应用将连接地址改为EC2实例的IP/域名,端口改为6432,使用原RDS数据库的账号密码即可。


方案二:使用Aurora PostgreSQL内置PgBouncer(可选)

若业务可迁移到Amazon Aurora PostgreSQL,可直接使用其内置的PgBouncer,无需自行部署(要求Aurora PostgreSQL 13.4及以上版本)。

配置步骤

  1. 进入Aurora集群控制台

    • 在集群详情页切换到「连接池」标签
  2. 创建并配置连接池

    • 点击「创建连接池」,依次配置:
      • 连接池名称
      • 关联的Aurora数据库实例
      • 连接池模式(session/transaction/statement)
      • 最大连接数、池大小等参数
  3. 应用连接

    • 使用Aurora提供的连接池端点(格式:<集群名>-pgbouncer.xxxxxx.us-east-1.rds.amazonaws.com),端口6432,用原数据库账号密码连接即可。

关键注意事项

  • 监控:通过CloudWatch监控EC2上PgBouncer的连接数、等待队列等指标,或Aurora内置连接池的监控数据
  • 高可用:EC2部署PgBouncer时,建议配置Auto Scaling组或ELB实现高可用
  • 密码安全:避免明文存储密码,可使用AWS Secrets Manager动态加载账号密码

内容的提问来源于stack exchange,提问作者Kenny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 22:10:35