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
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