在阿里云上启用 PolarDB 的 Serverless 模式,可以通过控制台、CLI 或 API 实现。以下是基于PolarDB MySQL 引擎(最常见场景)的详细操作步骤:
✅ 前提条件
- 已创建 PolarDB 集群(支持 Serverless 的版本需为 PolarDB MySQL 8.0/5.7 高可用版,且实例规格需兼容 Serverless)。
- 账号具有
ram:CreateInstance、polardb:ModifyClusterSpec等权限。 - 建议先在测试环境验证兼容性(部分旧版本或特定配置可能不支持)。
🔧 方法一:通过阿里云控制台操作(推荐)
步骤 1:登录 PolarDB 控制台
访问 PolarDB 控制台,选择目标地域。
步骤 2:定位目标集群
- 找到需要启用的 PolarDB 集群,点击集群 ID 进入详情页。
- 确保该集群处于 “运行中” 状态。
步骤 3:切换至 Serverless 规格
- 在左侧导航栏选择 【规格配置】。
- 点击 【变更配置】 按钮。
- 在“规格类型”中选择 「Serverless」(若未显示,说明当前集群版本不支持;请确认是否为最新支持的引擎版本)。
- 设置:
- 最小计算资源(如:0.5 vCPU / 1 GB 内存)
- 最大计算资源(如:32 vCPU / 256 GB 内存)
- (可选)配置自动伸缩策略(如:基于 CPU 利用率触发扩容)
- 勾选同意协议,点击 【提交】 并等待变更完成(通常几分钟内生效)。
⚠️ 注意:
- Serverless 模式下,存储与计算分离,存储容量可独立扩展(默认按实际使用计费)。
- 首次启用时,系统会自动创建对应的 Serverless 规格模板,无需手动创建新集群。
🛠️ 方法二:通过 OpenAPI / CLI 自动化
示例:调用 ModifyDBClusterSpec 接口(Python + boto3 风格伪代码)
import aliyun_sdk
from aliyun.polarb import PolarDBClient
client = PolarDBClient(
endpoint="polardb.aliyuncs.com",
access_key_id="YOUR_ACCESS_KEY_ID",
access_key_secret="YOUR_ACCESS_KEY_SECRET"
)
response = client.modify_db_cluster_spec(
DBClusterId="pc-xxxxxxxxxxxxx",
SpecType="Serverless", # 关键参数
MinComputeUnits=1, # 最小计算单元数(1 unit ≈ 0.5 vCPU)
MaxComputeUnits=64, # 最大计算单元数
AutoScaleEnabled=True, # 是否开启自动弹性
ScalePolicy={
"MinCpuUsage": 30, # CPU < 30% 时缩容
"MaxCpuUsage": 80 # CPU > 80% 时扩容
}
)
print(response)
📌 更多参数说明见:PolarDB ModifyDBClusterSpec 文档
🔍 验证是否成功启用
- 回到控制台 → 集群详情 → 【规格配置】页面,查看“规格类型”是否为 Serverless。
- 观察监控图表:CPU/内存应呈现动态波动(而非固定值)。
- 执行压测后检查是否自动扩容(可通过 CloudMonitor 或 Prometheus 集成监控)。
💡 最佳实践建议
| 场景 | 建议 |
|---|---|
| 开发/测试环境 | 启用 Serverless + 最小资源设为 0.5 vCPU,节省成本 |
| 生产环境 | 设置合理的 MinComputeUnits(≥1),避免频繁缩容影响性能 |
| 突增流量业务 | 配合事件驱动(如函数计算 + PolarDB)实现秒级弹性 |
| 长期稳定负载 | 评估后考虑转为固定规格(更可控、无冷启动延迟) |
需要我提供:
- 具体版本的兼容性列表?
- Serverless vs 固定规格的 cost 对比测算?
- Terraform 脚本示例?
欢迎告诉我你的使用场景,我可进一步定制方案。
云知识