理解和优化 AWS Aurora 全局数据库

AWS Aurora Database 支持全局多区域设置,包括主区域和辅助区域。使用 Aurora Global 时,默认设置很好,但了解所有可用的配置选项以及它们如何协同工作可以节省时间和精力。本文详细解释了全局转发及其影响,这是一个非常方便的设置,允许应用程序从主区域和辅助区域运行的应用程序进行读写。

Aurora Defaults

  • Aurora Global Database 在主区域设置一个写入器和一个读取器,在辅助区域设置一个读取器和一个备用写入器实例。备用写入器在区域故障转移期间将提升为写入器,此时辅助区域变为主区域。
  • 创建端点以连接到 4 个实例中的 3 个(如图 1 所示):一个读写端点用于与主写入器交互,一个只读端点用于与主读取器交互,一个读副本端点用于与辅助读取器交互。
  • 根据安全组的配置,这些端点可以从两个区域访问,但仅与各自的数据库实例交互。此默认设置最适合作为活动备用设置,其中辅助区域的应用程序可以可用,但不主动服务任何涉及数据库连接的流量。配置跨区域访问是可能的,但维护起来不方便。
  • 可以启用全局端点,默认情况下它代理主区域写入器端点。全局端点的目的是,当区域故障转移事件发生时,使用该端点的应用程序不需要更改,在这种情况下,全局端点会切换到指向新提升的写入器。此设置可与主动 - 主动计算一起使用,当在两个区域中使用相同的全局端点时,应用程序可以容忍在辅助区域中涉及数据库访问的任何地方的延迟。

Global Write Forwarding

  • 结合默认设置和全局端点的使用,对于区域故障转移场景非常好。
  • 如果应用程序编写为使用全局端点进行写入并使用本地读取器端点进行读取,则需要关注在读取繁重/写入繁重的工作负载中共享负载。可用的设置之一是启用写入转发
  • 启用此设置后,使用来自辅助区域的全局端点,在本地读取并写入主区域,无需任何额外的应用程序代码在读取和写入之间切换。
  • 此设置仅对辅助集群有效。主区域需要额外的代码来分离读取和写入。
  • 对于读取繁重的应用程序,这非常好,使它们保持主动 - 主动,提供低延迟的本地数据库读取。然而,这带来了分布式数据一致性的挑战。

Replication Lag

  • 如果区域之间的复制存在延迟,基于一致性配置的写入转发可能无法按预期工作。恢复点目标设置控制延迟,默认设置为 1 分钟,意味着 Aurora 尝试将延迟保持在 1 分钟以下;可以调整,但不能低于 20 秒。此设置会阻止事务,直到延迟清除以维护数据完整性。在更改默认设置之前,请确保您的应用程序能够容忍延迟和数据完整性权衡。

Conclusion

  • 了解 Aurora 数据库可用的配置选项及其权衡有助于为工作负载选择最佳设置。默认设置是一个好的起点,但有时我们会艰难地了解权衡,例如在生产事件中,当设置在特定条件下失败时。在使用它们之前,充分了解应用程序吞吐量、数据访问模式和相关配置。
阅读 35
0 条评论