Technology Startup Infrastructure & DevOps 2021

AWS ECS to EKS Migration with Terraform and CircleCI for a US Hardware Development Company

Confidential Client US Hardware Development Company
ECS → EKS Full Migration Delivered
Terraform Infrastructure as Code
0 Downtime During Migration
Download the full case study as a PDF
Download PDF

The Challenge

A US hardware development company needed to migrate their container workloads from AWS ECS to AWS EKS — moving to a modern Kubernetes-based orchestration platform with full infrastructure-as-code management via Terraform and automated CI/CD pipelines via CircleCI, without disrupting ongoing development operations.

The Solution

Propelex executed a complete ECS to EKS migration — re-architecting container workloads for Kubernetes, building Terraform modules for all infrastructure provisioning, and delivering fully automated CircleCI pipelines that gave the engineering team a modern, scalable, and reproducible deployment infrastructure.

AWS Elastic Container Service gave technology companies a straightforward path to containerization — managed infrastructure, minimal Kubernetes complexity, and fast time to deployment. But as engineering teams scale and deployment requirements grow more sophisticated, ECS’s limitations become apparent: limited scheduling flexibility, constrained auto-scaling capabilities, and a deployment model that increasingly requires manual intervention to manage at scale.

A US hardware development company reached that inflection point and engaged Propelex to execute the migration from ECS to AWS EKS — moving to Kubernetes-native container orchestration with full infrastructure-as-code management via Terraform and automated deployment pipelines via CircleCI. Propelex delivered the complete migration with zero downtime.

About the Client

The client is a US hardware development company building technology products that combine physical hardware with cloud-connected software services. Their engineering team manages both firmware development for hardware components and cloud backend services — a dual-track engineering environment that places particular demands on deployment infrastructure, since hardware and software release cycles operate on different timelines with different constraints.

Their cloud backend services were running on AWS ECS — a choice that had served them well in early stages but was becoming a bottleneck as the team grew, deployment frequency increased, and the sophistication of their infrastructure requirements expanded. The client name is kept confidential under NDA.

Why ECS to EKS

The decision to migrate from ECS to EKS was driven by specific operational limitations that had accumulated as the engineering team scaled:

  • ECS task scheduling provided limited flexibility compared to Kubernetes pod scheduling — making it difficult to implement sophisticated deployment strategies like canary deployments and blue/green rollouts without significant custom tooling
  • Auto-scaling in ECS required coordination between service-level and cluster-level scaling — a two-layer problem that Kubernetes handles more elegantly through the Horizontal Pod Autoscaler and Cluster Autoscaler working together
  • Infrastructure was not managed as code — ECS resources had been created and modified through the console and CLI over time, creating configuration drift and making it impossible to reproduce the environment reliably
  • Deployment pipelines were partially manual — engineers had to initiate and monitor deployments rather than having a fully automated pipeline handle the complete flow from code commit to production
  • The team wanted to build skills on Kubernetes as the industry-standard container orchestration platform — ECS expertise did not transfer to other environments the way Kubernetes expertise does

Migration Approach

Propelex structured the migration across three parallel workstreams — infrastructure, orchestration, and pipelines — executed in a sequence that allowed progressive cutover without disrupting ongoing development operations:

EKS cluster provisioning
AWS EKS cluster configured with managed node groups, appropriate instance types for the workload mix, and networking configured to match existing VPC architecture — ensuring compatibility with existing AWS resources
Terraform infrastructure as code
All infrastructure — EKS cluster, node groups, IAM roles, security groups, load balancers — written as Terraform modules, enabling reproducible provisioning and eliminating configuration drift permanently
Workload migration to Kubernetes
ECS task definitions re-architected as Kubernetes deployments, services, and config maps — with resource requests and limits configured based on actual ECS task resource usage data
CircleCI pipeline automation
Fully automated CI/CD pipelines replacing manual deployment steps — build, test, container image push, and Kubernetes deployment all triggered automatically on code commits

Terraform Infrastructure as Code

Converting the existing infrastructure to Terraform was one of the highest-value components of the engagement — not just for the migration itself but for the long-term maintainability of the environment:

Reproducible Infrastructure

Every AWS resource supporting the EKS environment — cluster, node groups, VPC components, IAM roles, security groups, and load balancers — was defined as Terraform code. The entire infrastructure can now be destroyed and recreated from code, enabling reliable disaster recovery, environment duplication for testing, and confident infrastructure changes with plan-before-apply validation.

Modular Design

Terraform modules were structured for reusability — the EKS module, networking module, and IAM module were designed as independent components that can be composed together or reused across additional environments. The engineering team can provision new environments by calling existing modules with different variable inputs rather than writing new configuration from scratch.

CircleCI Pipeline Automation

The CircleCI pipelines were built to cover the complete delivery lifecycle with no manual steps between code commit and production deployment:

  • Build stage — application compilation, dependency installation, and Docker image build triggered automatically on every commit to the main branch
  • Test stage — automated unit tests and integration tests run against the built image, with pipeline failure on test failures preventing defective images from progressing
  • Push stage — validated images pushed to Amazon ECR with semantic version tags, maintaining a clean artifact history for rollback capability
  • Deploy stage — Kubernetes deployment manifests updated with new image tags and applied to the EKS cluster, with rollout monitoring and automatic rollback on deployment failures
  • Environment promotion — separate pipeline configurations for staging and production, with production deployments requiring explicit approval to maintain appropriate control over production changes

The Results

Zero Downtime Migration

The ECS to EKS migration was completed with zero downtime — workloads were progressively migrated to EKS while ECS continued serving traffic, with DNS cutover completing the transition cleanly once all services were validated on Kubernetes.

Fully Reproducible Infrastructure

The entire AWS infrastructure is now defined as Terraform code — version controlled, reviewable, and reproducible. Configuration drift is eliminated. New environments can be provisioned from code in minutes rather than hours of manual console work.

Manual Deployments Eliminated

CircleCI pipelines handle the complete flow from code commit to Kubernetes deployment — engineers commit code and the pipeline takes it to production. Deployment reliability improved immediately as human error in manual deployment steps was removed from the process.

Kubernetes-Native Capabilities Unlocked

Running on EKS gives the engineering team access to the full Kubernetes ecosystem — horizontal pod autoscaling, sophisticated deployment strategies, service mesh integration, and a skills foundation that transfers across cloud providers and environments.

Key Takeaway

ECS to EKS migrations are rarely just infrastructure moves — they are opportunities to fix accumulated technical debt in deployment processes and infrastructure management that ECS’s simplicity often obscures. The absence of infrastructure as code, partially manual deployment pipelines, and limited scheduling flexibility are problems that exist in many ECS environments and that a migration executed without intentionality will simply carry forward into EKS.

Propelex executed this migration with intentionality — using the migration as the forcing function to introduce Terraform, build proper CI/CD automation, and establish the engineering practices that will serve the team as the platform continues to grow. The result was not just a different container orchestration platform but a fundamentally more mature infrastructure operation.

The Results

The hardware company completed their ECS to EKS migration with zero downtime — gaining a Kubernetes-native infrastructure managed entirely through Terraform code, with automated CircleCI pipelines that enabled faster, more reliable deployments and a fully reproducible infrastructure environment.

Partner with Propelex

Security Built for Your Reality

Our team brings deep expertise across compliance frameworks, attack surfaces, and industry-specific threats — so you can focus on your mission.