Amazon Aurora PostgreSQL 快速配置实战:两次点击秒级创建无服务器数据库,告别 VPC 子网安全组配置噩梦
上周给新项目创建数据库,光配 Amazon VPC 子网、安全组、路由表就花了 40 分钟。数据库本身倒是两分钟就好了,但围绕它的网络配置让我怀疑人生。这种体验,搞后端的应该都懂。
然后我发现亚马逊云科技把 re:Invent 2025 上预览的那个功能正式发布了------Amazon Aurora PostgreSQL 快速配置(Express Configuration)。说白了就是:两次点击,几秒内拿到一个可查询的 PostgreSQL 数据库。不用配 VPC,不用设密码,开箱即用。
我第一反应是"不可能吧",然后试了一下,真香。这篇文章记录一下我的完整体验过程,包括踩到的坑。
一、老流程有多痛?先回忆一下
先回忆一下以前创建 Amazon Aurora PostgreSQL 的标准流程:
- 打开 Amazon RDS 控制台
- 选引擎版本------PostgreSQL 14 还是 15?纠结
- 配实例规格------db.r6g.large 够不够?先选个小的?
- 配 Amazon VPC------没有合适的还得先去 VPC 控制台创建一个
- 配子网组------至少两个可用区的子网,私有子网还是公有子网?
- 配安全组------入站规则设 5432 端口,源 IP 填什么?0.0.0.0/0 不安全,填办公室 IP 又不固定
- 设主用户密码------又得想一个满足复杂度要求的密码,然后存到 AWS Secrets Manager 里
- 配存储加密、备份保留期、监控粒度......
- 点"创建",等 5-8 分钟
- 数据库起来了,但从本地连不上------因为在私有子网里。得搞 VPN、堡垒机或者 AWS Systems Manager Session Manager
整套流程下来,顺利的话 15-20 分钟。不顺利?踩个安全组配置的坑就能再加半小时。我之前给实习生写过一份内部文档,光"如何创建并连接 Aurora 数据库"就写了 3 页 A4 纸。实习生照着做还是踩了两个坑:子网组没覆盖两个可用区、安全组入站规则忘了加。
对于一个只想快速验证想法的开发者来说,这些步骤每一个都是阻力。
二、快速配置到底长什么样?
现在的流程极其简单:
第一步:打开 Amazon RDS 控制台,在控制面板上找到那个带火箭图标的"创建"按钮,点它。
第二步:弹出一个对话框,里面是预配置好的默认设置。数据库集群标识符可以改,容量范围可以调。看一眼,点"创建数据库"。
没了。
真的没了。几秒钟后,页面上出现确认横幅,数据库状态变成"可用"。一个生产可用的 Amazon Aurora PostgreSQL Serverless 数据库就这么好了。
我掐了一下表,从点第一个按钮到数据库变"可用",大概十几秒。跟以前比,体验完全不是一个量级。
三、三个让我觉得"终于想通了"的改进
1. 不用配 VPC 了------这才是杀手级改动
这是我觉得变化幅度最大的地方。快速配置创建的 Aurora 集群不依赖传统的 Amazon VPC 网络,而是自带一个互联网访问网关(Internet Access Gateway)。
这意味着什么?你从笔记本、从公司网络、从家里的 WiFi、甚至从咖啡厅都能直接安全连接这个数据库。
不用 VPN。不用 AWS Direct Connect。不用搞堡垒机跳板。不用花 20 分钟配安全组。
有同事问我:那安全性怎么保障?这个网关走的是加密通道,而且默认就开了 AWS IAM 认证------不是传统的用户名密码,而是基于你的 AWS 身份。说白了不是裸奔,是换了一种更现代、更安全的方式。
而且这个网关分布在多个可用区,可用性和 Aurora 集群本身一个级别。不用担心单点故障。
2. 默认 AWS IAM 无密码认证
以前创建数据库,第一件事就是设一个主用户密码。然后你得操心这个密码存哪里------环境变量?AWS Secrets Manager?配置文件(千万别提交到 Git)?还得操心密码轮换策略。
现在快速配置默认启用 AWS IAM 身份验证。不用设密码,不用管密码轮换,不用担心密码泄露。你的 AWS IAM 身份就是你的数据库凭证。连接时生成一个临时的认证令牌就行。
我第一次连接的时候还习惯性地找密码输入框,结果发现根本不需要。改了这么多年的用户习惯,一时还有点不适应。
3. 零容量起步,按秒计费
Aurora Serverless 本身就支持自动扩缩。但以前你得配一个最低容量。现在支持零容量起步------数据库空闲时直接缩到零 ACU(Aurora 容量单位),不产生计算费用。有请求进来,自动扩上去;没请求了,自动缩回零。
计费粒度是秒,不是小时。
这对开发测试环境意义重大。以前我会犹豫要不要为每个功能分支创建独立数据库,因为怕忘了删而持续产生费用。现在完全不用顾虑------空闲就是零费用。
四、连接方式详解:比以前丰富太多
数据库创建好之后,去"连接和安全"选项卡,会看到三种连接方式。每种都做得很顺滑。
方式一:SDK 代码片段(重点推荐)
控制台会根据你的实际数据库配置,自动生成连接代码。支持的语言很全:Python、Node.js、Go、.NET、PHP、JDBC、TypeScript、psql。
以 Python 为例,生成的代码大概长这样:
python
import psycopg2
import boto3
# 生成 IAM 认证令牌------不用密码
auth_token = boto3.client('rds', region_name='ap-southeast-1').generate_db_auth_token(
DBHostname='my-db.cluster-xxx.ap-southeast-1.rds.amazonaws.com',
Port=5432,
DBUsername='postgres',
Region='ap-southeast-1'
)
conn = psycopg2.connect(
host='my-db.cluster-xxx.ap-southeast-1.rds.amazonaws.com',
port=5432,
database='postgres',
user='postgres',
password=auth_token, # 这里填的是 IAM 令牌,不是传统密码
sslmode='require' # 强制 SSL,黜认就是
)
cur = conn.cursor()
cur.execute('SELECT version();')
print(cur.fetchone()[0])
cur.close()
conn.close()
Node.js 也一样顶畅:
javascript
const { Client } = require('pg');
const AWS = require('aws-sdk');
AWS.config.update({ region: 'ap-southeast-1' });
async function main() {
const signer = new AWS.RDS.Signer({
region: 'ap-southeast-1',
hostname: 'my-db.cluster-xxx.ap-southeast-1.rds.amazonaws.com',
port: 5432,
username: 'postgres'
});
const password = signer.getAuthToken({});
const client = new Client({
host: 'my-db.cluster-xxx.ap-southeast-1.rds.amazonaws.com',
port: 5432,
database: 'postgres',
user: 'postgres',
password,
ssl: { rejectUnauthorized: false }
});
await client.connect();
const res = await client.query('SELECT version()');
console.log(res.rows[0].version);
await client.end();
}
main().catch(console.error);
以前连个 Aurora 数据库,我还得翻文档看 IAM 认证怎么配、SSL 证书从哪下。现在直接复制粘贴就能跑。违种感觉很爽。
方式二:AWS CloudShell 直连
直接在控制台里打开 AWS CloudShell,命令都预填好了。点"启动 CloudShell",连上之后直接进 psql 命令行,就能跑 SQL。
不用在本地装 psql 客户端,不用配环境变量,不用处理连接字符串。对快速验证一个 SQL 查询特别方便。
我经常用这个方式来快速检查表结构或者跑个简单查询。
方式三:pgAdmin 等第三方工具
如果你习惯用 pgAdmin 或者 DBeaver 之类的图形化工具,选"端点"选项。控制台会提供一个"获取令牌"按钮,生成一个临时的 AWS IAM 认证令牌,有效期 15 分钟。把它填到工具的密码字段里就行。
唯一注意的点:令牌过期后连接会断,需要重新生成。如果你的工具有自动重连机制,可能需要写个脚本来自动刷新令牌。这是目前体验上唯一稍微有点摩擦的地方。
五、CLI 一行命令搞定
不想用控制台?AWS CLI 一行搞定:
bash
aws rds create-db-cluster \
--db-cluster-identifier my-express-db \
--engine aurora-postgresql \
--with-express-configuration
一个 API 调用同时创建了集群和实例。这个天适合放在自动化脚本或者 CI/CD 流程里了。
比如你的集成测试脚本可以这样:创建数据库 → 跑测试 → 删数据库。全程自动化,零容量起步也不用担心费用。
六、配合 Vercel v0 和 Kiro:AI 辅助开发新玩法
这次发布还有两个集成值得关注。
Vercel v0 集成:v0 是 Vercel 推出的 AI 驱动开发工具。你用自然语言描述想要的应用,它帮你生成全栈代码。现在 v0 支持直接连接 Amazon Aurora PostgreSQL、Amazon Aurora DSQL 和 Amazon DynamoDB。
意思是你可以说"帮我建一个带用户注册和文章管理的博客系统",v0 给你生成前后端代码,数据库直接用 Aurora。从想法到可运行的应用,几分钟。
Kiro Powers 集成:Kiro 是亚马逊云科技推出的 AI 编码 IDE。安装 Aurora PostgreSQL 的 Kiro 功能之后,AI 代理可以直接帮你操作数据库------建表、写查询、调优、管理 schema,都在 IDE 里完成。还有配套的 Amazon Aurora Postgres MCP 服务器,支持更深度的 AI 辅助。
这两个集成指向同一个方向:数据库正在从"需要专人运维的基础设施"变成"开发流程中无感的一环"。
七、免费套餐可用:放心折腾
亚马逊云科技的免费套餐现在覆盖了 Aurora。新注册账号可以拿到总共 200 美元的服务抵扣金(注册即得 100 美元,使用 Amazon RDS、AWS Lambda、Amazon Bedrock 等服务再得 100 美元)。
你可以用这欕抵扣金来体验快速配置创建的 Aurora 数据库。加上零容量起步按秒计费的特性,200 美元够折腾好一阵子了。
八、实际体验和一点踩坑
说说我实际使用中的感受。
快的方面 :从打开控制台到执行第一条 SELECT version() 查询,整个过程不到 30 秒。这不是夸张,是真实计时。
爽的方面:以前我会建议团队共用一个开发数据库来省事。现在不需要了------每个开发者、每个功能分支都可以有自己的独立数据库实例。开发隔离彻底解决了。用完删掉就行。
踩坑的地方:
-
IAM 权限要提前配好 。快速配置虽然不用设密码,但你的 AWS IAM 用户或角色需要有
rds-db:connect权限。如果你的 IAM 策略没有这条,连接会报权限错误。第一次用的时候我就因为这个卡了几分钟。 -
认证令牌有效期 15 分钟。用 pgAdmin 这类工具时,长时间空闲后连接会断。需要重新获取令牌。如果你的应用代码里用了连接池,记得在连接池层面处理令牌刷新。
-
快速配置创建后仍然可以改配置。比如你可以后续修改容量范围、添加只读副本、改参数组。不是说快速创建就没法调优了。
九、适用场景判断
快速配置特别适合这些场景:
- 原型验证:有个想法想快速验证,不想花时间在基础设施上
- 开发测试:每个功能分支独立数据库,互不干扰
- Hackathon:比赛时间紧,数据库不应该成为瓶颈
- 教学演示:给学生或新员工演示,不用先讲 20 分钟的 VPC 概念
- 小型应用:个人项目或早期创业项目,零容量起步控制成本
如果你的场景需要严格的网络隔离(比如金融合规要求),你仍然可以用传统方式在 VPC 内创建。快速配置是多了一个选择,不是替代。
十、总结
Amazon Aurora PostgreSQL 快速配置这个功能,核心就干了三件事:
- 砍掉了 VPC 网络配置------内置互联网访问网关
- 砍掉了密码管理------默认 AWS IAM 认证
- 砍掉了容量规划------零容量起步,按秒自动扩缩
剩下的就是:点两下,几秒钟,一个可查询的 PostgreSQL 数据库。
如果你还在用老流程创建开发测试用的 Aurora 数据库,真心建议试试这个。体验差距不是一点半点。
所有亚马逊云科技商业区域都已支持。去 Amazon RDS 控制台,找那个带火箭图标的按钮就行。