一家公司在RDS for MySQL上托管一个Web应用程序,该应用程序有一个主数据库实例和五个只读副本。副本的延迟不能超过主数据库1秒。数据库运行计划存储过程,并且在高峰负载期间副本的延迟会增加。解决方案架构师必须尽可能减少复制延迟,同时最大程度地减少应用程序代码更改和持续的运营开销。哪种解决方案满足这些要求?
选择一个答案
点击一个选项来检查您的答案。
正确答案: 将数据库迁移到Amazon Aurora MySQL。用Aurora Replicas替换只读副本,并配置Aurora Auto Scaling。用Aurora MySQL原生函数替换存储过程。.
为什么这是答案
将数据库迁移到Amazon Aurora MySQL是最佳解决方案。Aurora Replicas共享相同的底层存储卷,因此复制延迟通常在毫秒级别,远低于1秒的要求。Aurora Auto Scaling可以根据负载自动调整副本数量,减少运营开销。将存储过程替换为Aurora MySQL原生函数,可以利用Aurora的优化性能,并避免存储过程可能导致的复制延迟问题。
其他选项不合适:
ElastiCache for Redis可以减少读取负载,但不能直接解决复制延迟问题,且需要修改应用程序代码,增加了复杂性。
在EC2实例上运行MySQL需要手动管理复制和扩展,增加了运营开销,且无法保证复制延迟在1秒以内。
DynamoDB是NoSQL数据库,与MySQL的SQL范式完全不同,迁移需要大量应用程序代码重构,不符合“最大限度地减少应用程序代码更改”的要求。