如何实现Prisma与AWS Aurora Serverless (MySQL)数据库的连接
Prisma 与 AWS Aurora Serverless(MySQL)集成连接方案推荐
以下是不同场景下的最优连接方案,可根据你的实际使用需求选择:
方案1:传统堡垒机(跳板机)连接方案
适用场景:临时开发调试、小团队低频运维场景
- 部署时将堡垒机和Aurora Serverless放在同一VPC内,仅为堡垒机分配公网IP,安全组限制仅放开你本地IP的SSH访问权限
- 通过SSH端口转发将Aurora的3306端口映射到本地,参考命令:
ssh -L 3306:<Aurora内网访问地址>:3306 ec2-user@<堡垒机公网IP> -i <本地密钥文件路径>
- Prisma配置文件中的DATABASE_URL直接填写本地转发后的地址:
mysql://<数据库用户名>:<数据库密码>@localhost:3306/<数据库名>
该方案实现简单,缺点是需要额外维护堡垒机的可用性和安全规则,存在公网暴露的攻击风险。
方案2:无堡垒机VPC直连方案
适用场景:生产环境、对安全和运维效率要求高的场景
- 若你的应用部署在AWS生态内部(如ECS、Lambda、EKS),直接将应用部署到和Aurora同VPC的私有子网中,安全组仅开放应用子网到Aurora的3306访问权限即可,不需要将数据库暴露到公网
- 本地开发需要连接数据库时,可通过AWS Session Manager依托IAM权限直接访问VPC内资源,无需给任何实例分配公网IP,配置好AWS CLI和对应的插件后即可实现端口转发,完全不需要维护单独的堡垒机
该方案攻击面小,不需要额外投入资源维护堡垒机,权限统一由IAM管控,是生产环境的首选方案。
方案3:Prisma Data Proxy连接方案
适用场景:跨平台无服务器应用部署、需要降低数据库连接数消耗的场景
- 首先将Aurora Serverless的连接信息录入Prisma Data Platform,开启Data Proxy功能
- 将Prisma生成的代理连接地址替换原有DATABASE_URL,生成Prisma Client时添加数据代理参数:
prisma generate --data-proxy - 所有数据库请求会通过Prisma的代理层转发,自动管理连接池,非常适配Serverless数据库的连接数限制特性
注意该功能目前处于早期访问阶段,生产环境使用前建议先做充分的压力测试验证稳定性。
方案选择建议
- 生产环境且应用部署在AWS生态内:优先选择无堡垒机VPC直连方案
- 跨平台Serverless部署(如Vercel托管应用):优先选择Prisma Data Proxy方案
- 临时本地调试、低频运维:可使用传统堡垒机方案
内容的提问来源于stack exchange,提问作者adherb
相关产品推荐
相关产品推荐

