I'm migrating an application from Elastic Beanstalk and need to move background workers that currently run on EC2. I'm deciding between ECS with Fargate Spot and EKS using either Fargate or EC2 Spot capacity. Which option would be the most practical migration and likely provide the best cost savings? I'm also trying to understand whether Fargate can run on EC2 Spot instances, or whether those are separate deployment models.
3 Answers
EKS and ECS are alternative container orchestration platforms. Fargate is a serverless compute option that can be used with either platform, while EC2 is a separate compute model. You can run EKS workloads on Fargate or on EC2 worker nodes, including Spot instances, but “Fargate on EC2 Spot” isn’t a single combined option. The real choices are ECS or EKS, and then Fargate or EC2 capacity within the selected platform.
ECS with Fargate is probably the simplest transition from Elastic Beanstalk. It involves less infrastructure to manage, and services such as networking, load balancing, DNS, container registries, and Terraform integrations are generally more straightforward. Fargate Spot can reduce costs if these workers can tolerate interruptions, but you should design them to retry work and handle termination gracefully.
EKS could make sense as a long-term platform if you already need Kubernetes features or expect to standardize on Kubernetes across multiple workloads. However, it usually requires more deliberate decisions and operational work around cluster access, networking, service discovery, load balancers, deployments, and add-ons. For a straightforward worker migration, ECS on Fargate is likely easier to operate; choose EKS mainly for its Kubernetes ecosystem rather than expecting it to automatically be cheaper.

That clears up the terminology. I was treating Fargate and EC2 Spot as if they could be combined, but I should compare ECS with Fargate Spot against EKS using Fargate or Spot-backed EC2 nodes.