---
slug: "eks-cost-performance-max-pods-per-instance-type"
title: "EKS Max Pods per Instance Type and Cost Performance Analysis (Tokyo Region)"
description: "Calculating per-Pod cost from EKS ENI-based Max Pods formula and instance On-Demand pricing. Reveals that 2xlarge and 8xlarge are traps with same Pod count as xlarge/4xlarge at double the price, and that Graviton c7g offers the best Pod density cost performance."
url: "https://www.ytyng.com/en/blog/eks-cost-performance-max-pods-per-instance-type"
publish_date: "2026-03-18T12:00:00Z"
created: "2026-03-18T07:36:54.451Z"
updated: "2026-03-18T07:55:17.018Z"
categories: []
keywords: ""
featured_image_url: "https://media.ytyng.com/resize/20260318/5b651051aa654842ab9f67a0babf5e8f.png.webp?width=768"
has_video: true
has_music: true
video_urls: ["https://media.ytyng.net/ytyng-blog/340/featured-video-1.mp4", "https://media.ytyng.net/ytyng-blog/340/featured-video-2.mp4", "https://media.ytyng.net/ytyng-blog/340/featured-video-3.mp4"]
music_urls: ["https://media.ytyng.net/ytyng-blog/340/featured-music-340-2.mp3", "https://media.ytyng.net/ytyng-blog/340/featured-music-340-3.mp3"]
lang: "en"
---

# 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](https://github.com/awslabs/amazon-eks-ami/blob/main/templates/shared/runtime/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

- [eni-max-pods.txt (GitHub)](https://github.com/awslabs/amazon-eks-ami/blob/main/templates/shared/runtime/eni-max-pods.txt)
- [AWS EC2 On-Demand Pricing](https://aws.amazon.com/ec2/pricing/on-demand/)
- [EKS Best Practices - Choose Instance Type](https://docs.aws.amazon.com/eks/latest/userguide/choosing-instance-type.html)
