RANCHER-664 Calculate overall costs and forecast migration from m5 to r5 of Rancher EKS
Overview of current EC2 instances for EKS clusters
AWS instances information
Clusters "folio-eks-2-us-west-2-folio-eks-2-ng-us-west2a-Node" and "folio-eks-2-us-west-2-folio-eks-2-ng-us-west2b-Node" are going to be deprecated. So, all investigation we will provide with next clusters: "folio-dev", "folio-perf", "folio-testing".
Current count of instances for different clusters
Instance type | count instances | total CPU | total memory | cluster |
m5.xlarge | 10 | 40 | 160 | folio-eks-2-us-west-2-folio-eks-2-ng-us-west2a-Node |
m5.xlarge | 8 | 32 | 128 | folio-eks-2-us-west-2-folio-eks-2-ng-us-west2b-Node |
m5d.xlarge, m5ad.xlarge, m5a.xlarge, m5.xlarge | 42 | 168 | 672 | folio-dev |
m5d.xlarge, m5ad.xlarge, m5a.xlarge, m5.xlarge | 17 | 68 | 272 | folio-perf |
m5d.xlarge, m5ad.xlarge, m5a.xlarge, m5.xlarge | 20 | 80 | 320 | folio-testing |
m5.large | 3 | 6 | 24 | rancher |
Total count nodes and their CPU and memory.
Instance type | count instances | total CPU | total memory | clusters |
m5d.xlarge, m5ad.xlarge, m5a.xlarge, m5.xlarge | 79 | 316 | 1264 | folio-testing, folio-perf, folio-dev |
For our investigation we will use next instance type as the base m5.xlarge, much more details about instance types that we are currently using you can get on this page RANCHER-582 Investigate memory optimised instances usage for Rancher clusters - Folio Development Teams - FOLIO Wiki.
Total cost for On-demand model will be 79 * 0,192 = 15,1668$ per hour
Rancher capacity for each cluster
Information about capacity for each cluster I took from Rancher->Cluster
folio-dev
Cores | Memory | Pods | ||
Reserved | Used | Reserved | Used | Used |
63.72 / 164.64 | 26.2 / 168 | 592 / 600 GiB | 366 / 641 GiB | 1310 / 2436 |
folio-perf
Cores | Memory | Pods | ||
Reserved | Used | Reserved | Used | Used |
11.73 / 66.64 | 5.7 / 68 | 231 / 243 GiB | 116 / 259 GiB | 473 / 986 |
folio-testing
Cores | Memory | Pods | ||
Reserved | Used | Reserved | Used | Used |
25.18 / 78.4 | 7.21 / 80 | 261 / 286 GiB | 150 / 306 GiB | 510 / 1160 |
Total
Cores | Memory | Pods | ||
Reserved | Used | Reserved | Used | Used |
100.63/309.68 | 39.11/316 | 1084/1129 | 602/1206 | 2293/4582 |
Analyses approximately amount EC2 instances if we will move to r5a.xlarge and their cost
Aws count instances base on total Memory that we are using
Some technical information about "r5a.xlarge" and "m5.xlarge".
Type instance | CPU | Memory | Network Bandwidth (Gigabit) | Storage | Processor | price for 1 hour for 1 instance (On Demand) |
r5a.xlarge | 4 | 32 | 10 | EBS only | AMD EPYC 7000 (AMD EPYC 7571) | 0,226 |
m5.xlarge | 4 | 16 | 10 | EBS only | Intel Xeon® Platinum 8175M | 0,192 |
Compare amount instances base on different type.
m5.xlarge | r5a.xlarge | |||||
cluster | count instances | total CPU | total memory | count instances | total CPU | total memory |
folio-dev | 42 | 168 | 672 | 21 | 84 | 672 |
folio-perf | 17 | 68 | 272 | 9 | 36 | 288 |
folio-testing | 20 | 80 | 320 | 10 | 40 | 320 |
Total amount of possible nodes for r5a.xlarge and their CPU and memory.
Instance type | count instances | total CPU | total memory | clusters |
r5a.xlarge | 40 | 160 | 1280 | folio-testing, folio-perf, folio-dev |
Total cost for r5a.xlarge On-demand model will be 40* 0.226= 9.04$ per hour
Calculate total price for 1 year for different instance type and price models
Here you can find information about how many we should pay for different price modes and different amount instances.
For 1 instance for 1 year
RI | Save plan | |||||||
total count instances | On Demand | no upfront | Partial upfront | all upfront | no upfront | Partial upfront | all upfront | |
m5.xlarge | 1 | 1681,92 | 1059,96 | 1013,08 | 989 | 1235,16 | 1173,84 | 1156,32 |
r5a.xlarge | 1 | 1979,76 | 1243,92 | 1189,68 | 1164 | 1436,64 | 1366,28 | 1340,28 |
For amount instances that we got from previous investigations
RI | Save plan | |||||||
total count instances | On Demand | no upfront | Partial upfront | all upfront | no upfront | Partial upfront | all upfront | |
m5.xlarge | 79 | 132871,68 | 83736,84 | 80033,32 | 78131 | 97577,64 | 92733,36 | 91349,28 |
r5a.xlarge | 40 | 79190,4 | 49756,8 | 47587,2 | 46560 | 57465,6 | 54651,2 | 53611,2 |
Conclusion
Type instance | amount instances | price for 1 hour for 1 instance (On Demand) | total price for 1 hour |
---|---|---|---|
m5.xlarge | 79 | 0,192 | 15,1668 |
r5a.xlarge | 40 | 0.226 | 9.04 |
As result of this investigation, I can say that based on On-Demand price model we will save about 40% of our money because we decrease count of instances. that we need for deploy our clusters.
As we can see from this paragraph "Rancher capacity for each cluster", we do not use most amount CPU cores, but using a lot of memory of our EC2 instances. So, if we move to memory optimize EC2 instance, we will save our money such as they have much more Memory and we will run less nodes.