I haven't used Heroku in ages, but I remember it being pretty easy.
Just wondering how do you "Kick off deploy of ECS" services? The solution I have currently is using:
aws ecs update-service --cluster={ CLUSTER_NAME } --service={ SERVICE_NAME } --no-cli-pager --force-new-deployment
aws ecs wait services-stable --cluster={ CLUSTER_NAME } --service={ SERVICE_NAME }
From my CI, but this doesn't feel like the best way to do it
Without a doubt Heroku is ultimately easier but I found that once I spent the time playing with ECS and using LLM tools to understand permissions in AWS it made a lot more sense. Now its quick enough and cheaper for me.
I don't think the way you are doing it is the worst way. I am biggest expert here of course. I do mine via a github action, right now it triggers on merges to main but could also be setup independently.
Condensed but I use 1) "build-push-action" - github action to send an image to ECR 2) "aws ecs update-service --cluster <name> --service <service> --force-new-deployment" for the deployment
Github Action (Build Docker Image) > Push Image to AWS ECR for image storage > Kick off Deploy of ECS.
You can configure your ECS cluster using the console UI or something like Terraform. Once configured its set it and forget it.
Honestly not that much more complicated compared to Heroku.