亚马逊EC2 + EBS对于小型创业公司来说在财务上是否聪明?

我正在考虑在哪里举办我的网站,我真的卖在亚马逊的networking服务,但我不能真正决定是否这是我想要采取的课程,因为定价。 首先,我不确定在成本计算器中放置什么设置才能得到一个好的估计。

我将需要一个EC2实例,因为我将运行Apache服务器,并且我将运行一个Java应用程序,该应用程序将托pipe与MySQL数据库交互的Web服务。 (我不确定是否应该使用Amazon RDS)

如果我不得不做出一个非常粗略的估计(一个乐观的绝对上限),我会说我需要支持每秒5个Web请求,并且大约相同数量的MySQL请求。 也许,50Gb的带宽给用户。

一个小EC2实例是:小实例(默认)1.7 GB内存,1个EC2计算单元(1个虚拟核心,1个EC2计算单元),160 GB本地实例存储,32位平台

一个大型EC2实例是:“大型实例7.5 GB内存,4个EC2计算单元(2个虚拟核心,每个EC2计算单元2个),850 GB本地实例存储,64位平台'

所以,如果我select小我想我可以期望一个200美元左右的法案和350美元左右的大。 我只是远离亚马逊EC2,看看较小的托pipe公司?

非常感谢

正如你注意到的那样,除了运行实例的代价之外,还有一些与EC2相关的成本,但是在你的问题中提到的“实例存储”不是其中之一。

每个EC2实例(t1.micros除外)都带有临时存储,不包括额外的成本(I / O和存储)。 但是,此存储不会持续 – 一旦实例停止或终止,临时存储的内容将被删除。 它仅用于临时目的(例如,临时文件,某些types的caching,构build过程中的中间文件等)

因此,您将需要一个EBS卷来存储您的文件 – 无论是核心软件还是Web应用程序。 我通常喜欢使用至less2个EBS卷 – 一个用于根卷,一个用于其他所有内容(数据库,日志,邮件,应用程序+用户数据等)。

EBS存储

我不能判断你的存储需求,但软件(操作系统+ LAMP堆栈+邮件等)可能会低于2GB。 我认为你的应用程序是相当小的 – 这意味着未知的是用户数据(数据库,文件等) – 我认为10GB可能足以在大多数情况下开始。

  • EBS卷#1 – 根卷 – 4GB(允许增长,驱动器上有一些额外的空间)
  • EBS卷2:10GB
  • 如果您使用t1.micro,请添加EBS卷3 – 交换空间 – 1GB

总计:15GB = $ 1.50 /月($ 0.10 / GB /月)

EBS估计的IOPS:

  • Root EBS – 2-5 IOPS
  • 数据EBS – 10-30 IOPS
  • 交换EBS – <1 IOPS

总计:13 – 36 IOPS – 成本:3.42 – $ 9.46 /月(〜$ 0.2628 /月/ IOPS)

带宽输出

50GB /月(您的估计)= $ 0.120 * 49 = $ 5.88 /月(第一GB是免费的)

弹性IP

只要弹性IP连接到正在运行的实例,它就是免费的

备份 – EBS快照

我估计大约与您存储的总数据相同的已用空间(数据是压缩的,每个快照是有差别的,但是随着时间的推移它们会相加),因此假定您的根驱动器上只有8GB数据+ 2GB = 10GB(显然,swap不会被快照);

10GB = 1.25美元/月(0.125美元/ GB /月)

总计,不包括EC2实例成本:

弹性IP – $ 0.00 EBS存储 – $ 1.50 EBS I / O – $ 5.00(位于范围中间的数字)EBS快照 – $ 1.25带宽输出 – $ 5.88总计:$ 13.63 /月

实例成本

现在,您需要实际的实例成本。 如果你将持续运行机器(Web服务器所需) – 我会build议一个保留的实例。 (730小时/月,平均)

t1.micro:

  • 按需= $ 0.02 /小时= $ 14.6 /月
  • 1年(重用):$ 62 + 0.005 / hr = $ 8.82 /月((0.005 * 24 * 365 + 62)/ 12)
  • 3年(重用):$ 100 + 0.005 / hr = $ 6.43 /月

的m1.small:

  • 按需求:0.085 /小时= $ 62.05 /月
  • 1年(重用):$ 276.25 + 0.02 / hr = $ 37.62 /月
  • 3年(重用):$ 425 + 0.02 / hr = $ 26.41 /月

取决于你所做的select,你的成本大约在20美元/月(3年保留t1.micro)和80美元/月(按需m1.small)之间。

笔记:

每秒5个请求是一个相当小的数量 – 即使是一个t1.micro应该能够处理的。 我build议先尝试一下你的应用程序(AWS提供一年免费t1.micro使用的新客户) – 如果你需要一个更大的实例types,这是一个简单的事情,停止(不终止)你的实例,修改实例属性,您可以在运行新实例的5分钟内重新联机。

我不是一个Java人 – 但是如果你可以使用一个轻量级的web服务器(nginx,lighttpd)而不是Apache,你将会从EC2实例中获得更好的性能(Apache的主要问题是它的内存使用,特别是在t1 。微)。

如果你使用t1.micro,我build议不要使用64位操作系统,它的内存有限,64位寄存器大大增加了所需的内存,没有明显的增益。

另外,如果您对操作系统没有特别的偏好,我build议您使用Amazon的Linux AMI – 它基于RHEL / CentOS,并且删除了所有不必要的部分,并且得到官方的支持(并且它们的存储库保持最高date!)。

不要打扰Amazon RDS – 大多数人发现它的性能不是很好,它不能提供太多的“自动”function(例如,你仍然必须手动设置复制等,并且正常的限制适用)。

关于t1.micros的一个小心 – 它们的性能是非常不稳定的 – 如果你能保持低CPU使用率,那么你会没事的,但是如果你发现它是尖峰的,那么性能将会很糟糕。 其他情况下性能更稳定。

最后,当你想要一个好的想法,它会花多less钱,不要高估。 很容易推测,你将需要一个庞大的服务器来运行你的应用程序,但是如果你发现它的话,你总是可以在以后find一个不同的提供者,或者转移到不同的实例types。 使用云模型,您不需要考虑未来的规模,因为它的规模相当容易。

您可以尝试使用AWS成本计算器来玩数字(尽pipe个人而言,我更喜欢用手做)。

您应该能够轻松地支持5美元/月微型实例的5个Apache请求/秒。 一个小实例会运行你60美元/月左右,因为微型实例应该运行MySQL + Apache就好了,所以我不知道200美元来自哪里。

事情也变得非常便宜 – 多达一半 – 如果你可以承诺为那种实例types一年或三年。