扩展 Amazon DocumentDB 集群 - Amazon DocumentDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

扩展 Amazon DocumentDB 集群

Amazon DocumentDB 使用,您能够根据需求扩展集群中的存储和计算。此部分介绍如何使用存储扩展、实例扩展和读取扩展来管理 Amazon DocumentDB 集群和实例的性能和扩展。

存储扩展

Amazon DocumentDB 存储自动使用您的集群卷中的数据进行扩展。当数据量增多时,您的集群卷存储将以 10 GiB 增量递增,最多达 64 TiB。

实例扩展

您可以通过修改集群中每个实例的实例类来按需扩展您的 Amazon DocumentDB 集群。Amazon DocumentDB 支持多个针对 Amazon DocumentDB 进行优化的实例类。

有关更多信息,请参阅 修改 Amazon DocumentDB 实例

读取扩展

您可以通过在集群中创建最多 15 个 Amazon DocumentDB 副本来实现针对 Amazon DocumentDB 集群的读取扩展。每个 Amazon DocumentDB 副本均返回集群卷中的相同数据,且副本滞后时间最短-通常大小于主实例写入更新后的 100 毫秒。当读取流量增大时,可创建额外 Amazon DocumentDB 副本并直接连接到这些副本以为您的集群分配读取负载。Amazon DocumentDB 副本不必具有与主实例相同的实例类。

有关更多信息,请参阅 将 Amazon DocumentDB 实例添加到集群

要对 Amazon DocumentDB 进行读取扩展,建议您以副本集形式连接到集群,并使用驱动程序的内置读取首选项功能将读取操作分布到副本实例。有关详细信息,请参阅 作为副本集连接到 Amazon DocumentDB

写入扩展

您可以通过增加集群的主实例的大小来扩展 Amazon DocumentDB 集群上的写入容量。此部分提供了两种方法来根据您的需求扩展集群的主实例。第一种方法旨在最大程度地减小应用程序影响,但需要执行更多步骤才能完成。第二种方法经过了优化,需要的步骤更少,因此更简单,但它会对应用程序产生更多的潜在影响,这需要您做出权衡。

根据您的应用程序,可以从下面选择最适合您的方法。有关可用实例大小和成本的更多信息,请参阅Amazon DocumentDB 定价页.

  1. 高可用性和性能的优化— 如果您要连接到副本集模式(推荐),您可以使用以下过程将扩展主实例时对应用程序产生的影响减至最小。此方法可以最大程度地减小影响,因为它可确保集群的可用性保持一个较高的水平甚至更高,并且读取扩展目标将作为实例添加到集群中,而不是进行就地更新。

    1. 将较大的实例类型的一个或多个副本添加到集群中(请参阅将 Amazon DocumentDB 实例添加到集群)。我们建议所有副本具有与主实例相同的实例类型甚至更大的实例类型。这可避免因故障转移到较小的实例类型而意外降低写入性能。对于大多数客户而言,这意味着暂时将其集群中的实例数增加一倍,然后在扩展完成后删除较小的副本。

    2. 将所有新副本上的故障转移层设置为优先级零,并确保较小实例类型的副本具有最高的故障转移优先级。有关更多信息,请参阅 控制故障转移目标

    3. 启动手动故障转移,这会将其中一个新副本提示为主实例。有关更多信息,请参阅 测试故障转移

      注意

      这将导致您的集群停机约 30 秒。请相应地做好规划。

    4. 从集群中删除小于新主实例的实例类型的所有副本。

    5. 将所有实例的故障转移层设置回相同的优先级(通常,这意味着将其设置回 1)。

    例如,假设您的集群当前包含三个 r5.large 实例(一个主实例和两个副本实例),并且您希望扩展到一个 r5.xlarge 实例类型。为此,您首先将三个 r5.xlarge 副本实例添加到集群中,然后将新 r5.xlarge 副本的故障转移层设置为零。接下来,您将启动手动故障转移(这意味着您的应用程序将停机约 30 秒)。在故障转移完成后,您将从集群中删除所有三个 r5.large 实例,并让集群扩展到 r5.xlarge 实例。

    为了帮助优化成本,Amazon DocumentDB 实例以一秒为增量计费,最低收取 10 分钟的费用,然后提供可计费状态更改(例如创建、修改或删除实例)。有关更多信息,请参阅最佳实践文档中的成本优化

  2. 提高简单性— 此方法优化了简单性。它不会扩展和收缩群集,但它可能会暂时减少您的读取容量。

    更改副本的实例类可能会导致该实例在短时间内无法为请求提供服务,从几秒钟到不到 30 秒。如果您要连接到副本集模式(推荐),那么这会在扩展操作期间将您的读取容量减少一个副本(例如,3 节点群集中的容量减少到 66%,或者 4 节点群集中的 75% 容量等)。

    1. 扩展集群中的副本实例之一。有关更多信息,请参阅 管理实例类

    2. 等到实例可用(请参阅监控 Amazon DocumentDB 实例的状态)。

      注意

      这将导致您的集群停机约 30 秒。请相应地做好规划。

    3. 继续执行步骤 1 和 2,直到所有副本实例逐一扩展。

    4. 启动手动故障切换。这会将其中一个副本提示为主实例。有关更多信息,请参阅 Amazon DocumentDB 故障转移

      注意

      这将导致您的集群停机多达 30 秒,但通常需要较短的时间。请相应地做好规划。

    5. 扩展以前的主实例(现为副本)。