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.
Personally, I'd disagree with your consultants on being able to avoid multiple AWS accounts as a selling point. When you need to isolate workloads or implement hard security boundaries, accounts are generally the simplest and most reliable way of doing that. Following the Well Architected Framework is a good standard practice and there are plenty of guides and examples to help you.
If things do change in the future, it's not actually that big a deal to deploy to EKS instead (or as well) - but for your needs, I think ECS would make a better starting point.
(And I agree with other posters that ECS Fargate is likely the best fit for you)
Sure you pay for that comfortable solution, but it was worth in my opinion
BTW: Checkout ecs fargate too. if workload is small this will do the most.