创建实例
- 难度等级: 初级
- 预计时间: 30分钟
- 理解RDS MySQL创建流程的关键决策点
- 掌握不可逆配置项的规划方法
- 配置生产级RDS实例的最佳实践
- 避免常见的配置错误
- AWS账号具备RDS创建权限(
rds:CreateDBInstance) - VPC和子网已规划完成
- 已确定数据库用途(生产/测试)
- 已创建VPC和至少2个不同可用区的子网
- 已规划数据库容量需求(存储空间、连接数)
- 已确定备份和灾难恢复要求
1. 创建方法选择
Section titled “1. 创建方法选择”标准创建 vs 轻松创建
Section titled “标准创建 vs 轻松创建”| 对比项 | 标准创建 | 轻松创建 |
|---|---|---|
| 配置灵活性 | 完全控制所有参数 | 使用AWS推荐配置 |
| 适用场景 | 生产环境 | 快速测试 |
| 参数可见性 | 所有参数可调整 | 关键参数自动配置 |
最佳实践:始终使用标准创建
为什么:
- 轻松创建隐藏了公网访问、备份窗口等关键配置
- 生产环境需要精确控制网络、安全和备份策略
- 后期修改某些配置项会导致停机

2. 引擎版本选择
Section titled “2. 引擎版本选择”支持的MySQL版本
Section titled “支持的MySQL版本”RDS for MySQL当前支持:
- MySQL 8.4 - LTS版本,推荐生产环境
- MySQL 8.0 - 主流版本,广泛使用
最佳实践:
- 生产环境:选择MySQL 8.4(长期支持版本)
- 测试环境:可选择最新的8.0次版本进行兼容性测试
- 避免:不要选择即将进入扩展支持期的版本(如5.7已进入扩展支持,需额外付费)
为什么:LTS版本获得更长时间的标准支持,避免频繁升级和额外费用。

3. 模板选择
Section titled “3. 模板选择”- 生产:启用Multi-AZ,推荐配置
- 开发/测试:单AZ部署,成本优化
- 免费套餐:受限于t3.micro/t4g.micro实例
最佳实践决策树:
%%{init: {'theme':'base', 'themeVariables': {'fontSize':'14px'}}}%%
graph LR
A[确定环境类型] --> B{生产环境?}
B -->|是| C[生产模板<br/>强制Multi-AZ]
B -->|否| D{需要高可用?}
D -->|是| C
D -->|否| E[开发/测试模板<br/>单AZ节省成本]
为什么生产模板强制Multi-AZ:
- 主备同步复制,数据零丢失(RPO=0)
- 自动故障转移(1-2分钟)
- 可用性SLA更高
注意:免费套餐仅用于学习,存储限制20GB,不适合任何生产场景。

4. 实例标识符和凭证
Section titled “4. 实例标识符和凭证”集群/数据库标识符
Section titled “集群/数据库标识符”命名规范:
- 使用小写字母、数字、连字符
- 长度:1-63字符
- 同区域内唯一
推荐命名方式:
<环境>-<应用>-<数据库类型>-<序号>示例: prod-webapp-mysql-01Master凭证
Section titled “Master凭证”Master Username:
- 默认
admin,可自定义 - 限制:1-16字符,必须以字母开头,不能是MySQL保留关键字(如
SELECT、WHERE等)
Master Password:
- 长度:8-41字符
- 不允许
/、"、@字符 - 最佳实践:使用AWS Secrets Manager自动生成和管理
为什么使用Secrets Manager:
- 自动密码轮换
- 加密存储
- 审计日志
- 避免硬编码密码
自我管理
常规的使用用户吗和密码的凭据方式。

5. 实例配置(关键)
Section titled “5. 实例配置(关键)”实例类型选择
Section titled “实例类型选择”实例族特点:
| 实例族 | 特点 | 适用场景 |
|---|---|---|
| t3/t4g | 突发性能,可积累CPU积分 | 开发测试、低负载应用 |
| m6g/m7g | 平衡型,Graviton处理器 | 通用生产负载(推荐) |
| r6g/r7g | 内存优化 | 大内存需求、缓存密集型 |
最佳实践推荐:
开发环境:db.t4g.micro(2 vCPU, 1GB)测试环境:db.m6g.large(2 vCPU, 8GB)生产环境:db.m6g.xlarge起步(4 vCPU, 16GB)为什么推荐Graviton实例:
- 性价比高20%
- 能耗更低
- 性能与x86实例相当
t系列注意事项:
- CPU积分耗尽后性能骤降至基线(10-20%)
- 不适合持续高负载
- 通过CloudWatch监控
CPUCreditBalance指标

存储类型:
| 类型 | IOPS | 延迟 | 适用场景 | 价格 |
|---|---|---|---|---|
| gp3 | 3,000基线(可扩展至16,000) | 毫秒级 | 通用(推荐) | 低 |
| gp2 | 基于容量(3 IOPS/GB) | 毫秒级 | 遗留系统 | 低 |
| io2 | 最高240,000 | 亚毫秒级 | 极高I/O需求 | 高 |
最佳实践:
- 默认选择gp3:性价比最优,性能可独立扩展
- 分配存储空间原则:
- 初始容量 = 预估数据量 × 1.5(预留增长空间)
- 最小20GB,最大64TB
- 考虑备份和临时表空间
为什么gp3优于gp2:
- IOPS和吞吐量可独立调整
- 小容量下IOPS更高(gp2需300GB才达到3000 IOPS)
- 成本更低(相同性能下节省20%)
存储自动扩展:
- 推荐启用(适用于Single-AZ和Multi-AZ DB Instance)
- 阈值:剩余空间<10%时触发
- 最大扩展限制:设置合理上限防止成本失控
- 重要:Multi-AZ DB Cluster不支持自动扩展,仅能手动修改存储容量

6. 连接性配置
Section titled “6. 连接性配置”VPC和子网组
Section titled “VPC和子网组”DB Subnet Group:
- 必须跨至少2个可用区
- Multi-AZ部署会在不同AZ创建主备实例
最佳实践:
- 使用专用的数据库子网组
- 子网应为私有子网(无IGW路由)
- 每个AZ至少一个子网
为什么使用私有子网:
- 减少攻击面
- 符合安全合规要求
- 通过NAT网关访问外部服务(如S3)
公网访问(创建时决定)
Section titled “公网访问(创建时决定)”Public Access设置:
Yes:分配公网IP,允许互联网访问No:仅VPC内访问
最佳实践:创建时务必规划准确,避免后期通过CLI修改增加复杂度。
最佳实践:
- 生产环境:必须选择
No - 开发环境:如需外部访问,配置跳板机或VPN
为什么禁用公网访问:
- 防止暴力破解攻击
- 满足PCI-DSS、HIPAA合规要求
- 注意:控制台创建后无法修改此选项,必须在创建时决定
安全组配置:
入站规则示例:类型: MySQL/Aurora (3306)源: sg-应用层安全组ID描述: Allow app servers
8. 监控和日志
Section titled “8. 监控和日志”功能:实时OS级指标(每秒采集)
收集指标:
- CPU使用率(细分到内核)
- 内存使用情况
- 磁盘I/O
- 网络流量
最佳实践:
- 生产环境:启用,粒度60秒
- 创建IAM角色:
rds-monitoring-role(自动创建)
成本:根据日志量计费(通常<$1/月/实例)
性能详情(Performance Insights)
Section titled “性能详情(Performance Insights)”功能:
- 数据库负载可视化
- Top SQL识别
- 等待事件分析
免费额度:7天历史数据 付费选项:保留长期历史(2年)
最佳实践:
- 所有环境均启用(免费功能)
- 生产环境考虑付费长期保留
可导出至CloudWatch Logs:
- 错误日志(推荐启用)
- 慢查询日志(推荐启用)
- 常规日志(仅调试时启用,影响性能)
- 审计日志(需审计时启用)
最佳实践:
生产环境启用: - Error log - Slow query log(配合long_query_time参数)
避免启用: - General log(性能开销大)
7. 高可用和备份
Section titled “7. 高可用和备份”Multi-AZ部署
Section titled “Multi-AZ部署”工作原理:
- 在另一AZ创建同步备库
- 自动故障转移(60-120秒)
- 备库不可用于读流量
成本:双倍实例费用(存储费用不变)
最佳实践:
- 生产环境:必须启用
- 测试环境:可禁用降低成本
- 使用Read Replica分担读负载(另计费)
自动备份:
- 保留期:1-35天(推荐生产环境7-14天)
- 备份窗口:选择低峰时段(如凌晨2-4点)
- 零数据丢失(基于事务日志)
备份副本:
- 自动复制到其他区域(跨区域灾备)
- 仅限目标区域没有自动备份时
最佳实践配置:
生产环境: 备份保留期: 14天 备份窗口: 02:00-04:00(UTC+8则为10:00-12:00 UTC) 启用跨区域复制: 是(选择地理远离的区域)
开发环境: 备份保留期: 1天 备份窗口: 默认为什么14天保留期:
- 满足常见合规要求
- 足够时间发现数据异常
- 平衡存储成本
9. 参数组和选项组
Section titled “9. 参数组和选项组”DB Parameter Group
Section titled “DB Parameter Group”作用:控制数据库引擎行为(如缓存大小、连接数)
关键参数推荐:
| 参数 | 默认值(RDS) | 推荐值 | 说明 |
|---|---|---|---|
innodb_buffer_pool_size | {DBInstanceClassMemory*3/4} | 保持默认 | InnoDB缓存,自动按实例75%内存配置 |
max_connections | LEAST({DBInstanceClassMemory/12582880},16000) | 保持默认或根据应用调整 | 最大连接数,基于实例内存自动计算 |
slow_query_log | 0(关闭) | 1(开启) | 慢查询日志,用于性能优化 |
long_query_time | 10秒 | 1-2秒 | 慢查询阈值 |
最佳实践:
- 创建自定义参数组(复制默认组)
- 仅修改必要参数
- 参数组名称示例:
prod-mysql84-params - 修改后需重启生效的参数会标注
为什么不修改innodb_buffer_pool_size:
- RDS默认公式已优化(75%内存)
- 留25%给OS和监控进程
- 手动设置可能导致OOM
常见错误:
- 设置
innodb_buffer_pool_size超过可用内存 → 实例崩溃 max_connections过高 → 内存耗尽- 启用
general_log→ 性能下降50%+
DB Option Group
Section titled “DB Option Group”用途:启用额外功能插件
MySQL支持的选项:
MARIADB_AUDIT_PLUGIN(审计)MEMCACHED(内存缓存接口,8.0后不推荐)
最佳实践:
- 除非特定需求,使用默认选项组
- 审计需求启用
MARIADB_AUDIT_PLUGIN

10. 扩展支持(RDS Extended Support)
Section titled “10. 扩展支持(RDS Extended Support)”什么是Extended Support
Section titled “什么是Extended Support”MySQL社区版本停止维护后,AWS提供的额外支持服务。
费用:
- Year 1:每vCPU每小时额外费用
- Year 2:费用翻倍
- Year 3:费用再翻倍
最佳实践:
- 避免依赖Extended Support
- 在社区支持期内完成升级
- 示例:MySQL 5.7已进入Extended Support(2024年2月后)
为什么不推荐:
- 成本显著增加(可能翻倍)
- 不包含新功能
- 安全补丁有限
规划建议:
MySQL 8.0社区支持至2026年4月 -> 2025年Q4开始规划升级至8.4 -> 2026年Q1完成测试 -> 2026年Q2生产环境升级11. 加密配置
Section titled “11. 加密配置”静态加密(Encryption at Rest)
Section titled “静态加密(Encryption at Rest)”选项:
- 使用AWS管理的密钥(
aws/rds) - 使用客户管理的CMK(KMS)
最佳实践:
- 生产环境:必须启用加密
- 使用客户管理的CMK(便于密钥轮换和审计)
- 测试环境:可不加密节省成本
为什么必须加密:
- 合规要求(PCI-DSS、HIPAA、GDPR)
- 备份自动加密
- 读副本也会加密
加密后影响:
- 性能影响<5%
- 无法创建未加密的读副本
- 快照恢复必须加密
默认行为:
- MySQL 8.0+默认支持SSL/TLS连接
- RDS不强制SSL(客户端可选择不加密连接)
最佳实践:
- 应用端配置强制SSL:
?sslMode=REQUIRED - 下载RDS CA证书验证服务器身份
注意:RDS MySQL无法通过参数强制SSL(require_secure_transport不可修改)
12. 维护窗口
Section titled “12. 维护窗口”自动次版本升级:
- 推荐启用(安全补丁)
- 仅在维护窗口执行
维护窗口设置:
生产环境:周日 03:00-04:00 UTC(避开业务高峰)测试环境:默认(随机分配)为什么选择周日凌晨:
- 业务量最低
- 有足够时间处理升级问题
- 避开工作日
注意:
- 次版本升级需要重启(停机1-3分钟)
- Multi-AZ会先升级备库,故障转移后升级主库
13. 删除保护
Section titled “13. 删除保护”Delete Protection
Section titled “Delete Protection”功能:防止误删除实例
最佳实践:
- 生产环境:必须启用
- 测试环境:可选
删除流程:
- 禁用删除保护
- 执行删除操作
- 选择是否创建最终快照
为什么需要最终快照:
- 最后的恢复机会
- 快照可保留至删除
- 推荐快照命名:
final-<实例ID>-<时间戳>
14. 生产环境推荐配置清单
Section titled “14. 生产环境推荐配置清单”引擎配置: 引擎: MySQL 版本: 8.4.x(LTS)
实例配置: 模板: Production 实例类型: db.m6g.xlarge(4 vCPU, 16GB) Multi-AZ: 启用
存储: 类型: gp3 分配: 100GB 自动扩展: 启用 #非集群可用 最大容量: 500GB
网络: VPC: vpc-prod 子网组: db-subnet-group-prod(私有子网) 公网访问: 否 安全组: sg-db-prod(仅允许应用层访问)
备份: 自动备份: 启用 保留期: 14天 备份窗口: 02:00-04:00 UTC 跨区域复制: 启用(备份至异地区域)
监控: Enhanced Monitoring: 启用(60秒) Performance Insights: 启用 日志导出: Error log, Slow query log
安全: 静态加密: 启用(使用KMS) 删除保护: 启用
参数组: 自定义参数组: prod-mysql84-params slow_query_log: 1 long_query_time: 2
维护: 自动次版本升级: 启用 维护窗口: 周日 03:00-04:00 UTC15. 创建后验证清单
Section titled “15. 创建后验证清单”# 从应用服务器测试连接mysql -h <endpoint> -P 3306 -u admin -p
# 验证SSL连接mysql -h <endpoint> -u admin -p --ssl-mode=REQUIRED
# 检查数据库版本SELECT VERSION();
# 验证参数配置SHOW VARIABLES LIKE 'innodb_buffer_pool_size';SHOW VARIABLES LIKE 'max_connections';- CloudWatch指标正常采集
- Performance Insights显示数据
- 日志正常写入CloudWatch Logs
- 检查自动备份是否创建
- 测试手动快照功能
- 验证备份窗口设置
Q: 创建后能否更改公网访问设置?
A: 控制台Modify界面不提供此选项。理论上可通过CLI的modify-db-instance --publicly-accessible修改,但需确保子网组满足要求(公有子网需有IGW路由)。强烈建议创建时就规划准确,避免后期修改的复杂性。
Q: 能否从未加密实例迁移到加密实例?
A: 不能直接修改。需要创建加密快照,从快照恢复新实例。
Q: t3实例CPU积分耗尽怎么办?
A: 升级到m6g等不限积分的实例类型,或减少负载。
Q: Multi-AZ会增加延迟吗?
A: 写入延迟增加<10ms(同步复制),读操作无影响。备库不提供读服务。
Q: 参数组修改后何时生效?
A: 静态参数需重启;动态参数立即生效。Parameter Group页面会标注。
Q: 如何选择备份窗口?
A: 选择业务低峰期,避开备份时I/O会略微增加的时段。
Q: gp3的3000 IOPS不够用怎么办?
A: 可在创建后修改,独立调整IOPS至16,000(无需改存储类型)。
Q: 为什么不推荐MySQL 5.7?
A: 已进入Extended Support,每月成本显著增加。应升级至8.0或8.4。
文档验证声明:
- 所有配置项基于AWS官方文档(2025年1月)
- MySQL版本支持情况已验证
- 参数默认值来自AWS官方文档
- 不可变配置项已通过API文档确认
- 未提及AWS尚未GA的功能或私有预览特性