海量日志接入 Serverless 应用降本70%以上

概述

随着互联网业务的快速发展,日志数据量日益庞大,传统的日志处理方式面临着成本高、扩展性差等问题。为了应对这一挑战,越来越多的企业开始转向更先进的解决方案——阿里云Elasticsearch Serverless。

本文档将探讨在日志场景下,使用阿里云Elasticsearch Serverless相较于基于ECS自建Elasticsearch集群的成本与性能优势,展示如何通过Serverless架构实现高达 70%以上的成本节约。

特性对比

传统方案:基于ECS自建Elasticsearch集群

  • 资源利用率低:在非高峰时段,可能会出现资源浪费;而在高峰期,则可能出现资源不足的问题。
  • 维护成本高:除了硬件成本,还需投入大量的人力资源进行集群的日常运维,包括集群监控、数据备份、安全防护、版本升级等。
  • 扩展性差:面对突发流量或数据量激增时,通常需要手动调整集群规模,这不仅耗时且存在一定的风险。

阿里云Elasticsearch Serverless方案

  • 按需付费:仅需为实际使用的资源支付费用,无需预购大量固定资源,有效降低了初期投入成本。
  • 自动扩缩容:根据业务需求自动调整计算与存储资源,确保服务稳定的同时避免了资源浪费。
  • 免运维:阿里云负责底层基础设施的管理和维护,用户可以专注于业务逻辑的开发,无需担心复杂的运维工作。

场景模拟

本文将通过真实的日志业务数据,进行一天的日志写入场景模拟:

1、 集团内某应用对应的业务曲线,压力曲线如下:(每日 12~13、22~23点高峰以每日为周期规律),写入用量:1.2k~5.4K 数据级 qps 的单 bulk 3MB 写入,不进行查询;海量日志接入 Serverless 应用降本70%以上_第1张图片

根据上述业务体量,如果通过基于ECS自建,按照CPU水位上限取 70%以上条件下,选型规格 ECS:24C48G/数据盘:2048GiB ESSD PL1(50000 IOPS) 云盘,单小时价格 ECS:¥ 4.68/数据盘:¥4.3008(系统盘、LB 等在此不做计入) 6 节点 ES 自建集群单日价格:246(4.68+4.3008)=1293.2352

若需对应其他规格,请自行计算费用比较;

ESSD PL0 承接以上写入吞吐有瓶颈,会导致自建集群在高压下写入队列堆积请求拒绝。吞吐上限见:

https://help.aliyun.com/zh/ecs/user-guide/block-storage-performance?spm=5176.ecs-console-storage_disk.console-base_help.dexternal.29b34df56NG88G&scm=20140722.S_help%40%40%E6%96%87%E6%A1%A3%40%4025382.S_RQW%40ag0%2BBB2%40ag0%2BBB1%40ag0%2Bhot%2Bos0.ID_25382-RL_%E5%9D%97%E5%AD%98%E5%82%A8-LOC_console~UND~help-OR_ser-V_4-P0_0

以下为 PL1 云盘的吞吐监控海量日志接入 Serverless 应用降本70%以上_第2张图片

2、 当日自建 ES 所在某 ECS 负载如下:
海量日志接入 Serverless 应用降本70%以上_第3张图片

3、现将同样的业务数据接入到Elasticsearch Serverless应用中,请求监控数据如下:
海量日志接入 Serverless 应用降本70%以上_第4张图片

  • serverless 应用在 02-09 0 点前后有写入计算资源增加是因为开启了数据整理功能(定期通过无损的force merge对索引进行整理,提升查询性能和优化存储空间,会带来额外的写入CU消耗)

性能相比自建更稳定

下图为客户端写入请求指标图

  • 相同 qps、吞吐下,自建 ES 的请求响应即使在低压时也存在上下波动、不稳定的情况;
  • 22:30 写入压力到高峰时,自建 ES RT 上涨明显; serverless ES 几乎不受影响;
  • 高压下自建集群出现请求失败情况,原因为写入线程池队列满集群拒绝新请求;

海量日志接入 Serverless 应用降本70%以上_第5张图片

根据实际的业务请求,Serverless应用能做到资源规划,贴合使用曲线

日志分析型集群主要体现在索引主分片数变化:

海量日志接入 Serverless 应用降本70%以上_第6张图片

上图可见:

  1. 【point 1】在水位下降后会保持一段时间的高主分片数,原因是主分片数不影响资源消耗,预防突发流量,等一段时间后会降至这一段时间判断可降的最低值;
  2. 【point 2】在水位高于当前已有主分片数时,若在可控范围内,则会等一定时间后升高至这一段时间判断的所需值;
  3. 【point 3】若水位超出可控范围,则会加快分片数升高的速度;

预期主分片数:系统对当前写入水位做出的主分片建议数

当前主分片数:当前正在写入的索引主分片数

存储数据压缩率相比自建有显著提升,进一步节省了存储成本 80%以上

海量日志接入 Serverless 应用降本70%以上_第7张图片

以上每日数据量总额达百亿级。可见,该数据集在 serverless 日志分析型集群总存储空间占比约为自建 ES 集群的六分之一。

成本相比自建得到显著降低 70%以上

按照Serverless日志分析型应用的收费标准,每小时收费CU统计如下:

该场景测试未发起查询压力,serverless 应用会默认按 5CU 查询进行最低查询资源计费

时段 serverless ES 日志分析型集群
(规格:自适应)
自建 ES 集群
(规格: 6 * 24C 48G)
ecs.c6.6xlarge 按需付费
读CU消耗
1.2087元/CU/时
写CU消耗
0.4544元/CU/时
存储消耗
0.00021元/GB/时
小时价
单价*消耗数据之和
单 ECS 小时价:4.68 元/时
2T PL1 数据盘:4.3008 元/时
18:00-19:00 ¥ 6.0435 ¥ 7.2704 ¥ 0.0067 ¥13.3206 ¥ 53.8848
19:00-20:00 ¥ 6.0435 ¥ 9.0880 ¥ 0.0235 ¥15.1550 ¥ 53.8848
20:00-21:00 ¥ 6.0435 ¥ 10.2240 ¥ 0.0428 ¥16.3103 ¥ 53.8848
21:00-22:00 ¥ 6.0435 ¥ 11.5872 ¥ 0.0650 ¥17.6957 ¥ 53.8848
22:00-23:00 ¥ 6.0435 ¥ 12.7232 ¥ 0.0900 ¥18.8567 ¥ 53.8848
23:00-24:00 ¥ 6.0435 ¥ 12.7232 ¥ 0.1142 ¥18.8809 ¥ 53.8848
00:00-01:00 ¥ 6.0435 ¥ 8.6336 ¥ 0.1327 ¥14.8098 ¥ 53.8848
01:00-02:00 ¥ 6.0435 ¥ 4.7712 ¥ 0.1449 ¥10.9596 ¥ 53.8848
02:00-03:00 ¥ 6.0435 ¥ 3.4080 ¥ 0.1535 ¥9.6050 ¥ 53.8848
03:00-04:00 ¥ 6.0435 ¥ 4.0896 ¥ 0.1594 ¥10.2925 ¥ 53.8848
04:00-05:00 ¥ 6.0435 ¥ 2.7264 ¥ 0.1649 ¥8.9348 ¥ 53.8848
05:00-06:00 ¥ 6.0435 ¥ 2.7264 ¥ 0.1701 ¥8.9400 ¥ 53.8848
06:00-07:00 ¥ 6.0435 ¥ 3.1808 ¥ 0.1758 ¥9.4001 ¥ 53.8848
07:00-08:00 ¥ 6.0435 ¥ 4.0896 ¥ 0.1829 ¥10.3160 ¥ 53.8848
08:00-09:00 ¥ 6.0435 ¥ 5.4528 ¥ 0.1924 ¥11.6887 ¥ 53.8848
09:00-10:00 ¥ 6.0435 ¥ 6.3616 ¥ 0.2043 ¥12.6094 ¥ 53.8848
10:00-11:00 ¥ 6.0435 ¥ 6.8160 ¥ 0.2175 ¥13.0770 ¥ 53.8848
11:00-12:00 ¥ 6.0435 ¥ 6.8160 ¥ 0.2312 ¥13.0907 ¥ 53.8848
12:00-13:00 ¥ 6.0435 ¥ 10.2240 ¥ 0.2483 ¥16.5158 ¥ 53.8848
13:00-14:00 ¥ 6.0435 ¥ 7.4976 ¥ 0.2671 ¥13.8082 ¥ 53.8848
14:00-15:00 ¥ 6.0435 ¥ 5.6800 ¥ 0.2800 ¥12.0035 ¥ 53.8848
15:00-16:00 ¥ 6.0435 ¥ 5.4528 ¥ 0.2915 ¥11.7878 ¥ 53.8848
16:00-17:00 ¥ 6.0435 ¥ 5.6800 ¥ 0.3031 ¥12.0266 ¥ 53.8848
17:00-18:00 ¥ 6.0435 ¥ 6.1344 ¥ 0.3152 ¥12.4931 ¥ 53.8848
总计(元) ¥ 312.5778 ¥ 1293.2352

等比大流量估算

以上为单日写入统计,日常场景会考虑长期数据存储如 3 天热数据 14 天冷数据存储等。结合此特点,serverless成本仍有较大的压缩空间。而根据冷热存储大数据计费估算,ES Serverless 相对于 ES 自建节省约为 88.6 %

冷热存储大数据计费估算

如何开通 Elasticsearch Serverless 服务

Step 1:开通服务

第一次使用ES Serverless服务时需要开通服务。

  1. 登录Elasticsearch Serverless服务控制台
  2. 在ES Serverless服务页面,单击立即开通。

海量日志接入 Serverless 应用降本70%以上_第8张图片

  1. 在服务开通页面,选中服务协议,单击立即开通,根据页面提示开通ES Serverless服务。

Step 2:创建应用

  1. 进入创建Serverless应用的页面。

海量日志接入 Serverless 应用降本70%以上_第9张图片

  1. 配置应用的基本信息。

选择应用选型为检索通用型(示例),其他参数保持默认或自定义。

  1. 配置应用的访问设置。
  2. 选择网络访问方式为公网访问(示例),在公网访问白名单中添加本地设备的IP地址,以便使用本地设备访问Serverless应用的Kibana。

说明:配置应用公网访问或私网访问,请参见配置Serverless应用公网或私网访问

  • 输入用户密码,登录Kibana时需要。

  1. 单击立即创建。

您可以在应用管理页面查看已创建的应用列表。等待应用状态变为运行中,即创建应用成功,后续可根据个人需求,尝试体验更多功能。

你可能感兴趣的:(海量日志接入 Serverless 应用降本70%以上)