Hey everyone! I'm a DevOps/Backend engineer at a startup with a small team. We're thinking about shifting from our ECS/Lambda setup to EKS. The goal is to facilitate QA testing for our internal testers and allow for gradual feature rollouts post-QA. Here's a little context about our current setup: We've got an AWS-native architecture with a couple of external services, two Go backend services running on ECS Fargate, and five frontend applications built using Next.js or React. We're also using GitHub Actions and Terraform for our CI/CD processes. The reason for the consideration is that our current deployment strategies are pretty fragile and complex, particularly for canary and blue/green deployments. Also, our frontends lack proper support for canary rollouts. I've been learning Kubernetes on the side, but I've never handled it in production. I'm worried about potential misconfigurations causing issues like downtime or alerts at inconvenient times. Should we move to EKS now for our rollout needs? What has your migration experience been like from ECS or Lambda to EKS? Any strategies to minimize downtime during migration? Is it manageable for just one person to handle EKS? Appreciate your insights!
5 Answers
Don't forget to think about the costs involved! Running self-managed services like Redis and MySQL in EKS could save some cash compared to hosted options. You want to be prepared for the implications of those costs before jumping into EKS.
You might face less pain in migration than you expect since the features in ECS are also in Kubernetes. I found that preparing a new environment before doing a DNS switch helps avoid major downtime. Testing your application fully before the big switch is crucial!
Great tip! I'll definitely try running both systems in parallel during the migration to avoid any hiccups.
For gradual rollouts, EKS is a solid choice. However, you might want to consider feature flags instead of overcomplicating the infrastructure setup. As for migration strategies, a DNS cutover works well if you deploy your app on both infrastructures temporarily. It'll minimize downtime as clients transition to the new version.
Yeah, rolling deployments are usually the easiest way to go, but I get your point about needing testing beds for internal users. For message queues, RabbitMQ seems like a solid option for now.
You should definitely switch to EKS. It's pretty straightforward to set up a cluster with your current services. Plus, EKS generally runs smoother than Fargate, especially for production use.
Honestly, ECS feels outdated, and you should just go for the migration. EKS provides a lot of features that simplify deployments, especially if you're aiming for gradual rollouts.

Absolutely! We’re currently spending quite a bit on Aurora and Redis, so I’m curious to see if shifting to EKS would lower our monthly bills.