All posts
Kubernetes

Moving From Kubernetes to ECS: When It Pays, and How to Do It Without a Big Bang

By

October 25, 2026

7 min read

Teams are moving from self-run Kubernetes to ECS, mostly because nobody wants to own the cluster. How to tell whether you should, what maps to what, and a service-by-service migration that never needs a freeze.

EKS
ECS
Kubernetes
Migration
Fargate

Signs it is time

  • Your clusters are on versions in extended support, or have been auto-upgraded, because nobody had time.

  • The person who set up the cluster left, and what is installed on it is partly a mystery.

  • Most of what runs there is ordinary web services and workers — nothing that needs an operator.

  • You pay for a platform team in everything but name: senior engineers losing days each quarter to upgrades and add-ons.

Signs it is not: you depend on operators for stateful systems, you run the same stack outside AWS, or you have a platform team that likes Kubernetes and keeps it current. Then the better move is usually EKS Auto Mode, not leaving.

Want a second opinion on this for your system?

Book a free 30-minute call. You'll leave knowing what we'd do first and roughly what it costs, whether or not you hire us.

What maps to what

Kubernetes

ECS

Deployment

Service (with rolling, blue/green, linear or canary deployment)

Pod spec

Task definition

Service + Ingress

ALB target group and listener rule, or Service Connect for service-to-service

ConfigMap / Secret

Environment from SSM Parameter Store and Secrets Manager

HorizontalPodAutoscaler

Service auto scaling on CPU, memory, request count or custom metrics

CronJob

EventBridge Scheduler running a task

DaemonSet

The DAEMON scheduling strategy on EC2 capacity, or a sidecar container

IRSA / Pod Identity

Task role

Namespaces

Clusters or services per team, with IAM and tags

Doing it a service at a time

  1. Inventory every workload and sort it: stateless services first, workers and jobs next, anything stateful or operator-managed last — or never.

  2. Build the ECS side in infrastructure as code: one cluster per environment, task definitions generated from the same image tags your Kubernetes manifests use.

  3. For each service, run the ECS version alongside the Kubernetes one behind the same load balancer or DNS name with weighted routing, and shift traffic over a few days.

  4. Move service-to-service calls to Service Connect or internal load balancers as their callers move.

  5. When a cluster runs nothing, delete it — and its control-plane fee, add-ons and upgrade calendar with it.

hoolco Monthly Review

Once a month: what changed in tech that month and what it means for you, from cloud and AI to security and the tools you build with. Every item links to its source. No sales pitch, unsubscribe in one click.

As of October 25, 2026. Provided as is, for general information, and accurate to the best of our knowledge on the date shown. Not legal, compliance, tax, financial or other professional advice. Prices, limits and vendor services change; check current vendor documentation before relying on anything here. Terms of use.