EKS Max Pods per Instance Type and Cost Performance Analysis (Tokyo Region)

2026-03-18 12:00 (115 minutes later)
EKS Max Pods per Instance Type and Cost Performance Analysis (Tokyo Region)

Background

When selecting worker node instance types for Amazon EKS (Elastic Kubernetes Service), the maximum number of Pods an instance can run significantly impacts cost performance, beyond just vCPU and memory specs.

In EKS, the maximum Pod count is determined by each instance's ENI (Elastic Network Interface) count and IPv4 addresses per ENI, using the following formula:

Max Pods = (ENI count × (IPv4 per ENI - 1)) + 2

These values are defined in AWS's official eni-max-pods.txt. This article calculates the per-Pod cost from Max Pods and On-Demand pricing to identify the most cost-effective instance types.

Non-Intuitive Max Pods Gaps Between Instance Sizes

The investigation revealed counter-intuitive gaps in the relationship between instance sizes and Max Pods.

Size Max Pods Notes
small (t3 only) 11
medium (t3 only) 17
large 29
xlarge 58
2xlarge 58 Same as xlarge
4xlarge 234 4x jump
8xlarge 234 Same as 4xlarge

The critical finding: 2xlarge has the same Pod count (58) as xlarge but costs twice as much, and 8xlarge has the same Pod count (234) as 4xlarge but also costs twice as much. From a Pod density perspective, 2xlarge and 8xlarge should never be selected.

Per-Pod Cost Ranking (ap-northeast-1, On-Demand)

Prices were obtained from the AWS Pricing API (as of 2026-03-17). All 2xlarge and 8xlarge instances are omitted since they have the same Pod count as xlarge / 4xlarge at double the price.

Rank Instance $/hr Max Pods $/pod/hr Monthly/pod
1 t3.small $0.0155 11 $0.00141 $1.03
2 c7g.4xlarge $0.3789 234 $0.00162 $1.18
3 c7g.xlarge $0.0947 58 $0.00163 $1.19
4 c7g.large $0.0474 29 $0.00163 $1.19
5 c6g.4xlarge $0.4032 234 $0.00172 $1.26
6 c6g.large $0.0504 29 $0.00174 $1.27
7 c6g.xlarge $0.1008 58 $0.00174 $1.27
8 m6g.4xlarge $0.4123 234 $0.00176 $1.29
9 t3.large $0.0618 35 $0.00177 $1.29
10 m6g.large $0.0515 29 $0.00178 $1.30
11 m6g.xlarge $0.1031 58 $0.00178 $1.30
12 t3.medium $0.0309 17 $0.00182 $1.33
13 m7g.4xlarge $0.4380 234 $0.00187 $1.37
14 m7g.large $0.0548 29 $0.00189 $1.38
15 m7g.xlarge $0.1095 58 $0.00189 $1.38
16 c6i.4xlarge $0.4456 234 $0.00190 $1.39
17 c6i.large $0.0557 29 $0.00192 $1.40
18 c6i.xlarge $0.1114 58 $0.00192 $1.40
19 c7i.4xlarge $0.4679 234 $0.00200 $1.46
20 c7i.large $0.0585 29 $0.00202 $1.47
21 c7i.xlarge $0.1170 58 $0.00202 $1.47
22 t3.xlarge $0.1236 58 $0.00213 $1.56
23 c5.4xlarge $0.5070 234 $0.00217 $1.58
24 c5.large $0.0630 29 $0.00217 $1.59
25 r6g.4xlarge $0.5096 234 $0.00218 $1.59
26 c5.xlarge $0.1270 58 $0.00219 $1.60
27 m6i.4xlarge $0.5154 234 $0.00220 $1.61
28 r6g.large $0.0637 29 $0.00220 $1.60
29 r6g.xlarge $0.1274 58 $0.00220 $1.60
30 m6i.large $0.0644 29 $0.00222 $1.62
31 m6i.xlarge $0.1288 58 $0.00222 $1.62
32 r7g.4xlarge $0.5392 234 $0.00230 $1.68
33 m7i.4xlarge $0.5412 234 $0.00231 $1.69
34 r7g.large $0.0674 29 $0.00232 $1.70
35 r7g.xlarge $0.1348 58 $0.00232 $1.70
36 m7i.large $0.0676 29 $0.00233 $1.70
37 m7i.xlarge $0.1353 58 $0.00233 $1.70
38 m5.4xlarge $0.5750 234 $0.00246 $1.79
39 m5.large $0.0720 29 $0.00248 $1.81
40 m5.xlarge $0.1440 58 $0.00248 $1.81
41 r6i.4xlarge $0.6343 234 $0.00271 $1.98
42 r5.4xlarge $0.6340 234 $0.00271 $1.98
43 r5.large $0.0790 29 $0.00272 $1.99
44 r6i.large $0.0793 29 $0.00273 $2.00
45 r6i.xlarge $0.1586 58 $0.00273 $2.00
46 r5.xlarge $0.1590 58 $0.00274 $2.00
47 r7i.4xlarge $0.6660 234 $0.00285 $2.08
48 r7i.large $0.0833 29 $0.00287 $2.10
49 r7i.xlarge $0.1665 58 $0.00287 $2.10

Conclusions

Best Pod Density Cost: c7g (Graviton3 Compute Optimized)

Excluding t3.small (burstable, not suited for sustained workloads), the c7g family offers the lowest per-Pod cost.

  1. c7g.4xlarge ($0.00162/pod/hr) — 234 pods, for large-scale deployments
  2. c7g.xlarge ($0.00163/pod/hr) — 58 pods, for medium-scale
  3. c7g.large ($0.00163/pod/hr) — 29 pods, for small-scale

Instance Size Selection Guide

Recommended Not Recommended
large, xlarge 2xlarge (same Pod count as xlarge at 2x price)
4xlarge (Pod density sweet spot) 8xlarge (same Pod count as 4xlarge at 2x price)

Since 4xlarge jumps from 58 to 234 Max Pods (a 4x increase), it is the optimal choice when running many Pods.

Instance Family Selection Guide

Use Case Recommended Family $/pod/hr
CPU-intensive (Web APIs, etc.) c7g $0.00162
General purpose m6g / m7g $0.00176–0.00187
Memory-intensive r6g $0.00218

Common rule: Graviton (g-series) is approximately 20% cheaper than Intel (i-series). If you can prepare ARM architecture container images, there is no reason not to choose Graviton.

Caveats

  • The above Max Pods values assume Prefix Delegation disabled (default)
  • Enabling Prefix Delegation assigns /28 prefixes (16 IPs) to each ENI, significantly increasing Pod counts. EKS Managed Node Groups cap at 110 for vCPU < 30, and 250 for vCPU >= 30
  • With Prefix Delegation enabled, the 2xlarge disadvantage may be eliminated
  • t3 instances are burstable and not suited for sustained CPU workloads
  • In practice, per-Pod CPU/memory resource requests must also be considered

References

Please rate this article
Currently unrated
The author runs the application development company Cyberneura.
We look forward to discussing your development needs.

Categories

Archive