01 它是干嘛的
RDS 与 Aurora 都是「托管数据库」:把安装、调参、备份、主从同步、故障切换这些又难又烦的活全部接过去,让你只面对一个数据库地址。RDS 支持多种主流数据库引擎;Aurora 则是 AWS 自研的云端数据库,兼容 MySQL 与 PostgreSQL,把计算和存储拆开,存储自动跨多个可用区复制。
02 为什么会有它
在托管数据库之前:数据库是运维最怕接到的那个电话
数据库是应用的心脏,也是最难伺候的部件。自己搭一套,要装软件、调几十个参数、规划磁盘、设好每天备份,还要搭一套主从复制,让数据在另一台机器上留有副本。任何一步出错,都可能带来数据丢失。
最让人睡不好觉的是「半夜数据库挂了」:应用全线报错、用户投诉不断,而修复往往要手工把备库提升为主库、切换应用连接,整个过程心惊胆战。做得好是团队的功劳,做得差就是职业事故。
托管数据库的承诺很朴素:这些脏活累活我替你干。你只管建表、写查询,其余都交给平台。Aurora 更进一步,它把「计算」和「存储」彻底分开——计算只是负责运算的小部分,存储则由一个会自动复制、自动扩容、跨多个可用区的共享层承担,这让它在大流量下依然稳定,故障切换也更快。
03 它怎么工作
托管数据库的核心是一套「主库负责写、副本负责读、存储自动多份保存、主库坏了自动顶替」的机制。你看不到这些机器,但正是它们在幕后保证数据安全与服务连续。
数据是怎么被保护和分担的:主从复制与故障切换
- 1① 选择引擎并创建实例
按需选择 MySQL、PostgreSQL 或 Aurora 等引擎与机器规格,几分钟内就得到一个可连接的数据库地址。
- 2② 所有写入先到主库
新增、修改、删除都只有一个入口,保证数据不会因为同时写入而互相覆盖。
- 3③ 数据同步到副本与存储层
写入的内容被同步到只读副本;在 Aurora 里还会自动复制到多个可用区的存储中,任何一块坏掉都不影响数据。
- 4④ 只读副本分担查询压力
报表、列表页等以读取为主的请求被分发到副本上,主库专心处理写入,整体吞吐大幅提升。
- 5⑤ 主库故障时自动切换
平台检测到主库异常后,自动把某个副本提升为新的主库并切走连接,应用通常只需重连即可恢复。
04 谁在用它
电商订单、用户账户、内容管理等都依赖关系型数据库,托管后不必再为运维操心。
把本地 MySQL、PostgreSQL 迁移到托管服务,立刻获得自动备份与故障切换能力。
资讯、社区、商品列表等场景,用只读副本承接大量查询,主库压力大幅下降。
金融、医疗等对数据不丢的要求,靠跨可用区复制与自动备份满足。
05 怎么用
创建实例只需点几下,真正的重点在于「连接要安全、备份要验证」这两件事。
- 01在控制台创建数据库实例,选择引擎版本与规格,生产环境建议开启多可用区部署。
- 02设置一个强密码,并把数据库放进只有应用能访问的私有网络,不要暴露到公网。
- 03用应用连接串连上数据库,先建表、导入少量数据,跑通一次完整读写。
- 04开启自动备份并设置保留天数,同时打开自动小版本升级以便及时获得修复。
- 05为只读流量创建只读副本,在应用里把查询请求分发过去。
- 06定期做一次「恢复演练」,确认备份真的能用,而不是只在控制台看到备份成功。
避坑提示
- !数据库是最不该暴露到公网的服务:放在私有网络里,只允许应用通过安全组访问。
- !备份做了不等于能恢复,务必定期真的恢复一次到临时实例,验证完整性。
- !Aurora 兼容 MySQL 与 PostgreSQL,但并非百分之百兼容所有特性,迁移前先做兼容性检查。
06 关键概念
- 托管数据库
- 把安装、备份、升级、故障切换都交给服务方,你只管使用数据库。
- 主从复制
- 一台主库负责写,若干副本跟随同步,主库出问题时由副本顶上。
- 只读副本
- 专门用于分担查询的数据库拷贝,只能读不能写,用来提高整体吞吐。
- 多可用区
- 把数据库同时部署在多个独立机房,单点故障时服务仍可继续。
- 故障切换
- 主库坏了之后自动把副本提升为主库的过程,无需人工介入。