与 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 实例来备份它下来。
我读过很多博客,它们谈论将微服务队列从直接 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 实例来备份它下来。