最近我正在考虑在生产环境中使用 Amazon RDS Multi-AZ 部署服务,并且我已经阅读了相关文档。
但是,我有一个关于故障转移的问题。在 Amazon RDS 的 FAQ 中,failover 是这样描述的:
问:多可用区故障转移期间会发生什么,需要多长时间?
故障转移由 Amazon RDS 自动处理,因此您可以在无需管理干预的情况下尽快恢复数据库操作。故障转移时,Amazon RDS 只需翻转您的数据库实例的规范名称记录 (CNAME) 以指向备用数据库实例,而备用数据库又被提升为新的主数据库实例。我们鼓励您遵循最佳实践并在应用层实现数据库连接重试。故障转移时间是完成崩溃恢复所需时间的函数。从头到尾,故障转移通常在三分钟内完成。
从上面的描述,我想肯定有一个监控服务可以检测到主实例的故障并进行翻转。
我的问题是,这个监控服务托管在哪个AZ?有 3 种可能性: 1. 与主 AZ 相同 2. 与备用 AZ 相同 3. 另一个 AZ
显然 1&2 不会是这种情况,因为它无法处理整个 AZ 不可用的情况。那么,如果是3的话,监控服务的AZ宕机了怎么办?是否有其他服务可以监控此监控服务?这似乎是一个无尽的多米诺骨牌。
那么,亚马逊如何确保 RDS 在多可用区部署中的可用性?