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

什么是 Amazon OpenSearch 无服务器?

Amazon OpenSearch 无服务器是一种适用于 Amazon OpenSearch Service 的按需无服务器选项,可消除预置、配置和调整 OpenSearch 无服务器的操作复杂性。对于不愿自行管理集群,或缺乏运营大规模部署所需的专职资源和专业知识的企业而言,这是理想之选。借助 OpenSearch 无服务器,无需管理底层基础设施即可搜索和分析海量数据。

OpenSearch 无服务器集合是一组 OpenSearch 索引,它们协同工作,为特定工作负载或应用场景提供支持。相比自行管理的 OpenSearch 集群,集合可简化操作,前者需要手动预调配。

集合使用与预置 OpenSearch Service 域相同的高容量、分布式和高可用存储,但因无需手动配置和调整而进一步降低复杂性。集合中的数据采用加密中传输。OpenSearch 无服务器还支持 OpenSearch 控制面板,为数据分析提供相关界面。

无服务器集合目前运行 OpenSearch 版本 2.17.x。随着新版本的发布,OpenSearch 无服务器可自动升级集合,以整合新功能、错误修复和性能改进。

OpenSearch 无服务器支持与 OpenSearch 开源套件相同的摄取和查询 API 操作,因此您可以继续使用现有的客户端和应用程序。您的客户端必须与 OpenSearch 2.x 兼容,以便与 OpenSearch 无服务器配合使用。有关更多信息,请参阅 将数据摄取到 Amazon OpenSearch 无服务器集合中

OpenSearch 无服务器的应用场景

OpenSearch 无服务器支持两个主要应用场景:

  • 日志分析:日志分析部分专注于分析大量半结构化、机器生成的时间序列数据,以了解操作和用户行为。

  • 全文搜索:全文搜索部分可为内部网络中的应用程序(内容管理系统、法律文档)和面向互联网的应用程序(如电子商务网站内容搜索)提供支持。

在创建集合时,您可以选择以下应用场景之一。有关更多信息,请参阅 选择集合类型

工作方式

传统的 OpenSearch 集群只有一组同时执行索引和搜索操作的实例,并且索引存储与计算容量紧密结合。相比之下,OpenSearch 无服务器使用云原生架构,将索引(摄取)组件与搜索(查询)组件分开,同时将 Amazon S3 作为索引的主要数据存储。

这种分离架构使您可以独立扩展搜索和索引功能,并且独立于 S3 中的索引数据。这种架构还为摄取和查询操作提供了隔离,使它们可以同时运行,而不会发生资源争用。

当您将数据写入集合时,OpenSearch 无服务器会将其分发到索引计算单位。索引计算单位将摄取传入数据,并将索引移至 S3。当您对集合数据执行搜索时,OpenSearch 无服务器会将请求路由到保存被查询数据的搜索计算单位。搜索计算单位直接从 S3 下载索引数据(如果这些数据尚未在本地缓存),运行搜索操作,然后执行聚合。

下图阐明了这种分离架构:

Diagram showing indexing and search processes using compute units and Amazon S3 storage.

用于数据摄取、搜索和查询的 OpenSearch 无服务器计算容量以 OpenSearch 计算单位(OCU)进行衡量。每个 OCU 是 6GiB 内存和相应的虚拟 CPU(vCPU)以及创建到 Amazon S3 的数据管道的组合。每个 OCU 都包含足够的热临时存储,可存储 120 GiB 的索引数据。

当您创建第一个集合时,OpenSearch 无服务器会实例化两个 OCU,一个用于索引,一个用于搜索。为了确保高可用性,它还会在另一个可用区中启动一组备用节点。对于开发和测试目的,您可以禁用集合的启用冗余设置,这将消除两个备用副本,并且仅实例化两个 OCU。默认情况下,冗余活动副本已启用,这意味着总共为账户中的第一个集合实例化了四个 OCU。

即使在任何集合端点上都没有活动,这些 OCU 也仍然存在。所有后续集合都将共享这些 OCU。当您在同一账户中创建其他集合时,OpenSearch 无服务器仅会根据您指定的容量限制,按照支持集合的需要添加额外的 OCU,用于搜索和摄取。容量会随着计算使用量的减少而缩减。

有关如何为这些 OCU 计费的信息,请参阅定价

选择集合类型

OpenSearch 无服务器支持三种主要集合类型:

时间序列:实时分析机器生成的大量半结构化数据的日志分析部分,用于深入了解操作、安全性、用户行为和业务方面的情况。

搜索:全文搜索功能,既可支持内部网络中的应用程序(如内容管理系统和法律文件库),也能满足面向互联网的应用程序需求(如电子商务网站搜索和内容发现)。

向量搜索:对向量嵌入执行语义搜索,可简化向量数据管理,并实现机器学习(ML)增强的搜索体验。该搜索支持生成式人工智能应用程序,例如聊天机器人、个人助理和欺诈检测。

在首次创建集合时,您可以选择一种集合类型:

Three collection type options: Time series, Search, and Vector search for different data use cases.

您选择的集合类型取决于您计划摄取到集合中的数据类型,以及您计划如何查询这些数据。在创建集合后,您将无法更改集合类型。

集合类型有以下显著差异

  • 对于搜索向量搜索集合,所有数据都将存储在热存储中,以确保快速查询响应时间。时间序列集合使用热存储和温存储的组合,其中最新数据保存在热存储中,以优化访问频率更高的数据的查询响应时间。

  • 对于时间序列向量搜索集合,无法按自定义文档 ID 编制索引,也无法按 upsert 请求进行更新。此操作是为搜索应用场景保留的。您可以改为按文档 ID 进行更新。有关更多信息,请参阅 受支持的 OpenSearch API 操作和权限

  • 对于搜索时间序列集合,不能使用 k-NN 类型的索引。

定价

Amazon 对以下 OpenSearch 无服务器组件收取费用:

  • 数据摄取计算

  • 搜索和查询计算

  • 保留在 Amazon S3 中的存储

一个 OCU,包括 6 GB 的 RAM、相应的 vCPU、GP3 存储以及到 Amazon S3 的数据传输。可能计费的最小单位为 0.5 个OCU。Amazon 按小时对 OCU 进行计费,精确到秒。在您的账户对账单中,您会看到按 OCU 小时数计算的条目,其中包含用于数据摄取的标签和用于搜索的标签。Amazon 还会按月对存储在 Amazon S3 中的数据进行计费。使用 OpenSearch 控制面板无需付费。

创建包含冗余活动副本的集合时,您需要为至少 2 个 OCU 付费:

  • 1 个 OCU(0.5 个 OCU x 2)用于提取,包括主单位和备用单位

  • 1 个 OCU(0.5 个 OCU x 2)用于搜索

如果禁用冗余活动副本,则需为用于账户中第一个集合的至少 1 个 OCU(0.5 个 OCU x 2)付费。所有后续集合均可共享这些 OCU。

OpenSearch 无服务器将根据支持集合所需的计算能力和存储大小,以 1 个 OCU 为单位增加额外的 OCU。您可以为自己的账户配置 OCU 的最大数量,以控制成本。

注意

具有唯一 Amazon KMS keys 的集合无法与其他集合共享 OCU。

OpenSearch 无服务器会尝试使用最低的必需资源来满足不断变化的工作负载需要。任何时间配置的 OCU 数量可能不同,而且不准确。OpenSearch 无服务器使用的算法将不断改进,以更好地减少系统使用量。

有关完整的定价详情,请参阅 Amazon OpenSearch Service 定价

支持 Amazon Web Services 区域

对于可以使用 OpenSearch Service 的 Amazon Web Services 区域,只有其中一部分可以使用 OpenSearch 无服务器。有关受支持区域的列表,请参阅 Amazon Web Services 一般参考 中的 Amazon OpenSearch Service 端点和配额

限制

OpenSearch 无服务器具有以下限制:

  • 不支持某些 OpenSearch API 操作。请参阅受支持的 OpenSearch API 操作和权限

  • 不支持某些 OpenSearch 插件。请参阅受支持的 OpenSearch 插件

  • 目前无法将您的数据从托管 OpenSearch Service 域自动迁移到无服务器集合。您必须将数据从域重新索引到集合。

  • 不支持跨账户存取集合。您不能将来自其他账户的集合包括在您的加密或数据访问策略中。

  • 不支持自定义 OpenSearch 插件。

  • 您无法拍摄或恢复 OpenSearch 无服务器集合的快照。

  • 不支持跨区域搜索和复制。

  • 对于您在一个账户和区域中可以拥有的无服务器资源的数量存在限制。请参阅 OpenSearch 无服务器配额

  • 向量搜索集合中索引的刷新间隔约为 60 秒。搜索集合和时间序列集合中索引的刷新间隔约为 10 秒。

  • 分片数、间隔数和刷新间隔不可修改,由 OpenSearch 无服务器处理。分片策略基于集合类型和流量。例如,时间序列集合根据写入流量瓶颈扩展主分片。

  • 支持 OpenSearch 2.1 及以下版本提供的地理空间功能。