Hermes Agent 实战 17|自建 ES 集群 vs 托管 RDS:纯成本量化推导原创
Elasticsearch 是日志检索和全文搜索的事实标准。当数据规模小到 GB 级、大到 PB 级,团队都会面临一个选择:自建集群还是买托管?这个问题经常被情绪驱动——「云太贵」「运维太烦」——而非数字驱动。
本文给出纯成本量化推导:用同一套算力需求,分别算清「自建裸机」和「云托管」三年总拥有成本,看看到底差多少,以及差在哪。
版本说明
本文写于 2026-08,以阿里云华北2(北京)公开定价为准。不同云厂商、不同可用区价格不同,结论仅供参考,请根据实际报价重新计算。
# 第一步:锁定评估基准
没有基准的价格对比是耍流氓。我们的假设场景是:一个中等规模的日志平台,每天摄入 500GB 原始日志,保留 30 天热数据,查询并发 50 QPS,需要跨可用区高可用。
| 需求项 | 规格 | 计算说明 |
|---|---|---|
| 日均写入 | 500 GB | 原始日志体积 |
| 保留周期 | 30 天 | 热数据,用于实时检索 |
| 热数据总量 | ~15 TB | 考虑 10% 压缩率 → 1.5 TB 索引 |
| 查询并发 | 50 QPS | 峰值,平均 20 QPS |
| 可用性要求 | 双 AZ 高可用 | 可承受单节点故障 |
| 链路冗余 | 2x 专线/公网 | 主备出口 |
节点资源估算(ES 官方推荐):
- 内存: 磁盘 = 1:24 到 1:30(SSD 场景)
- 1.5 TB 热数据按 1:30 → 需要 50 GB 堆内存
- 生产环境堆内存不超过 31 GB(压缩指针),因此需要至少 2 个数据节点
- 加上主节点(3 个,法定票数)、协调节点(2 个做负载均衡)
最终方案:7 节点集群(3 主 + 3 数据 + 1 协调/摄入)
# 第二步:自建方案成本拆解
# 2.1 硬件/云服务器成本
选择阿里云 ECS 作为自建底座(裸机或自建 IDC 的等价换算类似):
| 角色 | 规格 | 数量 | 单价(元/月) | 月成本 |
|---|---|---|---|---|
| Master 节点 | ecs.r7.xlarge(4C16G) | 3 | 823 | 2,469 |
| Data 节点 | ecs.r7.2xlarge(8C32G) | 3 | 1,646 | 4,938 |
| 协调/摄入节点 | ecs.r7.xlarge(4C16G) | 1 | 823 | 823 |
| ECM 小计 | 7 | 8,230 |
磁盘成本(高效云盘 2 TB/节点,数据节点需要双副本,实际存储 4 TB):
| 类型 | 容量 | 单价(元/GB/月) | 月成本 |
|---|---|---|---|
| 高效云盘 | 8 TB | 0.35 | 2,800 |
| SSD 云盘(可选,查询密集型) | 8 TB | 1.00 | 8,000 |
这里按混合方案(主节点高效云盘 + 数据节点 SSD):
- 3x 主节点: 200GB × 3 × 0.35 = 210 元/月
- 3x 数据节点: 2TB × 3 × 1.00 = 6,000 元/月
- 1x 协调节点: 100GB × 1 × 0.35 = 35 元/月
- 磁盘月成本:6,245 元
# 2.2 网络成本
| 项目 | 月流量估算 | 单价 | 月成本 |
|---|---|---|---|
| 公网出口(日志写入) | 15 TB(入站免费,出站按 10% 查询估算) | 0.8 元/GB | 12,000 |
| SLB(负载均衡) | 0.1 元/小时 + 0.05 元/GB | ~100 | |
| 网络小计 | ~12,100 |
# 2.3 运维人力成本
自建集群不是买了机器就完事:
- 集群部署与初始化:40 人时
- 监控/告警配置:24 人时
- 季度巡检/索引策略优化:4 人时/季 × 4 = 16 人时/年
- 故障响应(平均 2 次/年,每次 8 人时):16 人时/年
- 升级/迁移(每年一次大版本):80 人时/年
年度运维人力:136 人时,按 SRE 工程师 500 元/人时计算:
- 年度人力:68,000 元
- 月均人力:5,667 元
# 2.4 自建方案三年 TCO
| 成本项 | 月成本 | 三年成本 |
|---|---|---|
| ECS 计算 | 8,230 | 296,280 |
| 磁盘存储 | 6,245 | 224,820 |
| 网络出口 | 12,100 | 435,600 |
| 运维人力 | 5,667 | 204,012 |
| 合计 | 32,242 | 1,160,712 |
注:未计入机房托管费(如果是自有 IDC)、备份存储(冷数据)、安全合规等额外支出。
# 第三步:云托管方案成本拆解
阿里云 Elasticsearch 托管版(现称「阿里云检索分析服务 Elasticsearch 版」)按需选型:
# 3.1 托管规格选择
对于 1.5 TB 热数据、50 QPS 场景,推荐规格:
- 数据节点:2 核 8 GB × 6 节点(可缩)或 4 核 16 GB × 3 节点
- 存储:2 TB/节点,SSD 云盘
按 4 核 16 GB × 3 节点 + 3 个主节点(2 核 4 GB)计算:
| 节点类型 | 规格 | 数量 | 单价(元/月) | 月成本 |
|---|---|---|---|---|
| 数据节点 | 4C16G 通用型 | 3 | 2,000(预估) | 6,000 |
| 主节点 | 2C4G 专用主节点 | 3 | 800(预估) | 2,400 |
| 存储 | SSD 云盘 2 TB | 6 | 已含在节点费 | 0 |
注:阿里云 ES 托管版采用「节点规格 + 存储」捆绑计费,实际账单按实例规格和存储容量综合计价。这里按官方定价计算器估算。
托管实例月成本估测:~12,000 元(含计算、存储、基础 SLA 保障)
# 3.2 网络与流量成本
托管 ES 放在 VPC 内,同 VPC 内访问无额外流量费:
- 内网流量:免费
- 公网出口(NAT 网关/公网 IP):同自建方案,15 TB × 0.8 = 12,000 元/月
- 可选:阿里云日志服务 SLS 作为摄入端,0.15 元/GB = 2,250 元/日 = 67,500 元/月
如果使用 SLS 摄入,流量成本可大幅降低(内网传输):
- 网络成本:~5,000 元/月(仅查询结果出站 + NAT 基础费)
# 3.3 运维人力成本
托管版负责:
- 集群部署与初始化:0 人时(已预置)
- 监控/告警:0 人时(内置)
- 版本升级:16 人时/年(控制台一键升级 + 验证)
- 故障响应:4 人时/年(阿里云 SLA 兜底,仅需业务层验证)
年度运维人力:20 人时,月均人力:833 元
# 3.4 托管方案三年 TCO
| 成本项 | 月成本 | 三年成本 |
|---|---|---|
| 托管实例 | 12,000 | 432,000 |
| 网络/SLS | 5,000 | 180,000 |
| 运维人力 | 833 | 29,988 |
| 合计 | 17,833 | 641,988 |
# 第四步:对比与决策框架
# 4.1 成本对比总表
| 方案 | 月成本 | 三年 TCO | TCO 差距 |
|---|---|---|---|
| 自建集群 | 32,242 | 1,160,712 | 基准 |
| 云托管 | 17,833 | 641,988 | -44.7% |
纯成本角度:托管比自建便宜约 45%。
但这只是基准场景。实际决策要考虑更多变量:
# 4.2 成本敏感度分析
自建更便宜的场景:
- 已有闲置机器:公司有大量包年包月 ECS 或自有 IDC 机柜,边际成本接近 0
- 超低查询并发:仅做日志归档,查询极少(<5 QPS),托管的固定开销不划算
- 超大规模:PB 级数据时,托管的存储单价可能高于自建采购磁盘
- 特殊网络环境:内网隔离要求极高,托管版的网络策略难以满足
托管更便宜的场景:
- 中小规模:数据量 <50 TB,查询并发 <200 QPS
- 无专职 SRE:团队没有 Elasticsearch 专家,故障排查成本高
- 快速试错:MVP 阶段,3 个月内可能废弃,托管的启动成本低
- 合规要求:需要 SOC2/等保合规,托管版已预置认证
# 4.3 隐性成本清单
| 隐性成本 | 自建 | 托管 |
|---|---|---|
| 版本升级风险 | 高(自行测试回滚) | 低(阿里云兜底) |
| 脑裂/数据丢失 | 自行设计快照策略 | SLA 保障(可索赔) |
| 安全补丁 | 自行跟踪 CVE | 自动修复 |
| 多 AZ 部署 | 自行配置 | 控制台勾选 |
| 备份冷存 | 自建 OSS/COS | 集成存储 |
# 坑:那些让成本失控的陷阱
# 坑 1:自建集群的「隐形超级峰值」
症状:月度账单突然飙涨 300%,查询超时,节点 OOM。
原因:没有做索引生命周期管理(ILM),30 天前的数据没有冷迁移,全部堆在热节点。某次大查询触发 fielddata 加载,内存打满,节点频繁 GC,最后连锁故障。
解药:
PUT _ilm/policy/logs_policy
{
"policy": {
"phases": {
"hot": { "min_age": "0ms", "actions": { "rollover": { "max_size": "50gb", "max_age": "1d" } } },
"warm": { "min_age": "7d", "actions": { "shrink": { "number_of_shards": 1 }, "forcemerge": { "max_num_segments": 1 } } },
"cold": { "min_age": "30d", "actions": { "freeze": {} } }
}
}
}
2
3
4
5
6
7
8
9
10
# 坑 2:托管版的「存储刺客」
症状:托管版月账单比预估高 50%。
原因:托管版存储按预配置容量计费,而非实际使用量。开了 10 TB 磁盘但只用了 2 TB,依然按 10 TB 收费。
解药:
- 使用托管版的「弹性存储」(如果可用)
- 或自建方案采用 thin-p
+ 监控扩容
# 坑 3:跨云流量费
症状:自建集群在 AWS,应用在阿里云,每月流量费上万。
原因:云厂商之间出网流量议价能力不同,跨云流量按最高价计费。
解药:应用和数据必须在同一 VPC/同一云厂商,或采用专线互联议价。
# 可复用要点
- 量化优先:任何「自建便宜」或「托管省心」的结论,必须先填完 TCO 表格。
- 人力是最大变量:自建 80% 的成本是运维人力,不是机器。没有 SRE 团队不要自建。
- 规模分界点:~50 TB 是自建和托管的成本交叉点,超过此规模需详细询价。
- 网络是刺客:公网流量费可能超过计算费,内网部署是必须的。
- 托管的隐性价值是风险转移:SLA + 自动补丁 + 一键扩容,对业务连续性要求高的场景,这是无法用成本衡量的。
# 下一步
下一篇:Hermes Agent 实战 18|ES 集群容量规划:如何判断该扩容了
🤖 Agent 可直接解析的元数据块(点击展开)
{
"_meta": {
"doc_version": "2026-08-27",
"article_id": "hermes-17-es-vs-rds",
"profile_context": "any",
"estimated_setup_time": "计算型文章,无需部署"
},
"quick_start": {
"step_1": "根据日均写入量计算热数据容量:daily_GB × retention_days × compression_ratio",
"step_2": "按 1:30 内存磁盘比估算数据节点内存需求",
"step_3": "填写 TCO 对比表(ECS 计算 + 磁盘 + 网络 + 人力)",
"step_4": "获取云厂商托管版报价进行对比",
"step_5": "决策:规模 <50TB 且无 SRE → 托管;已有 IDC 或 PB 级 → 自建"
},
"safety_rules": [
"自建集群必须配置 ILM 生命周期策略,防止热数据无限制增长",
"托管版需确认存储计费方式(预配置 vs 实际使用)",
"跨云部署会产生高额流量费,优先同 VPC 部署",
"生产环境集群节点数必须为奇数(防止脑裂)"
],
"verification": {
"check_tco": "自建月成本 = ECS + 磁盘 + 网络 + (年运维人时 × 人时价 / 12)",
"check_sla": "确认托管版 SLA 条款和赔付标准",
"check_iln": "GET /_ilm/policy 确认 ILM 策略已生效",
"check_network": "iftop -i eth0 确认 9200 端口流量在预期范围内"
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
AI Agent 使用指南:
- 当用户说「我要自建 ES」 → 引导执行
quick_start.step_1-3做 TCO 估算 - 当用户说「帮我对比托管和自建」 → 输出成本对比表 +
verification.check_tco - 当用户说「集群成本突然涨了」 → 执行
verification.check_iln检查生命周期策略