原文来自 Stanislav Kozlovski,曾在 Confluent 担任主任工程师
https://www.linkedin.com/posts/stanislavkozlovski_most-people...

大多数人认为云服务能帮他们省钱。

但 Kafka 并不是这样。❌

单单存储成本就比它本应该的高出 32 倍。

即使是一个极小的集群也要花费数十万美元!

没错,我们来算一下。

假设一个小型的 Kafka 集群由以下组成:

🔷 6个broker 🔷 35MB/s 的生产流量 🔷 数据保持7天(这是默认设置)

在这个配置下:

35MB/s 的生产流量会产生 35MB 的新数据。👌

然后Kafka将其复制到另外两个 broker,因此每秒共存储 105MB 的数据 - 35MB 的新数据和 70MB 的副本🤔

因此一天的数据量是 9.07TB(每天有 86400 秒,每秒 105MB)✅

7 天后,我们累积了63.5TB的集群存储需求 😳

为了在出现故障时给人反应时间,通常我们会保持磁盘的 50 %空间空闲。

☝️相信我,长周末里磁盘空间不足是你不想面对的事。

63.5 乘以 2 等于 127TB - 为了简单起见,我们四舍五入到 130TB。

这意味着每个 broker 需要 21.6TB 的磁盘容量。💡

现在我们来看看价格。

我们使用 AWS 的 EBS HDD - 经过吞吐量优化的 st1s。

请注意,st1s 的价格是 sc1s 的三倍,但我们需要额外的 IO 吞吐量。

st1s 的价格是每 GB 每月 0.045 美元的已 provision 的(而非使用中)存储空间。这意味着每 TB 每月 45 美元。💡

我们需要配置 130TB。

这就意味着:

🛑 每天 $188 😕

🛑 每月 $5850 😳

🛑 每年 $70,200 🤯

顺便说一句,这是最便宜的 AWS region - us-east。💡

欧洲法兰克福的价格是每 TB 每月 54 美元,这意味着每年 $84,240。😭

但是存储真的这么贵吗?

Hetzner 租给你一个 22TB 的硬盘只需……每月 30 美元。(编者注:Hetzner 是德国一家云服务商,主要提供裸机)

6 个这样的硬盘就能提供 132TB 的存储,总成本是:

🟩 每天$5.8

🟩 每月$180

🟩 每年$2160

而且是托管在德国。

AWS 的价格是 32.5 倍!❌

对于那些想在本地存储数据的德国人来说,AWS 的价格高了 39 倍。😥

🙅 那分层存储呢?

使用分层存储情况会好得多。

在 AWS 上每月大概花费 $19,200,这只是贵了 9 倍。不过分层存储有很多其他好处,所以这是一个值得考虑的权衡。

话虽如此,这个功能在 6 年后仍未正式发布……所以如果你还没有使用它,也是可以理解的。

最后呢?

价格贵了 39 倍。

我还没提到网络成本,这可能每年会再增加 $103,000 的花费。

编者按,作者只是从成本角度比较了云服务商托管 Kafka 和自托管的区别。但就像我们不能按照 iPhone 的零件价格来得出 iPhone 很贵的结论一样,云托管服务还提供了很多其他额外的价值。当然作者列出的计算公式还是可以作为参考。


💡 更多资讯,请关注 Bytebase 公号:Bytebase


Bytebase
33 声望17 粉丝

为 DevOps 团队准备的数据库 CI/CD 工具,专为开发者和 DBA 打造。唯一被 CNCF Landscape 收录的 Database CI/CD 产品。