与 Straight EC2 相比节省 ECS/EKS 的成本

Cost Savings of ECS/EKS over Straight EC2

我读过很多博客,它们谈论将微服务队列从直接 EC2 VM 迁移到 ECS 或 EKS 上的容器可节省 25-50% 的成本。虽然这很有说服力,但考虑到使用一些带有 AWS Pricing Calculator 的简单模型进行的成本估算,我对这可能是怎样的感到摸不着头脑。我确信我在下面的估计中过于简单化了这里的问题,但价格差异的规模几乎是五分之一(68 美元对 319 美元),这引出了一个问题,成本节省在哪里?

例如,假设一个由八个服务组成的小型集群在 [small t4g][2] 上运行良好:

| Instance   | EC2 Type  | vCPU | Mem (GB) | Storage (GB) | Monthly Cost |
| ---------- | --------- | ---- | -------- | ------------ | ------------:|
| Service 1  | t4g.small | 2    | 2        | 8            | USD 8.47     |
| Service 2  | t4g.small | 2    | 2        | 8            | USD 8.47     |
| Service 3  | t4g.small | 2    | 2        | 8            | USD 8.47     |
| Service 4  | t4g.small | 2    | 2        | 8            | USD 8.47     |
| Service 5  | t4g.small | 2    | 2        | 8            | USD 8.47     |
| Service 6  | t4g.small | 2    | 2        | 8            | USD 8.47     |
| Service 7  | t4g.small | 2    | 2        | 8            | USD 8.47     |
| Service 8  | t4g.small | 2    | 2        | 8            | USD 8.47     |
| **Totals** |           | 16   | 16       | 64           | USD 67.76    |

如果我搬到 ECS/EKS 并购买一些具有等效 vCPU 的更大的 c5,我猜我需要完成同样的事情:

| Instance   | EC2 Type   | vCPU | Mem (GB) | Storage (GB) | Monthly Cost |
| ---------- | ---------- | ---- | -------- | ------------ | ------------:|
| Service 1  | c5.2xlarge | 8    | 16       | 32           | USD 159.42   |
| Service 2  |            |      |          |              |              |
| Service 3  |            |      |          |              |              |
| Service 4  |            |      |          |              |              |
| Service 5  | c5.2xlarge | 8    | 16       | 32           | USD 159.42   |
| Service 6  |            |      |          |              |              |
| Service 7  |            |      |          |              |              |
| Service 8  |            |      |          |              |              |
| **Totals** |            | 16   | [32][1]  | 64           | USD 318.84   |

正如我所提到的,我确信这是一个天真的比较,但我认为我最终会在同一个范围内并且不会相差 5 倍。我知道 ECS/EKS 会给我更好的资源利用率,但它需要提高470%的效率才能收支平衡,这似乎不合理。

[1]:虽然 c5 的内存是原来的两倍,但鉴于 1:10 比率为 mem:vCPU,我认为这对增量的贡献不大。

[2]:假设 1 年预留,EC2 实例节省计划,无预付费用

比较无效,因为它们是不同的产品,所以就像 Vikrant 所说的,它是在比较苹果和橙子。

t4g 是一个可突发 CPU 实例

  • 适合流量高峰的网站
  • 用户数量相对较少(访问者数量激增)

在t4g出来之前,有t3a、t3、t2、t1……每一代都以更低的价格提供更好的性能。它也是基于引力子处理器,而不是使用的英特尔至强 C5。此外,您还考虑了预留实例。

当 CPU 为 t4g 实例计入 运行 时...

T 实例非常实惠,因为一旦 CPU 计入 运行,CPU 的速度就会变得缓慢。 (例如在微实例中为 10%)

C5 用于高且恒定的 CPU 负载

  • 首先,价格与几个月前发布的新产品相比没有竞争力。
  • 而且它不提供可突发的 CPU 性能
  • C5 提供高恒定原始 CPU 功率
  • 专注于 CPU 和相对较少的 RAM
  • C5 提供更好的网络带宽

C5 适用于 CPU 负载持续较重的应用。 Web 服务器通常 要求 CPU,并且当流量模式发生变化时工作负载会激增。

除非对响应时间要求非常快,涉及CPU繁重计算的网站,否则T系列实例更适合Web服务器。

当然,如果网站要为来自多个时区的大量用户提供服务,那么工作量会很高,而且会更稳定。这种情况下C5可能是更好的选择。

如果需要,您可以一直 运行 100% 的 CPU,没有任何关于 CPU 的信用,它不会减慢。它提供您可以一直使用的恒定和高 CPU 性能。

将 C5 与 T4g 结合使用

高访问量 Web 服务器的战术设置是使用 C5 提供非常可靠的基准性能,并使用 T 实例在繁忙时间处理额外的流量。例如,一个食品订购平台可以使用 C5 来处理基线客户订单,并使用 T 实例来处理午餐和晚餐前后的高峰时间。

这样,当流量下降时,T实例会慢慢获得CPU积分。此外,如果 CPU 运行 出现,您不必担心服务器变得非常慢(10% 的速度),因为即使所有 T 实例都在变慢,您也有一个非常快的 C5 实例来备份它下来。