Amazon EC2 + EBS,对于小型初创公司来说在财务上是否明智?

Amazon EC2 + EBS,对于小型初创公司来说在财务上是否明智?

我正在考虑在哪里托管我的网站,我真的很想使用亚马逊网络服务,但由于价格原因,我无法决定这是否是我想要的课程。首先,我不确定在成本计算器中输入什么设置才能获得准确的估算。

我将需要一个 EC2 实例,因为我将运行 Apache 服务器,并且还将运行一个 Java 应用程序,该应用程序将托管与 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 个虚拟核心,每个核心有 2 个 EC2 计算单元)、850 GB 本地实例存储、64 位平台”

因此,如果我选择小型托管,我估计账单大约为 200 美元,大型托管大约为 350 美元。我是不是应该远离 Amazon EC2,转而选择小型托管公司?

多谢

答案1

正如您所说,除了运行实例的成本之外,EC2 还涉及许多成本,但是,您的问题中提到的“实例存储”并不是其中之一。

每个 EC2 实例(t1.micros 除外)都带有临时存储,无需额外付费(无论是 I/O 还是存储)。但是,此存储不会持久 - 一旦实例停止或终止,临时存储的内容就会被删除。它仅适用于临时目的(例如临时文件、某些类型的缓存、构建过程中的中间文件等)

因此,您将需要一个 EBS 卷来存储文件 - 既用于核心软件,也用于 Web 应用程序。我通常倾向于使用至少 2 个 EBS 卷 - 一个用于根卷,我希望对其进行的更改最少,另一个用于其他所有内容(数据库、日志、邮件、应用程序 + 用户数据等)。

EBS 存储

我无法判断您的存储需求,但软件(操作系统 + LAMP 堆栈 + 邮件等)可能低于 2GB。我推测您的应用程序相当小 - 这意味着未知的是用户数据(数据库、文件等) - 我认为在大多数情况下 10GB 可能就足够了。

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

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

EBS 预估 IOPS:

  • 根 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 美元/月(第 1 GB 免费)

弹性 IP

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

备份 - EBS 快照

我估计使用的空间与您存储的总数据量大致相同(数据被压缩并且每个快照都有差异,但它们会随着时间的推移而增加),因此假设您开始时只有 8GB 的​​数据 + 根驱动器上的 2 GB = 10GB(显然,交换不会被快照);

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 服务器所需) - 我建议使用预留实例。(平均每月 730 小时)

t1.micro:

  • 按需 = 0.02 美元/小时 = 14.6 美元/月
  • 1 年期限(高利用率):62 美元 + 0.005/小时 = 8.82 美元/月 ((0.005*24*365+62)/12)
  • 3 年期限(高利用率):100 美元 + 0.005 美元/小时 = 6.43 美元/月

m1.小:

  • 按需:0.085/小时 = 62.05 美元/月
  • 1 年期限(高利用率):276.25 美元 + 0.02/小时 = 37.62 美元/月
  • 3 年期限(高利用率):425 美元 + 0.02/小时 = 26.41 美元/月

根据您的选择,您的费用将在每月 20 美元(3 年预留 t1.micro)和每月 80 美元(按需 m1.small)之间。

笔记:

每秒 5 个请求是一个相当小的数量 - 即使是 t1.micro 也应该能够处理。我建议首先在该实例类型上尝试您的应用程序(AWS 确实为新客户提供一年的免费 t1.micro 使用)- 如果您需要更大的实例类型,只需停止(而不是终止)您的实例并修改实例属性即可,您可以在 5 分钟内重新上线并运行您的新实例。

我不是 Java 人员 - 但如果您可以使用轻量级 Web 服务器(nginx、lighttpd)而不是 Apache,您将从 EC2 实例中获得更好的性能(Apache 的主要问题是其内存使用情况,尤其是在 t1.micro 上)。

如果您使用 t1.micro,我建议不要使用 64 位操作系统,因为它的内存有限,并且 64 位寄存器会大大增加所需的内存,但没有明显的收益。

此外,如果您对操作系统没有特别的偏好,我建议使用亚马逊的 Linux AMI - 它基于 RHEL/CentOS,删除了所有不必要的部分,并得到官方支持(而且他们的存储库保持最新!)。

不要担心 Amazon RDS - 大多数人发现它的性能不是那么好,并且它没有提供太多的“自动”功能(例如,您仍然必须手动设置复制等,并且适用正常的限制)。

关于 t1.micros 需要注意的是 - 它们的性能变化很大 - 如果您可以将 CPU 使用率保持在较低水平,那么您将没问题,但是如果您发现 CPU 使用率飙升,则性能将非常糟糕。其他实例的性能要稳定得多。

最后,虽然您想清楚知道成本是多少,但不要估计过高。很容易推测您需要一台庞大的服务器来运行您的应用程序,但如果您发现情况确实如此,您以后可以随时找到其他提供商,或转到其他实例类型。使用云模型,您不需要考虑未来的规模,因为它相当容易扩展。

您可以尝试AWS 成本计算器玩数字(尽管,就我个人而言,我更喜欢手工进行)。

答案2

您应该能够轻松地利用每月 15 美元的微型实例支持每秒 5 个 Apache 请求。小型实例每月将花费您 60 美元左右,并且微型实例应该可以很好地运行 MySQL + Apache,所以我不确定 200 美元从何而来。

如果您可以承诺使用该实例类型一年或三年,那么价格也会变得非常便宜 - 最多可便宜一半。

相关内容