ConvertKit是一家全功能电子邮件服务提供商(ESP)|上云一年烧掉超过100万美元,我们的钱都去哪儿了?

ConvertKit是一家全功能电子邮件服务提供商(ESP) , 是发展最快的电子邮件营销公司之一 。 但作为一家自力更生的私营企业 , 没有外部资金的支持 , 云成本控制对ConvertKit来讲非常重要 。
近日 , ConvertKit详细列出了2021年在AWS上的花费 , 回顾了自己到底花掉了多少钱 , 并思考哪里还能进一步优化 。 “过去这一年我们也犯了不少错 , 但好在这些问题都可以修正 。 ”ConvertKit基础架构工程师KrisHamoud表示 。
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% 。
ConvertKit是一家全功能电子邮件服务提供商(ESP)|上云一年烧掉超过100万美元,我们的钱都去哪儿了?
文章图片
ConverKit在AWS上的各项支出占比
“尽量提高效率 , 把好钢用在刀刃上”已经成为ConvertKit维持收入平衡、保障业务正常运转的核心指导思想 。
钱都花哪里了?
从1月到12月 , ConvertKit的月度账单总额增长了44% , 主要原因是EC2实例和Redshift支出的提升 。 ConvertKit需要在主MySQL服务器上执行强制维护 , 所以11月和12月的关系数据库服务支出也出现了一波上扬 。 更多细节 , 稍后会具体讨论 。
9月份的支出比整个8月要低出36% , 也比10月低了38% 。 之所以成本下降 , 是因为ConvertKit跟AWS协商换得了不少抵扣积分 。
ConvertKit是一家全功能电子邮件服务提供商(ESP)|上云一年烧掉超过100万美元,我们的钱都去哪儿了?
文章图片
“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的很多计算类资源节约计划(SavingsPlanForComputeUsage)其实12月就到期了 , 直到今年1月才重新续上 。 如果好好把握 , 成本应该会更低一些 。
ConvertKit是一家全功能电子邮件服务提供商(ESP)|上云一年烧掉超过100万美元,我们的钱都去哪儿了?
文章图片
“关系数据库服务”花费约24.2万美元
ConvertKit的关系数据库服务(RDS)账单可以算是“平地一声雷” 。 在前11个月 , 月平均支出仅为19155.60美元 , 跟2019年8月以来的各月份基本保持一致 , 但到了12月开销陡然上扬 。
ConvertKit是一家全功能电子邮件服务提供商(ESP)|上云一年烧掉超过100万美元,我们的钱都去哪儿了?
文章图片
那么 , 12月份究竟发生了什么?
11月下旬 , AWS方面通知ConvertKit出于安全原因 , 需要进行一波强制操作系统更新 , 更新工作必须在2022年1月之前完成 , 否则AWS就要自动执行 。
保障安全当然重要 , 但保障正常运行时、数据完整性和稳定性也同样重要 。 ConvertKit拥有一套9TB以上的MySQL数据库 , 而其中提供的默认维护选项在可预测性和可靠性方面都不太好 。 因此 , ConvertKit决定创建一个全新MySQL服务器 , 并将操作系统更新以只读副本的形式安装 。 之后 , ConvertKit在空闲时段把只读副本提升成主副本 , 这样就能把停机时间控制到最短 。