Loading...

EKS Fargate vs EC2 Nodes: how to choose

This is a trade between operational surface and control. With EC2 nodes you run instances — sizing, patching, autoscaling and capacity headroom are yours, and so is every capability the kernel offers. With Fargate each pod gets its own managed compute; there is no node to patch and no capacity to plan, and a list of things you can no longer do.

Fargate's appeal is genuine for teams without a platform engineer. No node upgrades, no autoscaler tuning, no shared-node blast radius, and per-pod isolation by default. For bursty or infrequent workloads, paying only for pod resources while they run can also be cheaper than keeping nodes warm.

The restrictions are what decide most cases. No DaemonSets, no privileged containers, no GPUs, no host networking or hostPath volumes, and limited support for anything that expects node access — which includes many observability and security agents.

What you give up on Fargate

CapabilityEC2 nodesFargate
DaemonSetsYesNo — agents must run as sidecars instead
Privileged containersYesNo
GPUs and specialised hardwareYesNo
hostPath and host networkingYesNo
Node patchingYours to doManaged for you
Pricing modelPer instance, whether busy or idlePer pod vCPU and memory, while running
Bin packingYour responsibility, and your savingNot applicable — one pod per compute unit

The DaemonSet problem is the one that catches teams

Most clusters run log collectors, metrics agents and security tooling as DaemonSets — one per node, collecting for everything on it. Fargate has no nodes to place them on, so each of those becomes a sidecar in every pod. That multiplies their resource cost by pod count instead of node count, and means updating an agent is a redeploy of every workload.

Check what your observability and security vendors support on Fargate before committing. This is the most common reason a Fargate migration stalls partway, and it is much cheaper to discover during evaluation than after moving half the estate.

Frequently asked questions

Is Fargate more expensive than EC2?

Per unit of compute, generally yes. Whether it is more expensive in total depends on your utilisation: well-packed EC2 nodes running steadily are cheaper, while nodes sized for peak and idle much of the time may not be. Compare against your actual utilisation rather than list prices, and include the engineer time that node management consumes.

Can I mix Fargate and EC2 in one cluster?

Yes, and it is the pattern most teams settle on. Fargate profiles select which pods run there by namespace and labels, so you can put bursty or isolated workloads on Fargate while keeping GPU jobs, DaemonSet-dependent workloads and steady baseline capacity on EC2 nodes.

How does scaling compare?

Fargate provisions per pod with no node to wait for, so scale-up avoids the node-provisioning step entirely. Per-pod start is not instant — image pull still applies — but there is no capacity to plan. With EC2 and a fast provisioner like Karpenter the gap narrows considerably, at the cost of running and tuning that provisioner.

Is Fargate better isolated?

Yes, meaningfully. Each pod runs on its own managed compute rather than sharing a kernel with neighbours, which removes the container-escape-to-noisy-neighbour class of risk. For multi-tenant workloads or untrusted code, that isolation is a real security argument and often the deciding one.