A service may run on dozens or thousands of backend instances, but clients should not need a separate address for each one. They connect to one logical endpoint, and a load balancer selects an eligible backend.
This indirection lets the service add capacity, replace instances, and distribute work without changing the public endpoint.
The phrase “distribute traffic” hides an important question: what unit is being distributed?
That difference affects routing flexibility, performance, encryption, connection reuse, long-lived sessions, failure behavior, and observability.