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

如何解决现有Aurora MySQL数据库无法对接无服务器函数的问题?

问题排查与可落地方案

第一步:先定位连接失败的根因

  • 首先确认你的常规Aurora MySQL集群是否默认部署在AWS VPC私有子网内,默认RDS不会开放公网访问权限,Vercel无服务器函数默认走公网发起请求,会直接被RDS安全组拦截。
  • 本地测试Next.js项目中使用的数据库连接配置,确认集群地址、端口、账号密码、数据库名没有配置错误;另外Aurora MySQL默认开启SSL连接校验,未配置SSL参数也会导致连接失败。
  • 检查RDS参数组的max_connections配置,以及数据库账号是否有IP访问限制,排除连接数占满、账号权限限制的问题。

低成本解决方案(无需迁移到Aurora Serverless)

现有持续查询的稳态业务跑在预置型Aurora上成本远低于Serverless版本,且迁移会涉及数据同步、业务适配成本,优先选以下无侵入方案:

方案1:公网访问适配(成本最低,适合非核心业务)

  • 给Aurora集群绑定弹性公网IP,开启公网访问权限。
  • 将Vercel公开的所有IPv4出口网段添加到RDS安全组的入站规则中,放行3306端口访问。
  • Next.js侧数据库连接强制开启SSL避免数据泄露,使用mysql2的配置示例如下:
const mysql = require('mysql2/promise');
const conn = await mysql.createConnection({
  host: process.env.AURORA_HOST,
  user: process.env.DB_USER,
  password: process.env.DB_PWD,
  database: process.env.DB_NAME,
  ssl: { rejectUnauthorized: true }
});
  • 额外配置数据库连接池复用逻辑,避免Vercel无服务器函数冷启时频繁创建新连接打满RDS连接数。

方案2:RDS Proxy代理(性价比最高,适合大部分业务场景)

  • 给现有Aurora集群开通RDS Proxy服务,Proxy可直接复用现有集群的权限配置,对原有业务完全无侵入,不需要修改现有业务的任何连接配置。
  • 给RDS Proxy开通公网访问权限,将Vercel出口网段添加到Proxy的安全组入站规则中,Next.js侧直接连接Proxy地址即可。
  • RDS Proxy自带连接池管理能力,可自动收敛Vercel无服务器函数产生的短连接,避免底层Aurora集群连接数被打满,每月成本仅几到十几美元,远低于迁移Aurora Serverless的成本。

方案3:VPC对等打通(安全性最高,适合合规要求高的业务)

  • 开通Vercel的VPC Peering功能,将Vercel部署环境与Aurora所在的AWS VPC做对等连接,Vercel无服务器函数可直接走内网访问Aurora集群,不需要给RDS开公网权限。
  • 该方案仅需支付Vercel VPC Peering功能的服务费,无其他额外成本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 08:06:01