I recommend always having an AutoScaling group for your instances even if you do not want to automatically scale. Some advantages include:
- Aggregate CloudWatch metrics across your instances.
- Automatically remove and insert instances to one or more ELB's using LoadBalancerNames.
- Keeping instance tags consistent. If you configure the PropogateAtLaunch property to true, each new instance will be automatically tagged.
- Easily pull out an instance (detach) for debugging or development.
- Group your servers for CodeDeploy and new instances will automatically be included.
- Automatic redundancy enforcement. Anytime an instance is deleted by you, a coworker, or magic fairies, it is replaced with a new one.
- Testing deployments and instance configuration. Just terminate an instance and wait for the new one to get created.
- Use as a deployment mechanism for immutable instance deployments.