这篇文章的标题是对图
“每个程序员应该知道的延迟时间”的直接参考。 该图当前有多个版本,很难建立原始作者。 有人说是
Jeff Dean 。
如果您正在从事需要扩大规模的项目,则需要权衡几个问题。 我们做出什么假设以及如何确认它们? 如何快速进入市场? 我们的设计会支持预期的规模吗?
扩展问题之一是基础架构的成本。 云提供商可让您一键创建数千个处理器并放置数TB的数据。 但这很昂贵,当您接触到数百万个用户时,对于数千名用户而言微不足道的事情可能会成为一个巨大的预算漏洞。
在本文中,我将列出一些参考编号,这些参考编号在考虑体系结构时要记住。 这些数字并非旨在准确估算预算。 它们有助于确定您的设计是否合理,或者是否超出了您的承受能力。 因此,我们考虑数量级和相对值,而不是绝对值。
另外请记住,您的公司可能会从AWS那里获得折扣,这可能会带来很大的不同。
计算方式
当前的CPU成本是多少? 通过出色的
ec2instances.info界面
,我获得了vCPU的中位数价格。
您可以从
Github存储库获取源数据。 我复制了它们并使用Python脚本处理了它们,我也使用了
Github 。 所有价格均针对eu-west-1地区。
我根据各种用户对现货价格进行了评级。 由于价格全天变化,我找不到可靠的数据来源。
AWS用弹性计算单元表示其机器的计算能力,而4个ECU或多或少地相当于现代处理器的能力。 因此,上面的价格是针对单个处理器或内核而不是单个实例显示的。
在我评级的所有类型的实例中,这是每小时1 ECU的价格(以美元为单位):

以下是将请求的价格与一年和三年的预订(预付款)进行比较的方法:

贮藏
因此,您想要低延迟,高带宽并计划将所有内容存储在Redis中吗? 然后,除了这些成本之外,CPU还必须支付RAM。
我使用相同的方法来获得EC2上1 GB RAM的中间价格。 Elasticache大约是按需价格的一半,但是在预留实例中,价格会很快下降。
尽管这是存储的净成本,但您还需要查看数据的使用模式。 您需要多少处理器才能在24/7内存中24/7工作?
与S3相同:您将为读/写请求支付多少费用? 我看到在S3上的存储成本可以忽略不计的工作负载,但是向S3写入大量对象的成本使团队在S3之上编写了自己的文件系统。
调动
关于HackerNews的一些
评论表明,我错过了传输成本。 确实,如果您向最终用户提供数据或需要跨区域复制,则需要考虑这些成本。