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

SpringBoot应用连接AWS RDS Postgres的配置方案(本地/EC2/ECS)

SpringBoot连接私有VPC内AWS RDS Postgres的配置指南(本地/EC2/ECS)

先解决Tomcat启动的依赖问题

启动报错提示未满足依赖,大概率是Postgres驱动或Spring数据组件没配全,按下面检查:

  • Maven项目:确保pom.xml里有这两个依赖
    <!-- Postgres数据库驱动 -->
    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <scope>runtime</scope>
    </dependency>
    <!-- Spring JDBC基础组件(用JPA的话换spring-boot-starter-data-jpa) -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    
  • Gradle项目:build.gradle里加这些
    runtimeOnly 'org.postgresql:postgresql'
    implementation 'org.springframework.boot:spring-boot-starter-jdbc'
    
  • 核对驱动类名:必须是org.postgresql.Driver,别写错
  • 清理缓存重新构建:Maven执行mvn clean install,Gradle执行gradle clean build

本地环境连接配置

因为RDS在私有VPC,本地没法直接访问,得先打通网络,两种常用方法:

方法1:SSH隧道(用VPC内的EC2当跳板)

  1. 本地终端跑这条命令,把本地5432端口映射到RDS端点:
    ssh -i "你的EC2密钥对.pem" -L 5432:你的RDS私有端点:5432 ec2-user@跳板机EC2的公网IP
    
  2. SpringBoot配置文件(application.yml示例):
    spring:
      datasource:
        url: jdbc:postgresql://localhost:5432/你的数据库名
        username: RDS用户名
        password: RDS密码
        driver-class-name: org.postgresql.Driver
    

方法2:AWS VPN连接

  1. 配置AWS Client VPN或Site-to-Site VPN,让本地网络接入目标VPC
  2. 直接用RDS私有端点当数据源地址:
    spring:
      datasource:
        url: jdbc:postgresql://你的RDS私有端点:5432/你的数据库名
        username: RDS用户名
        password: RDS密码
        driver-class-name: org.postgresql.Driver
    

EC2环境连接配置

EC2必须部署在同一VPC(或VPC对等连接的VPC),同时做好安全组规则:

  • EC2的安全组允许出站访问5432端口
  • RDS的安全组允许来自EC2安全组的5432端口入站流量

配置文件直接用RDS私有端点:

spring:
  datasource:
    url: jdbc:postgresql://你的RDS私有端点:5432/你的数据库名
    username: RDS用户名
    password: RDS密码
    driver-class-name: org.postgresql.Driver

优化建议:别硬编码密码,用AWS Secrets Manager存凭证,通过环境变量拉取:

spring:
  datasource:
    url: jdbc:postgresql://你的RDS私有端点:5432/你的数据库名
    username: ${RDS_USERNAME}
    password: ${RDS_PASSWORD}
    driver-class-name: org.postgresql.Driver

ECS环境连接配置

前提准备

  • ECS集群要关联到同一VPC,任务用的安全组允许出站访问5432端口
  • RDS的安全组允许来自ECS任务安全组的5432端口入站流量
  • 任务网络模式设为awsvpc,保证任务能拿到VPC内的私有IP

具体配置

Fargate模式

任务定义里把凭证关联到AWS Secrets Manager,配置文件用环境变量引用:

spring:
  datasource:
    url: jdbc:postgresql://你的RDS私有端点:5432/你的数据库名
    username: ${RDS_USERNAME}
    password: ${RDS_PASSWORD}
    driver-class-name: org.postgresql.Driver

EC2模式

和EC2环境配置完全一致,同样推荐用Secrets Manager管理凭证,避免硬编码。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 23:33:09