使用 Amazon DocumentDB 无服务器 - Amazon DocumentDB
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用 Amazon DocumentDB 无服务器

Amazon DocumentDB 无服务器是一种按需自动扩缩配置,可根据应用程序需求自动执行动态调整 Amazon DocumentDB 数据库容量的过程。您只需为集群使用的资源付费。因此,DocumentDB 无服务器可以帮助您保持在预算范围内,避免为不使用的计算机资源付费。

这种自动化对于具有高度可变且不可预测工作负载的环境(例如多租户数据库、分布式数据库、开发和测试系统)尤为重要。

DocumentDB 无服务器使用案例

Amazon DocumentDB 预置集群和 DocumentDB 无服务器均支持多种类型的数据库工作负载,从开发和测试环境到最严苛的业务关键型应用程序(需要高扩展性和高可用性)。但是 DocumentDB 无服务器为客户工作负载增加了另一个维度,即能够支持工作负载不可预测的网站和应用程序。

DocumentDB 无服务器对于以下使用案例特别有用:

  • 可变工作负载 – 您运行的工作负载会突然出现无法预测的活动增加。例如,在开始下雨时显示活动涌现的流量网站。另一个例子是当您提供销售或特别促销活动时流量会增加的电子商务网站。借助 DocumentDB 无服务器,您的数据库可自动扩展容量以满足应用程序的峰值负载需求,然后在活动涌现结束时再缩减。借助 DocumentDB 无服务器,您不再需要为峰值或平均容量进行预置。您可以指定容量上限来应对最糟糕情况,除非确实需要该容量,否则不使用该容量。

    • DocumentDB 无服务器中的扩缩粒度帮助您使容量与数据库的需求紧密匹配。对于预置的集群,扩展需要添加一个全新的实例。当仅需少量额外容量时,DocumentDB 无服务器可以增加半个 DCU。它可以DCUs 根据处理工作负载增加所需的额外容量增加 0.5、1、1.5、2 或额外的一半。而且,当工作负载减少并且不再需要该容量DCUs 时,它可以移除 0.5、1、1.5、2 或额外的一半。

  • 多租户应用程序 – 借助 DocumentDB 无服务器,您无需为实例集中的每个应用程序单独管理数据库容量。DocumentDB 无服务器为您管理单个数据库容量。

    • 您可为每个租户创建一个集群。这样,您就可以视情况使用克隆和快照恢复等功能为每个租户增强高可用性和灾难恢复。

    • 根据一天中的时间、一年中的时间、促销活动等,每个租户可能有特定的忙碌和空闲时段。每个集群都有宽容量范围。这样,活动量较少的集群将产生更低的实例费用。任何集群都可以快速扩展以应对活动较多的时期。

  • 新应用程序 – 您正在部署新应用程序,但不确定所需的实例大小。通过使用 DocumentDB 无服务器,您可以设置具有一个或多个实例的集群,并让数据库根据应用程序的容量需求自动扩展。

  • 混合用途应用程序 – 假设您有一个联机事务处理(OLTP)应用程序,但是您会周期性地经历查询流量高峰。通过在集群中指定 DocumentDB 无服务器实例的提升层,您可以将集群配置为让读取器实例可以独立于写入器实例进行扩展以处理额外负载。当使用高峰消退时,读取器实例会缩减以匹配写入器实例的容量。

  • 容量规划 – 假设您通常通过修改集群中所有实例的实例类来调整数据库容量,或者验证工作负载的最佳数据库容量。借助 DocumentDB 无服务器,您可以避免产生此管理开销。您可以通过运行工作负载并检查实例实际扩展的程度来确定适当的最小和最大容量。

    • 您可以将现有实例从预置修改为 DocumentDB 无服务器或者从 DocumentDB 无服务器修改为预置。在此类情况下,您无需创建新集群或新实例。

  • 开发和测试 – 除了运行要求最严苛的应用程序外,您还可以将 DocumentDB 无服务器用于开发和测试环境。借助 DocumentDB 无服务器,您可以创建最低容量较低的实例,而不是使用可突增的 db.t* 实例类。您可以将最大容量设置得足够高,以便这些实例仍然可以运行大量工作负载,而不会出现内存不足的情况。当数据库未在使用时,所有实例都会缩减以避免产生不必要的费用。

使用 Amazon DocumentDB 无服务器处理现有的预置工作负载

假设您已在预置集群上运行 DocumentDB 应用程序。您可以将一个或多个 DocumentDB 无服务器实例作为读取器实例添加到现有集群,检查应用程序将如何与 DocumentDB 无服务器配合使用。您可以查看读取器实例扩展和缩减的频率。您可以使用 DocumentDB 故障转移机制将 DocumentDB 无服务器实例提升为写入器,并检查它如何处理工作负载。 read/write 这样,您可以在最短的停机时间内进行切换,而且无需更改客户端应用程序使用的端点。有关将现有集群转换为 DocumentDB 无服务器的过程的详细信息,请参阅 迁移到 Amazon DocumentDB 无服务器

Amazon DocumentDB 无服务器的优势

DocumentDB 无服务器适用于可变或“高峰”工作负载。对于此类不可预测的工作负载,您可能难以规划何时更改数据库容量。使用熟悉的机制(例如添加实例或更改实例类),您可能也难以足够快地进行容量更改。DocumentDB 无服务器提供了以下优势来帮助处理此类使用案例:

  • 比预置更简单的容量管理 – DocumentDB 无服务器减少了规划实例大小和随着工作负载变化调整实例大小的工作量。此外,还可以减少为集群中的所有实例维持一致容量的工作量。

  • 在活动较多的时期更快、更轻松地扩展 – DocumentDB 无服务器可根据需要扩展计算和内存容量,而无需中断客户端事务或总体工作负载。借助 DocumentDB 无服务器,能够使用读取器实例,除了垂直扩缩外,还可以帮助您利用水平扩缩。

  • 在活动量较少的期间经济高效 – DocumentDB 无服务器帮助您避免超额配置实例。当实例扩展时,DocumentDB 无服务器以细粒度增量添加资源。您只需为所使用的数据库资源付费。DocumentDB 无服务器资源使用情况按秒计量。这样,当实例缩减时,会立即注册减少的资源使用量。

  • 与预置同等的功能 – 您可以在 DocumentDB 无服务器中使用所有 DocumentDB 功能。例如,使用 DocumentDB 无服务器,您可以使用读取器实例、 Amazon Identity and Access Management (IAM) 数据库身份验证和 Performance Insights。

    特别是,借助 DocumentDB 无服务器,您可以利用预置集群的以下功能:

    • 读取器实例 – DocumentDB 无服务器可以利用读取器实例进行横向扩展。当集群包含一个或多个读取器实例时,如果写入器实例出现问题,集群可以立即进行失效转移。

    • 多可用区集群 — 您可以将集群的 DocumentDB 无服务器实例分发到多个可用区 ()。AZs设置多可用区集群有助于确保业务连续性,甚至在极少数情况下会出现影响整个可用区的问题。