AWS RDS数据库部署与扩展全解析
1. Multi - AZ部署
当应用依赖于单个RDS数据库实例时,这自然会成为应用的单点故障。若该可用区或实例出现故障,可能导致整个应用栈的全局故障。为解决此问题,可使用Multi - AZ部署。
启用Multi - AZ部署时,RDS会自动在另一个可用区配置一个备用数据库,并通过同步过程将数据复制到备用实例。每次在数据库上执行写入或提交操作时,在事务完成前,该操作也会在备用数据库上执行。
不过,与单可用区部署相比,这会导致延迟略有增加。如果应用每秒需要进行数千次数据库写入操作,这种延迟差异可能会很明显,这也意味着应用会有一定的性能成本。而且,Multi - AZ部署更昂贵,因为实际上是在双倍使用资源。
以下是Multi - AZ部署的优缺点对比:
| 优点 | 缺点 |
| ---- | ---- |
| 无需手动启动数据库备份副本应对故障 | 写入速度略有降低 |
| 有随时可用的最新备份副本 | 成本更高 |
是否采用Multi - AZ部署需要进行成本效益分析。如果应用数据库架构简单、查询简单,且用户不太可能一次执行大量写入操作,那么延迟差异可能不明显。Multi - AZ部署的性能成本取决于应用的性质、预计用户基数大小和行为。
2. 读取副本
预计数据库操作以读取为主,如果数据库的读取操作量过大(如MySQL中的SELECT查询)导致数据库出现瓶颈,将对整个应用产生连锁反应。此时,可以将部分工作卸载到读取副本。
可以创建最多五个这种类型的RDS实例,指定主数据库,并选择读取副本的区域和可用