Hello everyone. I was recently hired at an established company that is in the process of migrating to AWS from Heroku. I am the second devops/SRE like employee, the other person has more of an IT background. He, along with the 20ish person dev team, have no experience with anything cloud or IaC. Our workloads are almost entirely stateless web services, with some data pipeline work that has already been moved to AWS lambda.
My gut is telling me ECS is the better choice for this team - simpler, no operational maintenance, almost no additional abstractions beyond the AWS primitives people will need to learn anyway. A consulting team hired before I was brought in are pushing EKS, but I’m not convinced that the improved devex is worth the increase in complexity and operational burden for our team. Their argument is that developers can be effectively quarantined within k8s, so the increase in maintenance on the cluster itself is offset by the reduction in work around custom IAM permissioning, multiple AWS accounts (we’d just use namespaces within the cluster), etc.
Any thoughts or input would be greatly appreciated.
ECS Fargate. We used it for a lot of stateless containers, similar as you mention.
I tried to migrate from ECS Fargate onto EKS, but moved back after a while. The reason was the "management" overhead of babysitting the cluster and it's non-app deployment like cilium, fluxcd etc. - Since those were part needed and part QoL features we came to the conclusion that ECS Fargate was the better and less 'head ache' solution. I would do it again. Especially not thinking about provision new nodes etc.
Sure you pay for that comfortable solution, but it was worth in my opinion
My gut is telling me ECS is the better choice for this team - simpler, no operational maintenance, almost no additional abstractions beyond the AWS primitives people will need to learn anyway. A consulting team hired before I was brought in are pushing EKS, but I’m not convinced that the improved devex is worth the increase in complexity and operational burden for our team. Their argument is that developers can be effectively quarantined within k8s, so the increase in maintenance on the cluster itself is offset by the reduction in work around custom IAM permissioning, multiple AWS accounts (we’d just use namespaces within the cluster), etc.
Any thoughts or input would be greatly appreciated.
ECS Fargate. We used it for a lot of stateless containers, similar as you mention. I tried to migrate from ECS Fargate onto EKS, but moved back after a while. The reason was the "management" overhead of babysitting the cluster and it's non-app deployment like cilium, fluxcd etc. - Since those were part needed and part QoL features we came to the conclusion that ECS Fargate was the better and less 'head ache' solution. I would do it again. Especially not thinking about provision new nodes etc.
Sure you pay for that comfortable solution, but it was worth in my opinion