Auto-scaling determines based on some measurements (CPU utilization is a common measurement), regardless of whether to increase or decrease the number of running instances.
Load balancing is related to how you distribute traffic to your instances based on a search for a domain name, etc. Somewhere you should know which IP addresses are the ones that are currently assigned to the instances that autoscaling creates.
You can have multiple IP address entries for A entries in the DNS settings, and the machines will be distributed approximately circularly from this pool. But maintaining the current pool in real time is difficult.
The load balancer gives you a simple mechanism for providing a single interface / IP address to the outside world, and he knows in what cases it is real-time load balancing.
If you use autoscaling, if you are not going to create a rather complex system for monitoring and updating DNS, you can reasonably assume that you should also use a load balancer.
source share