The major feature benefit AWS Batch would provide you is dependent job scheduling. For example, lets say you have 3 jobs: JobA, JobB and JobC. You want JobC to run only after JobA and JobB have finished. It is very trivial to achieve this with Batch, but on plain ECS you have to build this logic yourself. AWS Batch also provides automatic retries and some other goodies that are valuable in batch processing (including the ones you mentioned like queuing and scheduling policies. Also if you use the AWS Batch managed compute environments, then the resource scaling up/down is handled automatically by AWS. It creates the required autoscaling groups and scaling policies behind the scenes and manages it completely.