HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

上云一年烧掉超过 100 万美元,我们的钱都去哪儿了?

  • 2022-04-27
  • 本文字数:4063 字

    阅读完需:约 13 分钟

上云一年烧掉超过100万美元,我们的钱都去哪儿了?

ConvertKit 是一家全功能电子邮件服务提供商 (ESP),是发展最快的电子邮件营销公司之一。但作为一家自力更生的私营企业,没有外部资金的支持,云成本控制对 ConvertKit 来讲非常重要。


近日,ConvertKit 详细列出了 2021 年在 AWS 上的花费,回顾了自己到底花掉了多少钱,并思考哪里还能进一步优化。“过去这一年我们也犯了不少错,但好在这些问题都可以修正。”ConvertKit 基础架构工程师 Kris Hamoud 表示。


2021 年,ConvertKit 在 AWS 上一共花了 106 万 5754.35 美元,跟 2020 年比增长了 12.5%,占去年全年净收入的 3.9%。从 1 月到 12 月,ConvertKit 的 EC2 实例支出增长达 96%,主要原因是其扩展了 Cassandra 与 Elasticsearch 集群。


另外,ConvertKit 还投资建立了数据管道,并着手把客户从 FanBridge 迁移到 ConvertKit。虽然 EC2 实例增加了 96%,但其他 EC2 支出却只增长了 49.5%,这主要得益于更高的区域数据传输效率。最后,通过提升 CDN 使用率并优化备份流程,ConvertKit 将 S3 成本降低了 33%。



ConverKit 在 AWS 上的各项支出占比


“尽量提高效率,把好钢用在刀刃上”已经成为 ConvertKit 维持收入平衡、保障业务正常运转的核心指导思想。


钱都花哪里了?


从 1 月到 12 月,ConvertKit 的月度账单总额增长了 44%,主要原因是 EC2 实例和 Redshift 支出的提升。ConvertKit 需要在主 MySQL 服务器上执行强制维护,所以 11 月和 12 月的关系数据库服务支出也出现了一波上扬。更多细节,稍后会具体讨论。


9 月份的支出比整个 8 月要低出 36%,也比 10 月低了 38%。之所以成本下降,是因为 ConvertKit 跟 AWS 协商换得了不少抵扣积分。



“EC2 实例”花费约 34.8 万美元


去年 1 到 12 月,ConvertKit 的 EC2 支出共增加达 96%。其中涨幅最大的部分(18.3%)发生在 11 月(38636.86 美元)和 12 月(45730.12 美元)。这波飙升主要有以下几个原因。


首先,黑色星期五和网络星期一两大购物季让年末双月成为巅峰时段。ConvertKit 在黑色星期五内共发送 8510 万封邮件,网络星期一则为 9390 万封邮件。ConvertKit 因此增加了基础设施容量,以确保用户、待命工程师和支持人员都能安然度过这个假期。


其次,CovertKit 于 2021 年 4 月收购了 Fanbridge,并在下半年加快了相应的迁移过程。业务量的增加必然消耗更多资源。再者,ConvertKit 上调了多区域 Cassandra 集群与 Elasticsearch 集群的容量。


最后,ConvertKit 的很多计算类资源节约计划(Savings Plan For Compute Usage)其实 12 月就到期了,直到今年 1 月才重新续上。如果好好把握,成本应该会更低一些。



“关系数据库服务”花费约 24.2 万美元


ConvertKit 的关系数据库服务(RDS)账单可以算是“平地一声雷”。在前 11 个月,月平均支出仅为 19155.60 美元,跟 2019 年 8 月以来的各月份基本保持一致,但到了 12 月开销陡然上扬。



那么,12 月份究竟发生了什么?


11 月下旬,AWS 方面通知 ConvertKit 出于安全原因,需要进行一波强制操作系统更新,更新工作必须在 2022 年 1 月之前完成,否则 AWS 就要自动执行。


保障安全当然重要,但保障正常运行时、数据完整性和稳定性也同样重要。ConvertKit 拥有一套 9 TB 以上的 MySQL 数据库,而其中提供的默认维护选项在可预测性和可靠性方面都不太好。因此,ConvertKit 决定创建一个全新 MySQL 服务器,并将操作系统更新以只读副本的形式安装。之后,ConvertKit 在空闲时段把只读副本提升成主副本,这样就能把停机时间控制到最短。


由于 RDS 会将数据延迟加载到只读副本中,所以 ConvertKit 得在 12 月初就启动这个副本,给它时间慢慢与主节点同步起来。换句话说,整个 12 月份 ConvertKit 同时运行着两倍大小的 RDS 实例,成本自然也就翻了一番。


“事实证明,我们的努力完全值得。12 月 28 日凌晨 1 点(EST)我们完成了数据库更替,整个过程耗时约 30 分钟而且一切顺利。”Hamoud 表示。


“EC2 其他”花费约 14.7 万美元


大部分 EC2 其他成本来自数据传输。前文已经提到,第四季度整个基础设施的运行强度都比前三个季度要大一些。再加上 ConvertKit 在此期间组织了一次 Fanbridge 迁移,所以年底的支出肯定要比年初高得多。


ConvertKit 还用到了 AWS 托管的 NAT 网关。在 Hamoud 看来,这项服务价格不菲,但也确实很可靠,成本占 2021 年全年 AWS 开销的 3.5%(36829.50 美元)。“对于我们这种要靠一个团队支持两大项目的用户来说,花点钱换可靠性、换安心还是划算的。”



“计算类资源节约计划”花费约 9.7 万美元


2021 年,ConvertKit 通过购买节约计算省下了 35384 美元。从图表上看,月度开支呈现出下降趋势,这是因为 ConvertKit 购买了多项节约计划,而且都是在年内到期。这方面开支的下降,对应的就是 EC2 实例支出的上升,其中最大的问题出在 12 月。


“所以大家千万别忘了续订节约计划,否则浪费掉的可是真金白银。”Hamoud 建议道。另外,因为拿到了不少积分,所以 ConvertKit 整个 9 月份的节约计划一分钱都没花。



“S3 存储”花费约 7.4 万美元


2020 年底,ConvertKit 改进了备份流程,让 S3 账单降低了 47%。之后,ConvertKit 支出逐渐增加,是因为其产品使用量迎来了预期增长。ConvertKit 在电子邮件附件、登录页面、商务、备份及应用程序的各个位置都会用到 S3 存储。


“S3 开销的增加其实是件好事,代表使用我们产品的用户群体有所增长。”Hamoud 表示。



“支持”花费约 6.5 万美元


支持成本同样是跟着使用量来走的。由于 ConvertKit 的 AWS 总体成本开始逐月增加,所以在支持方面花的钱自然更多。其中的例外同样出现在 9 月份,原因也是前边提到的:积分兑换。



“EC2-ELB”花费约 3.7 万美元


ConvertKit 的 ELB 成本在 1 月到 12 月之间增长了 12.5%。考虑到 ConvertKit 在 2021 年的月度经常性收入(MRR)增长了 12.8%,这部分新增账户肯定形成了新的收入来源,但同时也会给连接和传输带宽带来额外的负载均衡成本。


ConvertKit 主要在 Web 应用程序中使用 ELB。随着服务用户数量的增长,Hamoud 预计这部分成本也将继续水涨船高。



“Redshift”花费约 2.1 万美元


多年以来,ConvertKit 的分析团队一直使用 Redshift。但 ConvertKit 2021 年在数据和分析管道上投入的资金确实创下了历史新高。


改进数据流意味着在 2021 年开始摄取更多数据并转而使用更强大的配套硬件。ConvertKit 在 7 月和 8 月完成了对旧 Redshift 集群的迁移。在此次迁移期间,ConvertKit 同时运行着两套 Redshift 集群,所以 8 月份内出现了一波成本峰值。



“其他成本”花费约 3.2 万美元


3 月到 5 月之间,ConvertKit 引入了由 AWS 提供的 Apache Kafka 托管流(Managed Streaming for Apache Kafka)服务。ConvertKit 之前在某个项目里用过 Kafka,但后来又因为发展方向的变化而选择放弃。如果要继续使用该项目,那么 Kafka 集群的月度托管成本约在 1100 美元左右。


除此之外,其他 AWS 开销都基本保持稳定、没什么大的波动。



云使用不当便是“杀器”


越来越多的企业应用迁移到云原生架构上,但如果不把云成本控制当回事儿,原本天然具备降本增效特点的云原生架构也会引起大量云上资源闲置、云支出浪费。


比如,2020 年 3 月,新冠疫情的全面爆发使得云的使用量迅速增加,初创公司 Milkie Way 便是其中之一。因为团队规模很小,Milkie Way 关注的重点就放在编写代码、设计 UI 以及准备产品身上,根本没在云管理上花多少心思。


因此, Milkie Way 在对 Firebase 和 Cloud Run 进行内部测试的期间,一不小心在几个小时里就烧掉了 72000 美元(约 47 万人民币),这差点导致这个创业公司破产。幸运的是,经过一系列咨询、讨论与内部研究后,谷歌免除了该笔账单。该事件后,Milkie Way 花了几个月时间学习云架构和研究自己的业务体系。


更多详情可以查看:应用上云 2 小时烧掉近 50 万,创始人:差点破产,简直噩梦


2021 年 CNCF《FinOps Kubernetes Report》调研报告显示,迁移至 Kubernetes 平台后,68% 的受访者表示所在企业计算资源成本有所增加,36% 的受访者表示成本飙升超过 20%,这都说明即使是资源利用率更高的云原生架构也需要合理的资源成本管理。


像 ConvertKit 这样了解自己的账单只是第一步。星汉未来联合创始人 &CPO 胡忠想在此前的文章中在优化云成本方面提出了四点建议,不同企业可以根据自己现阶段情况有条件地加以选择:


  • 做到成本可观测。通过建立资源利用率指标和每日对账机制,让企业各部门对成本的认识及管理能力保持一致。

  • 公有云物尽其用。企业由于对云产品了解不够、对云成本认识不足,引入公有云从而导致业务复杂度提升、相应成本提高。企业可以通过定时扩缩容和机型降配两种手段,充分利用公有云的弹性和退改灵活性,直接有效降低公有云的使用成本。

  • 充分利用弹性与共享。企业可以利用 Kubernetes 切割现有资源并以固定 IP 形式交付资源,并对流量模型进行抽象,结合具体业务建立自动扩缩容和错峰调度等。

  • 异地部署、混合编排和在离线整合。这些方式需要从企业整体层面考虑,通常不是一个部门能解决的。企业内部可以公司名义成立专项来实施,先从小业务入手,待验证平台功能完善后,再考虑逐步把核心业务迁移到平台,最终达到优化企业整体资源利用率的目的。


更多详情可以查看:来自一线大厂的云原生成本优化实践指南


降低云成本会对企业利润产生重大影响。Zoom 公司在 2021 年一季度的财报中称,其毛利率从前一季度的 69.4% 上升至 73.9%,这主要是由于在公共云资源的优化上下了很大功夫。Spotify 自研追踪云计算开支的工具,同时鼓励工程师们掌握云计算支出的所有权,使其每年节省了几百万美元的云计算开支。


显然,企业在云计算成本优化上下一番功夫是很值得的。


了解更多:


https://convertkit.engineering/2022/04/22/aws-2021-year-in-review/


好文推荐


程序员的自白:我如何让失败项目起死回生,变成价值 270亿美元的应用程序?


保卫腾讯云,专访云鼎实验室董志强(Killer)团队 | 卓越技术团队访谈录


GitHub热榜项目“程序员延寿指南”一周获上万Star;快手前副总裁巨额受贿案宣判;小红书辟谣大裁员:正常人员汰换 | Q资讯


五年官司终败诉,万亿爬虫大军蠢蠢欲动


2022-04-27 14:502598

评论

发布
暂无评论
发现更多内容

3D摄影棚布光工具Set A Light 3D Studio

Rose

Mac软件 Set A Light 3D Studio 3D摄影棚布光工具

交易系统之数据库弱依赖解决方案

京东科技开发者

数据库 高并发 灾备 db 企业号 3 月 PK 榜

OPPO、京东云 loT 项目数据架构改造,数据处理痛点这样破解

TDengine

tdengine 数据架构 时序数据库 用户案例 loT

金三突击面试,收获6个Offer,原来面试还能这么简单!

做梦都在改BUG

Java java面试 Java八股文 Java面试题 Java面试八股文

React数字滚动组件 numbers-scroll

观纵科技

JavaScript 前端监控 React

AntDB数据库助力中国移动华南中心计费项目

亚信AntDB数据库

AntDB 国产数据库 aisware antdb AntDB数据库 企业号 3 月 PK 榜

企业不想走弯路,不如试试低代码开发

引迈信息

低代码 低代码开发 JNPF

NineData x 阿里云 正式上线

NineData

数据库 阿里云 数据迁移 数据管理 NineData

从稀疏表征出发、召回方向的前沿探索

百度Geek说

召回 预训练模型 稀疏矩阵 企业号 3 月 PK 榜

ElasticSearch必知必会-Reindex重建索引

京东科技开发者

elasticsearch 索引 ES 集群 企业号 3 月 PK 榜

Matlab常用图像处理命令108例(四)

timerring

图像处理

被问了n遍怎么把FB视频无水印下载到手机相册!现在双手奉上教程!

frank

facebook #Facebook

8年服务百万客户,这家SaaS公司是懂云原生的

科技热闻

URule规则引擎

规则引擎 java

可插拔组件设计机制—SPI

京东科技开发者

spi Java】 JavaSPI 企业号 3 月 PK 榜

亿级用户中心的设计与实践

做梦都在改BUG

Java 服务架构 亿级流量 用户中心

图解Redis,谈谈Redis的持久化,RDB快照与AOF日志

小小怪下士

Java redis 程序员 后端

从零开始搭建一个通用的业务技术架构,这套架构 有点牛逼!

程序知音

Java 程序员 编程语言 后端

科技助力金融转型 阿里云联合中国信通院在京举办未来金融思享会

阿里云云效

DevOps 数字化转型 金融 BizDevOps 业技融合

VPN客户端Shimo mac版使用教程:如何创建新的 VPN 帐户?

Rose

vpn mac系统 Shimo下载 Shimo教程

Last Week in Milvus

Zilliz

Milvus Zilliz 向量数据库

真的有那么丝滑吗?面试阿里(Java岗)从投简历到面试再到入职

做梦都在改BUG

Java java面试 Java八股文 Java面试题 Java面试八股文

Acrobat Pro DC 2023发布,有哪些新的改进?

Rose

adobe pdf编辑器 Acrobat Pro DC 2023

DockQuery | 基于E-R图的数据建模功能使用实践

BinTools图尔兹

数据建模 信创 #数据库

企业如何构建内部开发者平台?

SEAL安全

IdP 平台工程 企业号 3 月 PK 榜 内部开发者平台

Blazor在IoT领域的前端实践 @.NET开发者日

MASA技术团队

.net blazor MASA MAUI

业务架构那点事(2)如何通过高层访谈获取企业战略信息?

涛哥 数字产品和业务架构

业务架构 访谈

Polygon马蹄链质押DApp开发合约部署案例

薇電13242772558

智能合约 dapp

使用Assembly打包和部署Spring Boot工程

做梦都在改BUG

Java spring Spring Boot assembly 框架

直播教学!20 分钟开发可视化「智能门铃」丨RTE 开发实战课 • 第一期

声网

最佳实践 直播 RTC 声网

SpringBoot项目就连创建目录都让人抓狂

做梦都在改BUG

Java Spring Boot 框架

上云一年烧掉超过100万美元,我们的钱都去哪儿了?_文化 & 方法_核子可乐_InfoQ精选文章