当使用 Amazon OpenSearch Service 处理时间敏感的数据,如服务器日志、服务日志、应用程序日志、点击流或事件流时,存储成本是实现整体解决方案的主要驱动因素之一。在过去一年中,OpenSearch Service 发布了一系列新功能,使您可以在不同存储层次中存储日志数据,帮助您权衡数据延迟、持久性和可用性。2023 年 10 月,OpenSearch Service 宣布支持 im4gn 数据节点,提供高达 30 TB 的 NVMe SSD 存储。在 2023 年 11 月,OpenSearch Service 引入了 or1 实例系列,这一系列针对 OpenSearch 进行了优化,内部基准测试显示其性价比比现有实例提升了 30。它还使用 Amazon Simple Storage Service (S3) 提供 11个9的持久性。最后,在 2024 年 5 月,OpenSearch Service 宣布与 Amazon S3 的零 ETL 集成正式推出。这些新特性与 OpenSearch 现有的 UltraWarm 实例 相结合,后者每 GB 存储成本减少了高达 90,并且 UltraWarm 还具有冷存储选项,使您能够分离 UltraWarm 索引,并将少访问数据安全存储在 Amazon S3 中。
本文通过示例帮助您理解成本、延迟、吞吐量、数据持久性与可用性、数据保留和数据访问方面的权衡,以便选择正确的部署方案,最大化数据的价值并最小化成本。
设计日志解决方案时,您需要清晰定义需求,以便进行明智的权衡。仔细审视您的延迟、持久性、可用性和成本要求。此外,考虑选择哪些数据发送到 OpenSearch Service、数据保留多长时间以及您计划如何访问这些数据。
在本讨论中,我们将 OpenSearch 实例存储分为两类:临时存储和基于 Amazon S3 的存储。临时存储类包括使用非易失性内存 express SSDNVMe SSD和 Amazon Elastic Block Store 的 OpenSearch 节点。基于 S3 的存储类则包括 UltraWarm 节点、UltraWarm 冷存储、or1 实例以及通过零 ETL 访问的 Amazon S3 存储。在设计日志解决方案时,请考虑以下几点:
延迟:如果您需要毫秒内的结果,则必须使用临时存储。如果可以接受几秒或几分钟的延迟,您可以通过使用基于 S3 的存储来降低成本。吞吐量:一般而言,临时存储实例会提供更高的吞吐量。使用 NVMe SSD 的实例如 im4gn通常提供最佳吞吐量,而 EBS 卷也提供良好的吞吐量。or1 实例利用 Amazon EBS 存储主分片,同时使用 Amazon S3 进行段复制 降低复制的计算成本,因此提供的索引吞吐量可与 NVMe 实例相媲美,甚至超过它们。数据持久性:存储在热层中的数据您将其作为数据节点部署具有最低的延迟,但也具有最低的持久性。OpenSearch Service 通过副本提供热层数据的自动恢复,能够提供持久性,但同时增加成本。OpenSearch 存储在 Amazon S3 中的数据包括 UltraWarm、UltraWarm 冷存储、零 ETL 与 Amazon S3 及 or1 实例都可以享受来自 Amazon S3 的 11 个9的持久性保障。数据可用性:根据 最佳实践,应通过临时存储的数据使用副本。拥有至少一个副本时,即使在节点故障期间,您也可以继续访问所有数据。然而,每个副本都会增加多倍的成本。如果您能容忍短暂的不可用性,可以通过 or1 实例和基于 S3 的存储来减少副本数量。保留:所有存储层的数据都会产生成本。您保留数据进行分析的时间越长,累积成本就越高。确定在数据失去全部价值之前,您最多必须保留数据的时间。在某些情况下,合规要求可能会限制您的保留窗口。数据访问:基于 Amazon S3 的存储实例通常具有更高的存储与计算比,提供成本节约,但对于高流量工作负载的计算能力不足。如果您有高查询量,或查询涉及大量数据,临时存储是合适的选择。直接查询基于 S3 的存储非常适合查询量大且查询的数据不常访问的情况。在考虑这些维度的要求时,您的回答将指导您实施的选择。以下部分将通过扩展示例帮助您进行权衡。

要理解如何计量 OpenSearch Service 的部署成本,您需要掌握成本维度。OpenSearch Service 有两种不同的部署选项:托管集群和无服务器。这篇文章只考虑托管集群,因为 Amazon OpenSearch Serverless 已经为您分层数据并管理存储。当您使用托管集群时,您需要配置数据节点、UltraWarm 节点和集群管理节点,并为每个功能选择 Amazon Elastic Compute Cloud (Amazon EC2) 实例类型。OpenSearch Service 为您部署和管理这些节点,并通过 REST 端点提供 OpenSearch 和 OpenSearch Dashboards。您可以选择基于 Amazon EBS 的实例或使用 NVMe SSD 驱动的实例。OpenSearch Service 对您托管集群中的实例收取每小时费用。如果您选择基于 Amazon EBS 的实例,服务将收取您所配置的存储费用和任何 配置的预配置 IOPS。如果您选择 or1 节点、UltraWarm 节点或 UltraWarm 冷存储,OpenSearch Service 将根据 Amazon S3 消耗的存储量进行收费。最后,服务 根据数据传出量收费。
迅猛兔加速器入口我们通过一个示例用例来研究成本与性能之间的权衡。这一示例的成本和规模基于最佳实践,并具有方向性。虽然您可以预期看到类似的节省效果,但所有工作负载都是独特的,您的实际成本可能与本文呈现的差异很大。
以 Fizzywig一个虚构的公司为例,它是一家大型软饮料制造商。他们在生产线上生成大量日志,最初他们的小规模物流部署每天生成 10 GB 的日志。如今,这一数字增长至每天 3 TB 的日志数据,管理层要求减少成本。Fizzywig 利用其日志数据进行事件调试和分析,以及保留一年的历史分析。让我们计算在 OpenSearch Service 中存储和使用这些数据的成本。
Fizzywig 当前的部署是 189 个 r6g12xlargesearch 数据节点没有 UltraWarm 层,使用临时存储。当您在 OpenSearch Service 中索引数据时,OpenSearch 会构建并存储索引数据结构,通常比源数据大约 10。您需要保留 25 的可用存储空间以应对操作开销。每天 3 TB 的原始数据会使用 4125 TB 的存储来存储第一份主副本,包括开销。Fizzywig 遵循最佳实践,使用两个副本以实现数据的最大持久性和可用性,同时使用 OpenSearch Service 多可用区与待命 选项,使得每日的存储需求增加到 12375 TB。如果要存储 1 年的数据,需要将其乘以 365 天,总共 45 PB 的存储需求。
为了配置如此多的存储,他们也可以选择 im4gn16xlargesearch 实例或 or116xlargesearch 实例。以下表格显示每种实例类型的实例计数,适用于一份、两份或三份副本。
每个节点最大存储 (GB)主副本1份主副本副本2份主副本2个副本3份im4gn16xlargesearch3000052104or116xlargesearch360004284r6g12xlargesearch2400063126上述表格及随后的讨论严格基于存储需求。or1 实例和 im4gn 实例提供的吞吐量高于 r6g 实例,这将进一步降低成本。节省的计算能力因工作负载和实例类型而异,范围在 1040 之间。这些节省并不会直接转化为利润,仍需要调整索引和分片策略以充分实现。前面的表格及后续计算假设这些部署在计算上存在过度配置,且存储绑定。如果您需要在计算能力上进行更高的扩展,则 or1 和 im4gn 的节省会显得更为明显。
下表显示三个不同实例类型在三种不同数据存储规模下的总集群成本。这些基于 美国东部弗吉尼亚北部AWS 区域的按需费用,包括实例小时费用、or1 实例的 Amazon S3 成本以及 r6g 和 or1 实例的 Amazon EBS 存储费用。
主副本1份主副本副本2份主副本2个副本3份im4gn16xlargesearch39771457954290or116xlargesearch46919529354996r6g12xlargesearch44205858841170此表提供了针对45 PB 工作负载的一份副本、两份副本和三份副本的费用包括 Amazon S3 和 Amazon EBS 的费用,如适用。在此文章中,“一份副本”指的是第一份数据副本,复制因子设置为零。“两份副本”表示所有数据都有一份副本,“三份副本”则是包括一主两副。可以看到,每个副本都会增加解决方案的费用。当然,每个副本同时也提供了数据的可用性和持久性。在只保留一份副本的情况下,您在单个节点故障时将面临数据丢失的风险对于 or1 实例则有例外。以一份和两份副本进行故障时,您可能会在两个节点故障情况下丧失部分或所有数据。若有两份副本,只有在三个节点故障时才可能丧失数据。
or1 实例的情况则有所不同。这些实例能够支持一份副本的部署。这些实例把所有索引数据写入 Amazon S3,作为一种复制和持久性手段。由于所有已确认的写入都驻留在 Amazon S3 中,您可以在仅使用一份副本的情况下运行,但会面临在节点故障时数据可用性丧失的风险。如果数据节点变得不可用,任何受影响的索引将在恢复窗口期间变为不可用红色显示,通常是 1020 分钟。请仔细评估您是否能承受这种不可用性,考虑到客户与系统例如,大型缓冲区能否承受此情况。如果可以,您可以将成本从1400万美元降低到470万美元,依据上面表格中展示的一份副本主副本列。
OpenSearch 服务支持保留实例 (RIs),提供 1 年和 3 年的合约,具有无前期成本 (NURI)、部分前期成本 (PURI) 或全前期成本 (AURI)。所有保留实例承诺都可以降低费用,其中3年周期、全前期的RIs提供深度折扣。依据3年 AURI 折扣计算,Fizzywig 的工作负载的年度费用见下表。
主副本主副本副本主副本2个副本im4gn16xlargesearch19090763818152or116xlargesearch34133716826742r6g12xlargesearch32680746536148RIs 提供了一种直观的节约方式,无需对代码或架构进行更改。为该工作负载采用 RIs 能将 im4gn 的三份副本费用降低到 570 万美元,or1 实例的单份副本成本降至 320 万美元。
前面的部署可作为基准和比较。实际上,您会选择基于 Amazon S3 的某一存储选项,以保持可管理的成本。
OpenSearch Service UltraWarm 实例将所有数据存储在 Amazon S3 中,并通过 UltraWarm 节点作为此完整数据集的“热缓存”。UltraWarm 最适合针对小时间段的交互式数据查询,例如针对 6 个月前一天的数据进行多次查询。请仔细评估您的访问模式,考虑 UltraWarm 的缓存行为是否适合您。UltraWarm 的首次查询延迟与您需要查询的数据量成正比。
在为 UltraWarm 设计一个 OpenSearch Service 域时,您需要确定热保留窗口和温暖保留窗口。大多数 OpenSearch Service 的客户使用的热保留窗口在 714 天之间,而温暖保留窗口则占据了其余的保留期。在我们的 Fizzywig 情况中,我们使用 14 天的热保留和 351 天的 UltraWarm 保留。同时,我们在热层中使用两份副本主副本和一份副本。
基于每天 4125 TB 的数据输入速度,14 天的热存储需求是 1155 TB。您可以部署六个任何三种实例类型的实例来支持这一索引和存储。UltraWarm 在 Amazon S3 中存储一份副本,且无需额外存储开销,351 天的存储需求为 1158 PiB。您可以通过 58 个 UltraWarm1largesearch 实例来支持这一点。下表给出了此部署的总成本,以 3 年的 AURI 形式采用热层。
热存储UltraWarmS3总计im4gn16xlargesearch2202781361654333590or116xlargesearch3376961361654418136r6g12xlargesearch2704101361654333590您还可以通过将数据移至 UltraWarm 冷存储进一步降低成本。冷存储通过降低数据的可用性来减少成本要查询数据,您必须通过 API 调用将目标索引重新附加到 UltraWarm 层。对于1年的数据,典型的模式是首先保留 14 天热存储,再在 UltraWarm 中保留 76 天,最后在冷存储中保留 275 天。根据这一模式,您需要 6 个热节点和 13 个 UltraWarm1largesearch 节点。下表展示了运行 Fizzywig 3 TB 日
01-27
通过亚马逊 OpenSearch 服务将长期日志费用降低 4800 大数据博客
降低长期日志开销达4800 的亚马逊 OpenSearch 服务关键要点使用 Amazon OpenSearch Service 存储日志数据,能够显著降低存储成本。文章讨论了 OpenSearch ...
01-27
如何降低 Amazon Kinesis 视频流的延迟 第 1 部分 物联网官方博客
降低 Amazon Kinesis Video Streams 延迟的方法 第 1 部分作者:Dean Colcott,发表于2022年12月21日,来源于 文章类型、最佳实践、专家 (400)、Ki...
01-27
在您的生成式人工智能应用中使用网页搜索 API 和 Amazon Bedrock 代理集成动态网页内
在生成型 AI 应用中集成动态网页内容关键要点功能增强:通过将 Amazon Bedrock Agent 与网页搜索 API 集成,提升聊天机器人实时搜索和动态信息检索能力。简化操作:开发者可借助 A...
01-27
在 Amazon QuickSight 中使用跨表筛选器和控件 商业智能博客
在 Amazon QuickSight 中构建跨表筛选器和控件关键要点Amazon QuickSight 通过引入跨表筛选器和控件功能,简化了分析过程。新功能允许用户跨多个表创建、删除和编辑筛选器。控...