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

使用NextJS开发时,AWS Amplify如何连接VPC内的私有RDS PostgreSQL?

如何让AWS Amplify部署的NextJS连接VPC内的私有RDS PostgreSQL实例

Amplify托管的NextJS默认不在你的自定义VPC范围内,无法直接访问私有RDS,以下是几种可行的解决方式:

方案1:通过配置VPC访问的Lambda函数中转数据库请求

这是最常用的实现方式,利用Lambda的VPC配置能力打通与私有RDS的连接,NextJS后端逻辑通过调用该Lambda完成数据库操作:

  • 在Amplify项目中创建或修改用于数据库交互的Lambda函数(可通过amplify add function命令快速创建)
  • 登录AWS控制台,找到目标Lambda函数,进入配置 > VPC页面:
    • 选择RDS所在的VPC及子网(建议多选跨可用区子网提升可用性)
    • 绑定安全组,确保该安全组被RDS的安全组允许访问5432端口(PostgreSQL默认端口)
    • 确认Lambda执行角色拥有ec2:CreateNetworkInterface、ec2:DescribeNetworkInterfaces等VPC相关权限,缺失可手动附加AWSLambdaVPCAccessExecutionRole托管策略
  • Lambda内的数据库连接示例(基于pg库):
const { Client } = require('pg');

exports.handler = async (event) => {
  const client = new Client({
    host: 'your-rds-internal-endpoint', // 必须用RDS内网地址,禁止使用公网地址
    port: 5432,
    user: 'your-db-username',
    password: 'your-db-password',
    database: 'your-db-name'
  });

  try {
    await client.connect();
    const res = await client.query('SELECT * FROM target_table');
    return { statusCode: 200, body: JSON.stringify(res.rows) };
  } catch (err) {
    console.error(err);
    return { statusCode: 500, body: JSON.stringify({ error: '数据库查询失败' }) };
  } finally {
    await client.end();
  }
};
  • 在NextJS的API路由中通过Amplify API客户端或直接调用Lambda的Invoke接口,触发数据库操作

方案2:配置VPC对等连接

将Amplify托管环境所在的VPC与你的RDS所在VPC建立对等连接,让NextJS后端直接访问RDS:

  • 在AWS控制台找到Amplify应用对应的VPC(可通过Amplify应用设置 > 环境变量或关联的CloudFormation栈查询)
  • 在VPC控制台创建对等连接,将Amplify的VPC与RDS所在VPC配对
  • 配置双方VPC的路由表,添加指向对等连接的路由规则,目标地址为对方VPC的CIDR段
  • 修改RDS的安全组,允许Amplify VPC的CIDR段访问5432端口
  • 注意:Amplify的VPC可能随应用更新发生变动,该方式稳定性不如Lambda中转,适合架构长期固定的场景

方案3:用AWS Secrets Manager管理敏感凭证

无论采用哪种方案,都建议将数据库用户名、密码等敏感信息存入AWS Secrets Manager,而非硬编码或明文存储:

  • 在Secrets Manager中创建包含RDS连接信息的密钥
  • 给Lambda或NextJS执行角色添加访问该密钥的权限
  • 在代码中通过Secrets Manager SDK获取凭证后再建立数据库连接

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 11:10:15