扩展 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. 扩展以前的主实例(现在为副本)。