Depends on if you want to rely on containerization techniques vs. VM scaling - also your ability to manage one or the other:
1. Elastic Beanstalk - provisions EC2 instances, auto scales, load balances automatically, minimal DevOps overhead. Each "application" in this scenario creates its own resources.
2.ECS / Fargate - requires you to setup services/tasks and to pick if you want to manage EC2 or go serverless. This option requires some kind of Load Balancer (either your own or ALB). Needs a bit more DevOps knowledge to containerize and create task definitions.
3.Scale Manually - What you described.
Consider trade-offs: do you want to optimize for cost, simplicity, ownership, cloud lock, etc.