管理 Amazon OpenSearch 无服务器的容量限制
借助 Amazon OpenSearch 无服务器,您不必自己管理容量。OpenSearch 无服务器会根据当前工作负载为您的账户自动扩缩计算容量。无服务器计算容量以 OpenSearch 计算单位(OCU)来衡量。每个 OCU 是 6GiB 内存和相应的虚拟 CPU(vCPU)以及创建到 Amazon S3 的数据管道的组合。有关 OpenSearch 无服务器中解耦架构的更多信息,请参阅工作方式。
创建首个集合时,OpenSearch 无服务器会根据冗余设置实例化 OCU。默认情况下,冗余活动副本处于启用状态,这意味着总共实例化四个 OCU(两个用于索引,两个用于搜索),以确保备用节点位于另一个可用区的高可用性。对于开发和测试目的,您可以禁用集合的启用冗余设置,这将消除备用副本,并且仅实例化两个 OCU(一个用于索引,一个用于搜索)。即使在没有索引或搜索活动时,这些 OCU 也始终存在。所有后续集合都可以共享这些 OCU(具有唯一 Amazon KMS 键的集合除外,这些集合会实例化其自身的 OCU 集合)。如果需要,OpenSearch 无服务器会随着索引和搜索使用量的增长自动横向扩展并添加额外的 OCU。当集合端点上的流量减少时,容量将缩减到数据大小所需的最少 OCU 数。对于搜索和时间序列收集,空闲状态下所需的 OCU 数量与数据大小和索引计数成正比。对于向量,这取决于存储向量图所需的内存(RAM)以及存储索引所需的磁盘空间。如果非空闲状态,OCU 要求会同时考虑这两点。
向量集合将索引数据保存在 OCU 本地存储中。达到 OCU RAM 限制的速度比 OCU 磁盘限制的速度快,导致向量集合受到 RAM 空间的限制。启用冗余后,OCU 容量将缩减至最少 1 个 OCU [0.5 个 OCU x 2] 用于索引以及最少 1 个 OCU [0.5 个 OCU x 2] 用于搜索。禁用冗余功能后,您的域可能缩减至 0.5 个 OCU 用于索引以及 0.5 个 OCU 用于搜索。扩展还需考虑集合或索引所需的分片数量。每个 OCU 可支持指定数量的分片。索引数量应与分片计数成正比。所需的基础 OCU 总数即为数据、内存和分片所需的最大数量。有关更多信息,请参阅 《Amazon 大数据博客》上的 Amazon OpenSearch Serverless cost-effective search capabilities, at any scale
对于搜索和向量搜索集合,所有数据都将存储在热索引中,以确保快速查询响应时间。时间序列集合使用热存储和温存储的组合,在热存储中保留最新数据,以优化访问频率更高的数据的查询响应时间。有关更多信息,请参阅 选择集合类型。
注意
向量搜索集合无法与搜索集合和时间序列集合共享 OCU,即使向量搜索集合使用与搜索集合或时间序列集合相同的 KMS 密钥。将为您的第一个向量集合创建一组新的 OCU。向量集合的 OCU 在相同的 KMS 密钥集合之间共享。
为了管理集合容量并控制成本,您可以指定当前账户及区域的总体最大索引和搜索容量,OpenSearch 无服务器会根据这些规范自动横向扩展集合资源。
由于索引和搜索容量单独扩缩,因此您可以为每种容量指定账户级限制:
-
Maximum indexing capacity(最大索引容量):OpenSearch 无服务器最多可将索引容量增加到此数量的 OCU。
-
Maximum search capacity(最大搜索容量):OpenSearch 无服务器最多可将搜索容量增加到此数量的 OCU。
注意
目前,容量设置仅应用于账户级。您无法配置每个集合的容量限制。
您的目标是确保最大容量足以处理工作负载峰值。根据您的设置,OpenSearch 无服务器将为集合自动横向扩展 OCU 数量,以处理索引和搜索工作负载。
配置容量设置
要在 OpenSearch 无服务器控制台中配置容量设置,请展开左侧导航窗格中的 Serverless(无服务器),然后选择 Dashboard(控制面板)。在 Capacity management(容量管理)下,指定最大索引和搜索容量:
要使用 Amazon CLI 配置容量,请发送 UpdateAccountSettings 请求:
aws opensearchserverless update-account-settings \ --capacity-limits '{ "maxIndexingCapacityInOCU":8,"maxSearchCapacityInOCU":9}'
最大容量限制
集合最多可包含 1000 个索引。对于所有三种类型的集合,默认的最大 OCU 容量为 10 个 OCU 用于索引,10 个 OCU 用于搜索。账户允许的最小 OCU 容量为 1 个 OCU [0.5 个 OCU x 2] 用于索引以及 1 个 OCU [0.5 个 OCU x 2] 用于搜索。对于所有集合,最大允许容量为 1,700 个 OCU 用于编制索引,1,700 个 OCU 用于搜索。您可以按 2 的整数倍,将 OCU 计数配置为从 1 到允许的最大容量之间的任意数字。
每个 OCU 都包含足够的热临时存储,可存储 120 GiB 的索引数据。OpenSearch 无服务器支持搜索和向量搜索集合中每个索引最多 1TiB 数据,时间序列集合中每个索引最多 100TiB 热数据。对于时间序列集合,您仍然可以摄取更多数据,这些数据可作为暖数据存储在 S3 中。
有关所有配额的列表,请参阅 OpenSearch 无服务器。
监控容量使用情况
您可以监控 SearchOCU 和 IndexingOCU 账户级 CloudWatch 指标,以了解您的集合的扩缩情况。建议您配置警报,以便在您的账户接近与容量相关的指标阈值时通知您,使您能够相应调整容量设置。
您还可以使用这些指标确定您的最大容量设置是否合适,或者是否需要调整它们。分析这些指标,以便您将精力集中在优化集合效率上。有关 OpenSearch 无服务器发送给 CloudWatch 的指标的更多信息,请参阅监控 Amazon OpenSearch 无服务器。