Well, both are the services offered by AWS, to reduce the worries of their customers regarding the backend tasks like increasing or reducing the servers as per requirement, monitoring the health of servers, managing the traffic load among the servers and many more.
Now, as you are having some queries to understand ELB and Auto-Scaling so let me help you-
ELB( Elastic Load Balancer ) distributes the traffic load evenly across the available EC2 instances present in the target groups and they ensure that they connect the traffic to appropriate Target Groups.
ELB also monitors the health of EC2 instances and routes the traffic to a healthy instance only. If it finds any unhealthy instance then it stops sending the request to that instance and makes sure that the data request is sent to some other available instance.
Hence the role of ELB is to just distribute the Traffic, check the health of instance and make sure that every request is connected to appropriate target groups.
Auto Scaling increases or decreases the no. of available instances as per the scaling policy mentioned, to manage the instances both in peak and off-peak hours.
It is the work of Auto-Scaling to increase the instance when the Threshold value is exceeded and to remove the instances when they are not being utilized.
This helps to ensure that the application faces low down time.
It is a monitoring service by AWS which monitors the health of AWS resources and Applications running on AWS infrastructure , if some action is to be taken then triggers the appropriate resources via alarms.
Hence, ELB distributes the traffic among the instances, cloud watch triggers the Auto Scaling whenever the scaling of instances is to be done and as result, Auto Scaling performs the scaling to ensure the availability of right no. of instances.
ELB, Auto Scaling and CloudWatch all 3 work in Sink.
For the more detailed understanding of ELB and Auto Scaling watch this video