使用 AWS Global Accelerator 的跨区域只读副本与单个只读副本

Cross-region Read Replicas vs One Read Replica with AWS Global Accelerator

我想知道当一个数据库实例在不同的AWS区域共享时,更推荐什么?使用跨区域只读副本还是使用原产地只读副本 + AWS Global Accelerator 更好?

是否有针对全球应用的“最佳实践解决方案”?

我没有使用 AWS 的经验,大部分内容对我来说都是全新的。所以我知道我的问题可能看起来很业余。

根据我的阅读,我认为一个集中式只读副本是更好的解决方案,因为区域之间存在延迟,但如果是这样的话,为什么有人会使用跨区域副本?

如果您的应用程序托管在某个地区,例如eu-west-1 最好的读取性能总是在从 eu-west-1.

读取数据时出现

如果您碰巧在 us-east-1 有客户,您必须在以下 3 个选项中选择一个:

边缘位置

您使用边缘位置减少延迟,即 CloudFront or Global Accelerator. This will improve the latency by using the AWS Backbone 路由到您的来源。这比以前更快,但应用程序仍保留在原始区域中(在本例中为 eu-west-1)。您还只保留一份申请副本。

基于延迟的路由

此选项使应用程序更接近用户,通过使用 Route 53 with latency based records or Global Accelerator 您可以将您的域解析到延迟最低的位置。您将拥有中心区域(读写所在的区域),然后创建跨区域副本。这将提供最佳读取性能,因为读取是在本地完成的(而不是跨区域)。

示例中 eu-west-1 是主区域,在 us-east-1 中有跨区域副本。区域之间的延迟仅在写入读写所需的时间中观察到(在原始区域中,除非您使用 Aurora Read Replica Write Forwarding)。这是迄今为止最复杂、成本最高的,但总体性能最佳。

什么都不做

如果您什么都不做,此选项将使用 public 互联网路由到主机,那些距离您的应用程序较远的主机会有更长的延迟,但这是最便宜的选项。

总结

您需要从根本上确定跨区域的重要性,如果仅仅是因为您的用户群位于较远的区域,那么确保您尽可能接近他们是关键。如果您位于特定地理区域,则无需考虑副本。

请记住,当其他地理区域的需求增加时,您始终可以增强基础设施。