Infraspec
Back to Case Studies
Platform EngineeringReliability Engineering

Docker Swarm to Amazon ECS migration

An education technology company

An education technology company focused on students' reading skills had six engineers building the product and running the infrastructure behind it.

As the product grew, the team wanted infrastructure to demand less of their time. We migrated container workloads from Docker Swarm to Amazon ECS and modernised the supporting AWS environment.

~25%

lower direct infrastructure costs

6

engineers on the client team

ECS

replaced Docker Swarm

Why rethink the infrastructure setup?

The application ran on AWS with Docker Swarm on EC2. Usage was concentrated around school hours and weekdays, but EC2 scaling still needed manual attention. Upgrades and configuration changes took time away from the six-person engineering team.

Infrastructure as Code had drifted from the actual AWS environment. Custom scripts and manual changes meant the code no longer fully represented what was running. Docker Swarm needed regular patching, too, and cost optimisation was difficult.

Where was the real scaling challenge?

Docker Swarm could scale application workloads, but adding or removing the EC2 capacity beneath them still needed a person. Demand followed the school day, yet engineers adjusted capacity by hand.

The replacement needed to stay on AWS, remove manual scaling and maintenance, remain approachable for a small team and avoid a significant cost increase.

Why Amazon ECS with EC2?

ECS fit naturally into the AWS environment and removed orchestration work without a steep learning curve. Keeping EC2 for compute made sense for this modest workload and allowed capacity changes to be automated at a sensible cost.

What changed in the infrastructure?

We moved the workloads from Docker Swarm to ECS and used Terraform to manage EC2, the Application Load Balancer, Route 53 domains and ACM certificates. This replaced the mix of outdated infrastructure code, scripts and manual changes.

We replaced self-managed HAProxy with an AWS Application Load Balancer, moved manual SSL renewal to AWS Certificate Manager and used AWS Systems Manager for application configuration, reducing the need to SSH into systems.

How did the team take ownership?

We documented the solution and troubleshooting paths, then ran knowledge-transfer sessions covering the codebase and infrastructure. Engineers took on small hands-on tasks with pairing where useful. The handover continued until they were comfortable running the environment themselves.

What changed after the migration?

Direct infrastructure costs fell by approximately 25%. The new setup needed less ongoing attention and was easier for the six-person team to extend and upgrade alongside its product work.

More case studies
→

Want to make your infrastructure work harder for your team?

Tell us what your engineers are wrestling with.

Talk to us