这个问题……问的特别好!
我在官网上查到了这张表,我觉得足够说明问题:
| Multi-AZ deployments | Multi-Region deployments | Read replicas |
| Main purpose is high availability | Main purpose is disaster recovery and local performance | Main purpose is scalability |
| Non-Aurora: synchronous replication; Aurora: asynchronous replication | Asynchronous replication | Asynchronous replication |
| Non-Aurora: only the primary instance is active; Aurora: all instances are active | All regions are accessible and can be used for reads | All read replicas are accessible and can be used for readscaling |
| Non-Aurora: automated backups are taken from standby; Aurora: automated backups are taken from shared storage layer | Automated backups can be taken in each region | No backups configured by default |
| Always span at least two Availability Zones within a single region | Each region can have a Multi-AZ deployment | Can be within an Availability Zone, Cross-AZ, or Cross-Region |
| Non-Aurora: database engine version upgrades happen on primary; Aurora: all instances are updated together | Non-Aurora: database engine version upgrade is independent in each region; Aurora: all instances are updated together | Non-Aurora: database engine version upgrade is independent from source instance; Aurora: all instances are updated together |
| Automatic failover to standby (non-Aurora) or read replica (Aurora) when a problem is detected | Aurora allows promotion of a secondary region to be the master | Can be manually promoted to a standalone database instance (non-Aurora) or to be the primary instance (Aurora) |
从初衷来说,Multi-AZ的目的是高可用性,Multi-Region的目的是灾难恢复,而Read-Replica是扩展。
其他特别要说明的,是除了non-Aurora的Multi-AZ是同步备份外,其他各种,包括Read-Replica都是异步的。
